package com.playlet.system.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.playlet.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.playlet.common.annotation.Excel;

/**
 * @Date: 2024-03-14-22:50
 * @Author: 但星霖
 * @Version: v1.0
 * @Description: 短剧基础对象 playlet_item
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "playlet_item")
@ApiModel(value = "短剧*标准参数")
public class PlayletItem extends BaseEntity{

    private static final long serialVersionUID = 1L;

    /** 主键id */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Excel(name = "短剧id")
    @ApiModelProperty(value = "短剧id")
    private String itemId;

    /** 来源类型 1.抖音 2.快手 3.视频号 */
    @Excel(name = "来源类型 1.抖音 2.快手 3.视频号")
    @ApiModelProperty(value = "来源类型 1.抖音 2.快手 3.视频号")
    private Long sourceType;

    @ApiModelProperty(value = "抖音上架状态")
    private String dyStatus;

    @ApiModelProperty(value = "快手上架状态")
    private String ksStatus;

    @ApiModelProperty(value = "视频上架状态")
    private String dspStatus;

    @TableField(exist = false)
    private String [] sourceTypeIds;

    @TableField(exist = false)
    private String producerType;

    /** 视频名称 */
    @Excel(name = "短剧标题")
    @ApiModelProperty(value = "短剧标题")
    private String videoName;

    /** 视频是否完结 0 未完结 1 完结  */
    @Excel(name = "视频是否完结 0 未完结 1 完结 ")
    @ApiModelProperty(value = "视频是否完结 0 未完结 1 完结")
    private Long completeNot;

    /** 视频封面图 */
    @Excel(name = "封面图")
    @ApiModelProperty(value = "封面图")
    private String coverPic;

    @Excel(name = "主角名称")
    @ApiModelProperty(value = "主角名称")
    private String actorName;

    @Excel(name = "出品方")
    @ApiModelProperty(value = "出品方")
    private String producer;

    @Excel(name = "推荐标签")
    @ApiModelProperty(value = "推荐标签")
    private String tags;

    /** 上映时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出品时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "出品时间")
    private Date releaseTime;

    @JsonFormat(pattern = "yyyy-MM-dd hh:mm")
    @Excel(name = "上线时间", width = 30, dateFormat = "yyyy-MM-dd hh:mm")
    @ApiModelProperty(value = "上线日期")
    private Date upTime;

    /** 连接地址 */
    @Excel(name = "视频素材")
    @ApiModelProperty(value = "视频素材")
    private String connectSite;


    /** 视频类型1 科幻 2 爱情 3 恐怖 4 悬疑.. */
    @Excel(name = "类型1 科幻 2 爱情 3 恐怖 4 悬疑..")
    @ApiModelProperty(value = "类型1 科幻 2 爱情 3 恐怖 4 悬疑..")
    private String videoType;

    @Excel(name = "标签")
    @ApiModelProperty(value = "标签")
    private String labelType;

    /** 集数 */
    @Excel(name = "集数")
    @ApiModelProperty(value = "集数")
    private Long numberEpisode;

    @ApiModelProperty(value = "收费集数")
    private Long numberCost;

    @ApiModelProperty(value = "任务id")
    private String taskId;

    /** 是否删除 1 正常 0 删除 */
    @Excel(name = "是否删除 1 正常 0 删除")
    @ApiModelProperty(value = "是否删除 1 正常 0 删除")
    private Long isDelete;

    @Excel(name = "是否精品剧")
    @ApiModelProperty(value = "是否精品剧")
    private Long specialItem;

    @Excel(name = "对标用户")
    @ApiModelProperty(value = "对标用户")
    private String forUser;

    /** 剧场类型 */
    @Excel(name = "剧场类型")
    @ApiModelProperty(value = "剧场类型")
    private Integer itemType;

    @ApiModelProperty(value = "剧场类型名称")
    @TableField(exist = false)
    private String itemTypeName;

    @ApiModelProperty(value = "上架开始时间")
    @TableField(exist = false)
    private Date createBeginTime;

    @ApiModelProperty(value = "上架结束时间")
    @TableField(exist = false)
    private Date createEndTime;

    @ApiModelProperty(value = "用户id")
    @TableField(exist = false)
    private String userId;

    @ApiModelProperty(value = "是否加入")
    @TableField(exist = false)
    private Boolean isJoin = false;

}
