package com.sptg.ad.api.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * title: AdPushTask
 * package: com.sptg.ad.api.entity
 * description: 广告发布任务表
 *
 *               
 *                 
 */
@Getter
@Setter
@TableName(value = "ad_push_task")
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdPushTask implements java.io.Serializable {
    /**
     * 主键
     */
    @TableId(value = "l_id",type = IdType.AUTO)
    private Long id;

    /**
     * 任务类型：{ 1：人脸广告，2：闲时广告 }
     */
    @TableField(value = "i_task_type")
    private Integer taskType;

    /**
     * 要发布的广告条数
     */
    @TableField(value = "i_content_count")
    private Integer contentCount;

    /**
     * 发布状态{ -1：发布失败，0：待发布，1：发布成功，2：已撤销 }
     */
    @TableField(value = "i_push_status")
    private Integer pushStatus;
    /**
     * 广告开始播放时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_begin_date")
    private Date beginDate;
    /**
     * 广告结束播放时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_end_date")
    private Date endDate;
    /**
     * 预计发布时间
     */
    @TableField(value = "t_estimate_push_date")
    private Date estimatePushDate;
    /**
     * 发布类型{ 1 ：按小区发布，2：按单元发布，3：按设备发布，4：按区域发布}
     */
    @TableField(value = "i_push_type")
    private Integer pushType;
    /**
     * 发布成功次数
     */
    @TableField(value = "l_push_success")
    private Long pushSuccess;
    /**
     * 发布总次数
     */
    @TableField(value = "l_push_count")
    private Long pushCount;
    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField(value = "t_create_date")
    private Date createDate;
    /**
     * 创建人Id
     */
    @TableField(value = "l_create_account_id")
    private Long createAccountId;
    /**
     * 创建人的账号登录名
     */
    @TableField(value = "s_create_account_name")
    private String createAccountName;
    /**
     * 机构Id
     */
    @TableField(value = "l_org_id")
    private Long orgId;
    /**
     * 跟机构id
     */
    @TableField(value = "l_root_org_id")
    private Long rootOrgId;

    /**
     * 存储位置
     */
    @TableField(value = "s_org_position")
    private String orgPosition;
    /**
     * 备注
     */
    @TableField(value = "s_remark")
    private String remark;

    /**
     * 是否过滤阈值：{ 1：启用阈值配置，2：禁用阈值配置 }
     */
    @TableField(value = "i_enable_threshold")
    private Integer enableThreshold;

    /**
     * 扩展字段
     * 每张图片播放时间（秒）
     */
    @TableField(exist = false)
    private Integer imgPlayTime;
    /**
     * 数组--要发布的广告id
     * 扩展字段
     */
    @TableField(exist = false)
    private Long[] adIds;
    /**
     * 数组--任务id
     * 扩展字段
     */
   @TableField(exist = false)
   private Long[] adPushTaskDetails;
    /**
     * 扩展属性
     */
    @TableField(exist = false)
    private  List<AdPushContent> adPushContents;

    /**
     * 扩展属性
     */
    @TableField(exist = false)
    private  List<AdPushTaskDetails> adPushTaskDetailsList;

    /**
     * 扩展属性
     */
    @TableField(exist = false)
    private  List<String> adPushContentNames;

    /**
     * 扩展属性
     */
    @TableField(exist = false)
    private  List<String> adPushRangeNames;
    /**
     * 扩展属性
     */
    @TableField(exist = false)
    private String adTitle;

}
