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

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
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 org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 快手-广告组预览信息
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2021-01-26
 */
@Data
@TableName("ctop_kuaishou_batch_group_preview")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ctop_kuaishou_batch_group_preview对象", description = "快手-广告组预览信息")
public class KuaishouBatchGroupPreview {

    /**
     * id
     */
    @TableId
    @ApiModelProperty(value = "id")
    private String id;
    /**
     * 账户ID
     */
    @Excel(name = "账户ID", width = 15)
    @ApiModelProperty(value = "账户ID")
    private Long accountId;
    /**
     * 定向模板id
     */
    private Long templateId;
    /**
     * 定向模板id
     */

    @TableField(exist = false)
    private String templateName;
    /**
     * 广告活动ID
     */
    @Excel(name = "广告活动ID", width = 15)
    @ApiModelProperty(value = "广告活动ID")
    private String planId;
    /**
     * 广告组名称
     */
    @Excel(name = "广告组名称", width = 15)
    @ApiModelProperty(value = "广告组名称")
    private String unitName;
    /**
     * 命名格式
     */
    private String unitNameFormat;
    /**
     * 投放状态 1：投放中；2：暂停
     */
    @Excel(name = "投放状态 1：投放中；2：暂停", width = 15)
    @ApiModelProperty(value = "投放状态 1：投放中；2：暂停")
    private Integer putStatus;
    /**
     * 出价类型
     */
    @Excel(name = "出价类型", width = 15)
    @ApiModelProperty(value = "出价类型")
    private Integer bidType;
    /**
     * 出价
     */
    @Excel(name = "出价", width = 15)
    @ApiModelProperty(value = "出价")
    private Integer bid;
    /**
     * OCPC出价
     */
    @Excel(name = "OCPC出价", width = 15)
    @ApiModelProperty(value = "OCPC出价")
    private Integer cpaBid;
    /**
     * OCPX行为类型   1： CPM， 2： CPC，
     */
    @Excel(name = "OCPX行为类型   1： CPM， 2： CPC，", width = 15)
    @ApiModelProperty(value = "OCPX行为类型   1： CPM， 2： CPC，")
    private Integer ocpxActionType;
    /**
     * 深度转化目标 3: 付费，7: 次日留存，10: 完件, 11: 授信 ，0：无
     */
    @Excel(name = "深度转化目标 3: 付费，7: 次日留存，10: 完件, 11: 授信 ，0：无", width = 15)
    @ApiModelProperty(value = "深度转化目标 3: 付费，7: 次日留存，10: 完件, 11: 授信 ，0：无")
    private Integer deepConversionType;
    /**
     * 深度转化目标出价
     */
    @Excel(name = "深度转化目标出价", width = 15)
    @ApiModelProperty(value = "深度转化目标出价")
    private Integer deepConversionBid;
    /**
     * 单日预算
     */
    @Excel(name = "单日预算", width = 15)
    @ApiModelProperty(value = "单日预算")
    private Integer dayBudget;
    /**
     * 投放方式  0：未知， 1：正常投
     */
    @Excel(name = "投放方式  0：未知， 1：正常投", width = 15)
    @ApiModelProperty(value = "投放方式  0：未知， 1：正常投")
    private Integer speed;
    /**
     * 投放开始时间
     */
    @Excel(name = "投放开始时间", width = 15)
    @ApiModelProperty(value = "投放开始时间")
    private String beginTime;
    /**
     * 投放结束时间
     */
    @Excel(name = "投放结束时间", width = 15)
    @ApiModelProperty(value = "投放结束时间")
    private String endTime;
    /**
     * 投放时段
     */
    @Excel(name = "投放时段", width = 15)
    @ApiModelProperty(value = "投放时段")
    private String scheduleTime;
    /**
     * 广告位 1：优选广告位；
     */
    @Excel(name = "广告位 1：优选广告位；", width = 15)
    @ApiModelProperty(value = "广告位 1：优选广告位；")
    private String sceneId;
    /**
     * 创意展现方式  0：未知， 1：轮播，
     */
    @Excel(name = "创意展现方式  0：未知， 1：轮播，", width = 15)
    @ApiModelProperty(value = "创意展现方式  0：未知， 1：轮播，")
    private Integer showMode;
    /**
     * 创意制作方式 4: 自定义
     */
    @Excel(name = "创意制作方式 4: 自定义", width = 15)
    @ApiModelProperty(value = "创意制作方式 4: 自定义")
    private Integer unitType;
    /**
     * 当计划类型为3时（获取电商下单）时有返回。
     */
    @Excel(name = "当计划类型为3时（获取电商下单）时有返回。", width = 15)
    @ApiModelProperty(value = "当计划类型为3时（获取电商下单）时有返回。")
    private Integer urlType;
    /**
     * 投放链接
     */
    @Excel(name = "投放链接", width = 15)
    @ApiModelProperty(value = "投放链接")
    private String url;
    /**
     * 是否开启原生	0关闭，1开启，不填默认为0仅在计划 campaignType=2提升应用安装、5收集销售线索、7提升应用活跃、19推广快手小程序时，
     * 可开启原生投放。
     */
    private Integer outerLoopNative;

    /**
     * 原生达人用户类型	2服务号原生，3聚星达人原生，当outer_loop_native为1时此项必填
     */
    private Integer kolUserType;
    /**
     * 调起链接
     */
    @Excel(name = "调起链接", width = 15)
    @ApiModelProperty(value = "调起链接")
    private String schemaUri;
    /**
     * APP ID
     */
    @Excel(name = "APP ID", width = 15)
    @ApiModelProperty(value = "APP ID")
    private Integer appId;
    /**
     * APP图标存储地址
     */
    @Excel(name = "APP图标存储地址", width = 15)
    @ApiModelProperty(value = "APP图标存储地址")
    private String appIconUrl;
    /**
     * 转化目标
     */
    @Excel(name = "转化目标", width = 15)
    @ApiModelProperty(value = "转化目标")
    private Integer convertId;
    /**
     * 优先从系统应用商店下载
     */
    @Excel(name = "优先从系统应用商店下载", width = 15)
    @ApiModelProperty(value = "优先从系统应用商店下载")
    private Integer useAppMarket;
    /**
     * 应用列表
     */
    @Excel(name = "应用列表", width = 15)
    @ApiModelProperty(value = "应用列表")
    private String appStore;

    /**
     * 媒体包来源 默认为 0，0-不限，未指定，1-行业优质流量包，2-广告主自定义
     */
    @Excel(name = "媒体定向包", width = 15)
    @ApiModelProperty(value = "媒体定向包")
    private Integer mediaSourceType;
    /**
     * 是否投放开屏广告位  1投放，0不投放
     */
    @Excel(name = "是否投放开屏广告位 1投放，0不投放", width = 15)
    @ApiModelProperty(value = "是否投放开屏广告位  1投放，0不投放")
    private Integer splashAdSwitch;
    /**
     * 媒体定向包
     */
    @Excel(name = "媒体定向包", width = 15)
    @ApiModelProperty(value = "媒体定向包")
    private String media;

    /**
     * 付费人群包
     */
    @Excel(name = "媒体定向排除包", width = 15)
    @ApiModelProperty(value = "媒体定向排除包")
    private String excludeMedia;
    /**
     * 试玩 ID集
     */
    @Excel(name = "试玩 ID", width = 15)
    @ApiModelProperty(value = "试玩 ID")
    private Long playableId;
    /**
     * 1：立即试玩；2：试玩一下；3：立即体验；4：免装试玩；5：免装体验。启用试玩时：默认“立即试玩”
     */
    @Excel(name = "1：立即试玩；2：试玩一下；3：立即体验；4：免装试玩；5：免装体验。启用试玩时：默认“立即试玩", width = 15)
    @ApiModelProperty(value = "1：立即试玩；2：试玩一下；3：立即体验；4：免装试玩；5：免装体验。启用试玩时：默认“立即试玩")
    private String playButton;
    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 修改时间
     */
    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;
    /**
     * 批次标识
     */
    @Excel(name = "批次标识", width = 15)
    @ApiModelProperty(value = "批次标识")
    private String batchId;

    @TableField(exist = false)
    private List<KuaishouBatchCreativePreview> kuaishouBatchCreativePreviews;

    /**
     * 是否创建成功 0 失败，1成功
     */
    private int isSuccess;

    /**
     * 操作说明
     */
    private String message;
    /**
     * 创建成功后的计划ID
     */
    private Long campaignId;
    /**
     * 创建成功后的组ID
     */
    private Long unitId;

    @TableField(exist = false)
    private JSONArray materialArr;

    @TableField(exist = false)
    private JSONArray descriptionArr;

    @TableField(exist = false)
    private String clickTrackUrl;

    @TableField(exist = false)
    private String actionbarClickUrl;

    @TableField(exist = false)
    private Long siteId;

    @TableField(exist = false)
    private String statDate;

    @TableField(exist = false)
    private Integer bidMax;

    @TableField(exist = false)
    private Integer bidMin;
}
