package cn.com.ctop.common.module.entity;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 素材信息
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2019-10-11
 */
@Data
@TableName("ctop_material_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ctop_material_info对象", description = "素材信息")
public class MaterialInfo implements Serializable {

    /**
     * id
     */
    @TableId(type = IdType.UUID)
    @ApiModelProperty(value = "id")
    private String id;
    /**
     * 存放id的数组
     */
    @TableField(exist = false)
    private String[] ids;
    /**
     * code
     */
    @Excel(name = "code", width = 15)
    @ApiModelProperty(value = "code")
    private String code;
    private String watermarkCode;
    /**
     * url
     */
    @Excel(name = "url", width = 15)
    @ApiModelProperty(value = "url")
    private String url;
    /**
     * 封面url
     */
    private String coverUrl;

    /**
     * 水印素材链接
     */
    private String watermarkUrl;

    private String type;
    /**
     * 审核人id
     */
    private String auditorId;
    /**
     * status
     * <p>
     * 0-待审核 1-审核通过 2-审核拒绝
     */
    @Excel(name = "status", width = 15)
    @ApiModelProperty(value = "status")
    private Integer status;
    /**
     * userId
     */
    @Excel(name = "user_id", width = 15)
    @ApiModelProperty(value = "user_id")
    private String userId;


    private String materialDescribe;


    private Long projectId;

    private Long productId;

    /**
     * 素材名称
     */
    private String materialName;

    /**
     * 水印素材名称
     */
    private String watermarkMaterialName;

    /**
     * 拒绝原因
     */
    private String refuseReason;
    /**
     * 拒绝上传文件
     */
    private String refuseFile;

    /**
     * 创意文案
     */
    private String creativeCopywriter;

    /**
     * 是否优秀素材
     */
    private Integer excellent;
    /**
     * createTime
     */
    @ApiModelProperty(value = "createTime")
    // @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date createTime;
    /**
     * updateTime
     */
    @ApiModelProperty(value = "updateTime")
    // @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date updateTime;

    //判断是否为头条有效素材0否_1是
    private Integer toutiaoEffiType;
    // 素造供应商
    private String supplierCode;

    //判断是否为快手有效素材0否_1是
    private Integer kuaishouEffiType;

    //判断是否已经同步到快手平台0否_1是
    @TableField(exist = false)
    private Integer kuaishouVideoIsUp;

    //判断是否已经同步到头条平台0否_1是
    @TableField(exist = false)
    private Integer toutiaoVideoIsUp;

    @TableField(exist = false)
    private JSONObject byteDance;

    @TableField(exist = false)
    private JSONObject kuaiShou;

    //拍摄时候担任的角色
    @TableField(exist = false)
    private String videoRoleCode;

    //原本的角色
    @TableField(exist = false)
    private String originRoleName;

    @TableField(exist = false)
    private BigDecimal cost;

    @TableField(exist = false)
    private BigDecimal bytedanceCost;

    @TableField(exist = false)
    private String realname;

    // 是否有未审核封面
    @TableField(exist = false)
    private Boolean whetherUnaudited;

    @TableField(exist = false)
    private String mediaId;  // 是否有未审核封面

    @TableField(exist = false)
    private String projectName;  // 是否有未审核封面

    @TableField(exist = false)
    private String startDate;  // 是否有未审核封面

    @TableField(exist = false)
    private String endDate;  // 是否有未审核封面

    //视频关联广告语信息--头条
    @TableField(exist = false)
    private JSONArray slogans;

    @TableField(exist = false)
    private Integer slogansCount;

    private Integer offlineFlag;

    private Date confirmTime;
}
