package com.chinaweal.aiccs.aiccs.revoke.entity;

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 com.baomidou.mybatisplus.extension.activerecord.Model;
import com.chinaweal.aiccs.common.util.DateUtils;
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 java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 公告任务名单表
 * </p>
 *
 * @author system
 * @since 2026-02-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ANNOUNCEMENT_TASK_LIST")
@ApiModel(value = "公告任务名单", description = "公告任务名单表")
public class AnnouncementTaskList extends Model<AnnouncementTaskList> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "ID", type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "主键ID")
    private String id;

    /**
     * 任务名称
     */
    @TableField("TASK_NAME")
    @ApiModelProperty(value = "任务名称")
    private String taskName;

    /**
     * 名单创建人单位id
     */
    @TableField("CREATE_UNIT_ID")
    @ApiModelProperty(value = "名单创建人单位id")
    private String createUnitId;

    /**
     * 名单创建人机构编码
     */
    @TableField("CREATE_UNIT_CODE")
    @ApiModelProperty("名单创建人机构编码")
    private String createUnitCode;

    /**
     * 名单创建人单位名称
     */
    @TableField("CREATE_UNIT_NAME")
    @ApiModelProperty(value = "名单创建人单位名称")
    private String createUnitName;

    /**
     * 名单创建人id
     */
    @TableField("CREATE_USER_ID")
    @ApiModelProperty(value = "名单创建人id")
    private String createUserId;

    /**
     * 名单创建时间
     */
    @TableField("CREATE_TIME")
    @ApiModelProperty(value = "名单创建时间")
    @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 名单更新人id
     */
    @TableField("UPDATE_USER_ID")
    @ApiModelProperty(value = "名单更新人id")
    private String updateUserId;

    /**
     * 名单更新时间
     */
    @TableField("UPDATE_TIME")
    @ApiModelProperty(value = "名单更新时间")
    @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标记(0否1是)
     */
    @TableField("DEL_FLAG")
    @ApiModelProperty(value = "逻辑删除标记(0否1是)")
    private String delFlag;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}