package cn.com.ctop.kuaishou.modules.channel.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;

import java.util.Date;
import java.util.List;

/**
 * 渠道号信息表
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2021-08-30
 */
@Data
@TableName("ctop_kuaishou_channel")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ctop_kuaishou_channel对象", description = "渠道号信息表")
public class KuaishouChannel {

    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;
    /**
     * 策略ID
     */
    private Long strategyId;
    /**
     * 项目id
     */
    @Excel(name = "项目id", width = 15)
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    /**
     * 产品ID
     */
    private Long productId;
    /**
     * 项目名称
     */
    @Excel(name = "项目名称", width = 15)
    @ApiModelProperty(value = "项目名称")
    private String projectName;
    /**
     * 产品名
     */
    @Excel(name = "产品名", width = 15)
    @ApiModelProperty(value = "产品名")
    private String productName;
    /**
     * 账户id
     */
    @Excel(name = "账户id", width = 15)
    @ApiModelProperty(value = "账户id")
    private Long accountId;
    /**
     * 创建方式 1-批量，2-excel导入，3-自定义
     */
    @Excel(name = "创建方式 1-批量，2-excel导入，3-自定义", width = 15)
    @ApiModelProperty(value = "创建方式 1-批量，2-excel导入，3-自定义")
    private Integer createType;

    /**
     * 渠道号状态 0无效，1有效
     */
    private Integer channelState;

    /**
     * 账户是否使用渠道号 0不用，1使用
     */
    private Integer state;

    /**
     * 使用范围，1账户，2项目
     */
    private Integer usageRange;

    /**
     * 创建人
     */
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String userId;
    /**
     * 创建日期
     */
    @Excel(name = "创建日期", width = 15)
    @ApiModelProperty(value = "创建日期")
    private String stateDate;
    /**
     * 应用id
     */
    @Excel(name = "应用id", width = 15)
    @ApiModelProperty(value = "应用id")
    private Long appId;

    /**
     * 应用记录id
     */
    private Long channelAppInfoId;
    /**
     * 渠道号
     */
    @Excel(name = "渠道号", width = 15)
    @ApiModelProperty(value = "渠道号")
    private String channelCode;
    /**
     * 编号
     */
    private Long channelNumber;
    /**
     * 渠道名称
     */
    @Excel(name = "渠道名称", width = 15)
    @ApiModelProperty(value = "渠道名称")
    private String channelName;
    /**
     * 下载链接
     */
    @Excel(name = "下载链接", width = 15)
    @ApiModelProperty(value = "下载链接")
    private String url;
    /**
     * 调起链接
     */
    @Excel(name = "调起链接", width = 15)
    @ApiModelProperty(value = "调起链接")
    private String schemaUri;
    /**
     * 第三方点击检测链接
     */
    @Excel(name = "第三方点击检测链接", width = 15)
    @ApiModelProperty(value = "第三方点击检测链接")
    private String clickTrackUrl;
    /**
     * 第三方点击按钮监测链接
     */
    @Excel(name = "第三方点击按钮监测链接", width = 15)
    @ApiModelProperty(value = "第三方点击按钮监测链接")
    private String actionbarClickUrl;
    /**
     * 是否关联单品 0:否，1:是
     */
    @Excel(name = "是否关联单品 0:否，1:是", width = 15)
    @ApiModelProperty(value = "是否关联单品 0:否，1:是")
    private Integer isHaveItem;
    /**
     * 使用范围层级,账户：account，计划：plan,组：group
     */
    @Excel(name = "使用范围层级,账户：account，计划：plan,组：group", width = 15)
    @ApiModelProperty(value = "使用范围层级,账户：account，计划：plan,组：group")
    private String usageLevel;
    /**
     * 已使用次数
     */
    @Excel(name = "已使用次数", width = 15)
    @ApiModelProperty(value = "已使用次数")
    private Integer usageTimes;
    /**
     * 是否循环重复使用 0:否，1:是
     */
    @Excel(name = "是否循环重复使用 0:否，1:是", width = 15)
    @ApiModelProperty(value = "是否循环重复使用 0:否，1:是")
    private Integer isCycle;
    /**
     * createTime
     */
    @ApiModelProperty(value = "createTime")
    private Date createTime;
    /**
     * updateTime
     */
    @ApiModelProperty(value = "updateTime")
    private Date updateTime;

    @TableField(exist = false)
    private String itemName;

    @TableField(exist = false)
    private List<KuaishouChannelItems> items;

    @TableField(exist = false)
    private String authName;

    @TableField(exist = false)
    private Long campaignId;

    @TableField(exist = false)
    private Long unitId;

    @TableField(exist = false)
    private  List<String> rids;

}
