package cn.com.ctop.kuaishou.modules.v3.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.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 自动投放v3-账户策略表
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2022-10-24
 */
@Data
@TableName("ctop_v3_kuaishou_account_auto_strategy")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ctop_v3_kuaishou_account_auto_strategy对象", description = "自动投放v3-账户策略表")
public class V3KuaishouAccountAutoStrategy {

    /**
     * 客户策略ID
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "客户策略ID")
    private Long id;
    /**
     * 账户ID
     */
    @Excel(name = "账户ID", width = 15)
    @ApiModelProperty(value = "账户ID")
    private Long accountId;
    /**
     * 策略状态 1-使用 0-停用
     */
    @Excel(name = "策略状态 1-使用 0-停用", width = 15)
    @ApiModelProperty(value = "策略状态 1-使用 0-停用")
    private Integer status;
    /**
     * 客户要求的计划名称规范
     */
    @Excel(name = "客户要求的计划名称规范", width = 15)
    @ApiModelProperty(value = "客户要求的计划名称规范")
    private String campaignName;
    /**
     * 计划状态: 1:投放 2：暂停
     */
    @Excel(name = "计划状态: 1:投放 2：暂停 ", width = 15)
    @ApiModelProperty(value = "计划状态: 1:投放 2：暂停 ")
    private Integer campaignStatus;
    /**
     * 计划类型2-应用下载；3-获取电商下单；4-推广品牌活动；5-收集营销线索；7-应用拉活；16-粉丝直播推广
     */
    @Excel(name = "计划类型2-应用下载；3-获取电商下单；4-推广品牌活动；5-收集营销线索；7-应用拉活；16-粉丝直播推广", width = 15)
    @ApiModelProperty(value = "计划类型2-应用下载；3-获取电商下单；4-推广品牌活动；5-收集营销线索；7-应用拉活；16-粉丝直播推广")
    private Integer campaignType;
    /**
     * 客户要求的广告组名称规范
     */
    @Excel(name = "客户要求的广告组名称规范", width = 15)
    @ApiModelProperty(value = "客户要求的广告组名称规范")
    private String groupName;

    /**
     * 定向模板id
     */
    @Excel(name = "定向模板id", width = 15)
    @ApiModelProperty(value = "定向模板id")
    private String templateId;
    /**
     * 广告类型		0：信息流广告；1：搜索广告
     */
    @Excel(name = "广告类型	0：信息流广告；1：搜索广告", width = 15)
    @ApiModelProperty(value = "广告类型	0：信息流广告；1：搜索广告")
    private Integer adType;
    /**
     * 投放策略 0：投放策略（默认）；1：最大转化
     */
    @Excel(name = "投放策略 0：投放策略（默认）；1：最大转化", width = 15)
    @ApiModelProperty(value = "投放策略 0：投放策略（默认）；1：最大转化")
    private Integer campaignBidType;
    /**
     * 出价类型 2：CPC；10：OCPM；12：最大转化
     */
    @Excel(name = "出价类型 2：CPC；10：OCPM；12：最大转化", width = 15)
    @ApiModelProperty(value = "出价类型 2：CPC；10：OCPM；12：最大转化")
    private Integer unitBidType;
    /**
     * 优先从系统应用商店下载
     */
    @Excel(name = "优先从系统应用商店下载", width = 15)
    @ApiModelProperty(value = "优先从系统应用商店下载")
    private Integer useAppMarket;
    /**
     * 应用商店列表
     */
    @Excel(name = "应用商店列表", width = 15)
    @ApiModelProperty(value = "应用商店列表")
    private String appStore;
    /**
     * 出价
     */
    @Excel(name = "出价", width = 15)
    @ApiModelProperty(value = "出价")
    private String bid;
    /**
     * cpaBid出价
     */
    @Excel(name = "cpaBid出价", width = 15)
    @ApiModelProperty(value = "cpaBid出价")
    private String cpaBid;
    /**
     * 优化目标
     */
    @Excel(name = "优化目标", width = 15)
    @ApiModelProperty(value = "优化目标")
    private Integer ocpxActionType;
    /**
     * 深度转化目标
     */
    @Excel(name = "深度转化目标", width = 15)
    @ApiModelProperty(value = "深度转化目标")
    private Integer deepConversionType;
    /**
     * 付费ROI系数
     */
    @Excel(name = "付费ROI系数", width = 15)
    @ApiModelProperty(value = "付费ROI系数")
    private Float roiRatio;
    /**
     * 资源位置
     */
    @Excel(name = "资源位置", width = 15)
    @ApiModelProperty(value = "资源位置")
    private String sceneIds;
    /**
     * 创意制作方式 4-自定义 5-程序化创意 7-程序化创意2.0
     */
    @Excel(name = " 创意制作方式 4-自定义 5-程序化创意 7-程序化创意2.0", width = 15)
    @ApiModelProperty(value = " 创意制作方式 4-自定义 5-程序化创意 7-程序化创意2.0")
    private Integer unitType;
    /**
     * 投放开始时间
     */
    @Excel(name = "投放开始时间", width = 15)
    @ApiModelProperty(value = "投放开始时间")
    private String beginTime;
    /**
     * 投放结束时间
     */
    @Excel(name = "投放结束时间", width = 15)
    @ApiModelProperty(value = "投放结束时间")
    private String endTime;
    /**
     * 投放排期
     * [[0,2],[],[5, 9],[],[],[],[]]
     * 表示只在周一的0点和2点，周三的5点和9点进行投放。 注意如果传参为[],[],[],[],[],[],[]会被当成[]处理
     */
    @Excel(name = "投放时间段", width = 15)
    @ApiModelProperty(value = "投放时间段")
    private String scheduleTime;
    /**
     * 转化目标ID
     */
    @Excel(name = "转化目标ID", width = 15)
    @ApiModelProperty(value = "转化目标ID")
    private Integer convertId;
    /**
     * url类型
     */
    @Excel(name = "url类型", width = 15)
    @ApiModelProperty(value = "url类型")
    private Integer urlType;
    /**
     * url类型
     */
    @Excel(name = "url类型", width = 15)
    @ApiModelProperty(value = "url类型")
    private Integer webUriType;
    /**
     * 投放链接
     */
    @Excel(name = "投放链接", width = 15)
    @ApiModelProperty(value = "投放链接")
    private String url;
    /**
     * 调起链接
     */
    @Excel(name = "调起链接", width = 15)
    @ApiModelProperty(value = "调起链接")
    private String schemaUri;
    /**
     * 应用ID
     */
    @Excel(name = "应用ID", width = 15)
    @ApiModelProperty(value = "应用ID")
    private Long appId;
    /**
     * 创意展现方式 1-轮播  2-优选
     */
    @Excel(name = "创意展现方式 1-轮播  2-优选", width = 15)
    @ApiModelProperty(value = "创意展现方式 1-轮播  2-优选")
    private Integer showMode;
    /**
     * 投放方式 1-加速投放  2-平滑投放 3-优先低成本
     */
    @Excel(name = "投放方式 1-加速投放  2-平滑投放 3-优先低成本", width = 15)
    @ApiModelProperty(value = "投放方式 1-加速投放  2-平滑投放 3-优先低成本")
    private Integer speed;
    /**
     * 预约广告
     */
    @Excel(name = "预约广告", width = 15)
    @ApiModelProperty(value = "预约广告")
    private Integer siteType;
    /**
     * 游戏礼包码
     */
    @Excel(name = "游戏礼包码", width = 15)
    @ApiModelProperty(value = "游戏礼包码")
    private String giftData;
    /**
     * 是否使用落地页前置功能
     */
    @Excel(name = "是否使用落地页前置功能", width = 15)
    @ApiModelProperty(value = "是否使用落地页前置功能")
    private Integer videoLandingPage;
    /**
     * 定向类型 0：不限；1：智能定向
     */
    @Excel(name = "定向类型 0：不限；1：智能定向", width = 15)
    @ApiModelProperty(value = "定向类型 0：不限；1：智能定向")
    private Integer targetType;
    /**
     * 是否开启自动生成视频
     */
    @Excel(name = "是否开启自动生成视频", width = 15)
    @ApiModelProperty(value = "是否开启自动生成视频")
    private Integer autoCreatePhoto;
    /**
     * 创意名称
     */
    @Excel(name = "创意名称", width = 15)
    @ApiModelProperty(value = "创意名称")
    private String creativeName;
    /**
     * 行动号召按钮文案
     */
    @Excel(name = "行动号召按钮文案", width = 15)
    @ApiModelProperty(value = "行动号召按钮文案")
    private String actionBarText;
    /**
     * 广告语
     */
    @Excel(name = "广告语", width = 15)
    @ApiModelProperty(value = "广告语")
    private String description;
    /**
     * 便利贴创意短广告语
     */
    @Excel(name = "便利贴创意短广告语", width = 15)
    @ApiModelProperty(value = "便利贴创意短广告语")
    private String shortSlogan;
    /**
     * 封面广告语标题
     */
    @Excel(name = "封面广告语标题", width = 15)
    @ApiModelProperty(value = "封面广告语标题")
    private String stickerTitle;
    /**
     * 贴纸样式类型
     */
    @Excel(name = "贴纸样式类型", width = 15)
    @ApiModelProperty(value = "贴纸样式类型")
    private String overlayType;
    /**
     * 广告标签
     */
    @Excel(name = "广告标签", width = 15)
    @ApiModelProperty(value = "广告标签")
    private String exposeTag;
    /**
     * 广告标签2期
     */
    @Excel(name = "广告标签2期", width = 15)
    @ApiModelProperty(value = "广告标签2期")
    private String newExposeTag;
    /**
     * 安卓下载中间页ID
     */
    @Excel(name = "安卓下载中间页ID", width = 15)
    @ApiModelProperty(value = "安卓下载中间页ID")
    private String siteId;
    /**
     * 程序化落地页
     */
    @Excel(name = "程序化落地页", width = 15)
    @ApiModelProperty(value = "程序化落地页")
    private String groupId;
    /**
     * 第三方点击检测链接
     */
    @Excel(name = "第三方点击检测链接", width = 15)
    @ApiModelProperty(value = "第三方点击检测链接")
    private String clickTrackUrl;
    /**
     * 第三方开始播放监测链接
     */
    @Excel(name = "第三方开始播放监测链接", width = 15)
    @ApiModelProperty(value = "第三方开始播放监测链接")
    private String impressionUrl;
    /**
     * 第三方有效播放监测链接
     */
    @Excel(name = "第三方有效播放监测链接", width = 15)
    @ApiModelProperty(value = "第三方有效播放监测链接")
    private String adPhotoPlayedT3sUrl;
    /**
     * 第三方点击按钮监测链接
     */
    @Excel(name = "第三方点击按钮监测链接", width = 15)
    @ApiModelProperty(value = "第三方点击按钮监测链接")
    private String actionbarClickUrl;
    /**
     * 创意分类
     */
    @Excel(name = "创意分类", width = 15)
    @ApiModelProperty(value = "创意分类")
    private Integer creativeCategory;
    /**
     * 创意标签
     */
    @Excel(name = "创意标签", width = 15)
    @ApiModelProperty(value = "创意标签")
    private String creativeTag;
    /**
     * 物料关联的封面个数
     */
    private Integer imageCnt;
    /**
     * 组素材数
     */
    @Excel(name = "组素材数", width = 15)
    @ApiModelProperty(value = "组素材数")
    private Integer customCreativeCnt;
    /**
     * 程序化创意2.0-是否开启智能抽帧
     */
    @Excel(name = "程序化创意2.0-是否开启智能抽帧", width = 15)
    @ApiModelProperty(value = "程序化创意2.0-是否开启智能抽帧")
    private Integer smartCover;
    /**
     * 程序化创意2.0-是否开启素材挖掘
     */
    @Excel(name = "程序化创意2.0-是否开启素材挖掘", width = 15)
    @ApiModelProperty(value = "程序化创意2.0-是否开启素材挖掘")
    private Integer assetMining;
    /**
     * 单/多应用，1单应用，2多应用
     */
    @Excel(name = "单/多应用，1单应用，2多应用", width = 15)
    @ApiModelProperty(value = "单/多应用，1单应用，2多应用")
    private Integer singleAppid;
    /**
     * 应用ID列表
     */
    @Excel(name = "应用ID列表", width = 15)
    @ApiModelProperty(value = "应用ID列表")
    private String appIdArray;
    /**
     * 是否通用监测链接
     */
    @Excel(name = "是否通用监测链接", width = 15)
    @ApiModelProperty(value = "是否通用监测链接")
    private Integer generalTrack;
    /**
     * 深度转化出价
     */
    @Excel(name = "深度转化出价", width = 15)
    @ApiModelProperty(value = "深度转化出价")
    private String deepConversionBid;
    /**
     * 是否创建程序化创意
     */
    @Excel(name = "是否创建程序化创意", width = 15)
    @ApiModelProperty(value = "是否创建程序化创意")
    private Integer openProgramCreate;
    /**
     * 行为意向-系统优选,0关闭，1开启
     */
    @Excel(name = "行为意向-系统优选,0关闭，1开启", width = 15)
    @ApiModelProperty(value = "行为意向-系统优选,0关闭，1开启")
    private Integer intentionTarget;
    /**
     * 操作人
     */
    @Excel(name = "操作人", width = 15)
    @ApiModelProperty(value = "操作人")
    private String userId;
    /**
     * 素材来源 0：自产 1：素造
     */
    @Excel(name = "素材来源 0：自产 1：素造", width = 15)
    @ApiModelProperty(value = "素材来源 0：自产 1：素造")
    private Integer channelType;
    /**
     * 计划日预算
     */
    @Excel(name = "计划日预算", width = 15)
    @ApiModelProperty(value = "计划日预算")
    private Long campaignDayBudget;
    /**
     * 组日预算
     */
    @Excel(name = "组日预算", width = 15)
    @ApiModelProperty(value = "组日预算")
    private Long unitDayBudget;
    /**
     * 分日预算
     */
    @Excel(name = "分日预算", width = 15)
    @ApiModelProperty(value = "分日预算")
    private String campaignDayBudgetSchedule;
    /**
     * 自定义计划数量
     */
    @Excel(name = "自定义计划数量", width = 15)
    @ApiModelProperty(value = "自定义计划数量")
    private Integer customPlanCnt;
    /**
     * 自定义组数量
     */
    @Excel(name = "自定义组数量", width = 15)
    @ApiModelProperty(value = "自定义组数量")
    private Integer customUnitCnt;
    /**
     * 程序化计划数量
     */
    @Excel(name = "程序化计划数量", width = 15)
    @ApiModelProperty(value = "程序化计划数量")
    private Integer programPlanCnt;
    /**
     * 程序化组数量
     */
    @Excel(name = "程序化组数量", width = 15)
    @ApiModelProperty(value = "程序化组数量")
    private Integer programUnitCnt;
    /**
     * 素材名称关键字
     */
    @Excel(name = "素材名称关键字", width = 15)
    @ApiModelProperty(value = "素材名称关键字")
    private String materialKeyword;
    /**
     * 是否多应用多出价 0 否 1 是
     */
    @Excel(name = "是否多应用多出价 0 否 1 是", width = 15)
    @ApiModelProperty(value = "是否多应用多出价 0 否 1 是")
    private Integer multipleBids;
    /**
     * 渠道号使用层级
     */
    @Excel(name = "渠道号使用层级", width = 15)
    @ApiModelProperty(value = "渠道号使用层级")
    private String usageLevel;
    /**
     * 是否使用渠道号0不使用，1使用
     */
    @Excel(name = "是否使用渠道号0不使用，1使用", width = 15)
    @ApiModelProperty(value = "是否使用渠道号0不使用，1使用")
    private Integer useChannel;
    /**
     * 1 定向匹配。2素材匹配
     */
    @Excel(name = "1 定向匹配。2素材匹配", width = 15)
    @ApiModelProperty(value = "1 定向匹配。2素材匹配")
    private Integer matchType;
    /**
     * 本地定向集
     */
    @Excel(name = "本地定向集", width = 15)
    @ApiModelProperty(value = "本地定向集")
    private String autoTargetArray;
    /**
     * 素材来源 1-上新素材，2-高质量素材，3-遗漏素材，4-历史打捞
     */
    @Excel(name = "素材来源 1-上新素材，2-高质量素材，3-遗漏素材，4-历史打捞", width = 15)
    @ApiModelProperty(value = "素材来源 1-上新素材，2-高质量素材，3-遗漏素材，4-历史打捞")
    private String sourceMaterial;
    /**
     * 是否使用优质定向  0 否 1 是
     */
    @Excel(name = "是否使用优质定向  0 否 1 是 ", width = 15)
    @ApiModelProperty(value = "是否使用优质定向  0 否 1 是 ")
    private Integer systemOptimization;
    /**
     * 应用中间页的类型 0=不使用；1=建站落地页
     */
    @Excel(name = "应用中间页的类型 0=不使用；1=建站落地页", width = 15)
    @ApiModelProperty(value = "应用中间页的类型 0=不使用；1=建站落地页")
    private Integer downloadPageType;
    /**
     * 应用中间页链接
     */
    @Excel(name = "应用中间页链接", width = 15)
    @ApiModelProperty(value = "应用中间页链接")
    private String downloadPageUrl;
    /**
     * 试玩 ID集
     */
    @Excel(name = "试玩 ID集", width = 15)
    @ApiModelProperty(value = "试玩 ID集")
    private String playableIds;
    /**
     * 1：立即试玩；2：试玩一下；3：立即体验；4：免装试玩；5：免装体验。启用试玩时：默认“立即试玩”
     */
    @Excel(name = "1：立即试玩；2：试玩一下；3：立即体验；4：免装试玩；5：免装体验。启用试玩时：默认“立即试玩”", width = 15)
    @ApiModelProperty(value = "1：立即试玩；2：试玩一下；3：立即体验；4：免装试玩；5：免装体验。启用试玩时：默认“立即试玩”")
    private String playButton;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * updateTime
     */
    @ApiModelProperty(value = "updateTime")
    private Date updateTime;

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

    @TableField(exist = false)
    private String authName;

    @TableField(exist = false)
    private int customCreatedUnitCnt;

    @TableField(exist = false)
    private int programCreatedUnitCnt;
    //待建广告组数
    @TableField(exist = false)
    private int toBeBuiltCnt;
}
