package com.playlet.system.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
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;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author clunt
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "playlet_task")
@ApiModel(value = "短剧*任务实体")
public class PlayletTask extends BaseEntity {

    private static final long serialVersionUID = 1L;

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

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

    /**
     * 任务id 保留字段
     */
    @Excel(name = "任务id")
    @ApiModelProperty(value = "任务id")
    private String taskId;

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

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

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

    /**
     * 任务名称
     */
    @Excel(name = "任务名称")
    @ApiModelProperty(value = "任务名称")
    private String name;

    @Excel(name = "短剧ID")
    @ApiModelProperty(value = "短剧ID")
    private Long itemId;

    @TableField(exist = false)
    private String itemName;

    @TableField(exist = false)
    @ApiModelProperty(value = "短剧")
    private PlayletItem playletItem;

    @ApiModelProperty(value = "参与人数")
    private Integer peopleNumber;

    @ApiModelProperty(value = "提成比例")
    private BigDecimal commissionRate;

    @ApiModelProperty(value = "推荐标签")
    private String recommendLabel;

    @ApiModelProperty(value = "任务链接")
    private String taskUrl;

    @ApiModelProperty(value = "任务网盘地址")
    private String taskDiskUrl;

    /**
     * 任务开始时间
     */
    @Excel(name = "任务开始时间")
    @ApiModelProperty(value = "任务开始时间")
    private Date startTime;

    /**
     * 任务结束时间
     */
    @Excel(name = "任务结束时间")
    @ApiModelProperty(value = "任务结束时间")
    private Date endTime;

    /**
     * 任务短剧平台
     */
    @Excel(name = "任务短剧平台")
    @ApiModelProperty(value = "任务短剧平台")
    private Long platformType;

    /**
     * 任务总奖金,单位分 保留
     */
    @Excel(name = "任务总奖金,单位分 保留")
    @ApiModelProperty(value = "任务总奖金,单位分 保留")
    private Long totalBonus;

    @Excel(name = "基础佣金,单位分 保留")
    @ApiModelProperty(value = "基础佣金,单位分")
    private Long baseBonus;

    /**
     * 任务状态 0 未开始 1 已开始 2 已结束 3 已失效 4 已完成
     */
    @Excel(name = "任务状态 0 未开始 1 已开始 2 已结束 3 已失效 4 已完成")
    @ApiModelProperty(value = "任务状态 0 未开始 1 已开始 2 已结束 3 已失效 4 已完成")
    private Long state;

    @Excel(name = "活动介绍")
    @ApiModelProperty(value = "活动介绍")
    private String taskContent;

    @Excel(name = "视频数")
    @ApiModelProperty(value = "视频数")
    private Long videoCount;

    @Excel(name = "播放次数")
    @ApiModelProperty(value = "播放次数")
    private Long playCount;

    @Excel(name = "获赞数")
    @ApiModelProperty(value = "获赞数")
    private Long starCount;

    @Excel(name = "评论数")
    @ApiModelProperty(value = "评论数")
    private Long commentCount;


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

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

}
