package com.hssx.pcbms.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author 吴涛涛
 * @since 2019-11-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Task extends Model<Task> {

    private static final long serialVersionUID=1L;

    /**
     * 任务主键
     */
    //AUTO 数据库ID自增
    //INPUT 用户输入ID
    //ID_WORKER 全局唯一ID，Long类型的主键
    //ID_WORKER_STR 字符串全局唯一ID
    //UUID 全局唯一ID，UUID类型的主键
    //NONE 该类型为未设置主键类型
    @TableId(value = "id",type = IdType.ID_WORKER_STR )
    private String id;

    /**
     * 任务名称
     */
    @TableField("name")
    private String name;

    /**
     * 任务编码
     */
    @TableField("code")
    private String code;

    /**
     * 计划时间
     */
    @TableField("plan_time")
    private String planTime;

    /**
     * 工作量
     */
    @TableField("work_load")
    private Integer workLoad;

    /**
     * 接受人id
     */
    @TableField("recipient_id")
    private Integer recipientId;

    /**
     * 付款方
     */
    @TableField("payer")
    private String payer;

    /**
     * 收款方
     */
    @TableField("payee")
    private String payee;

    /**
     * 费用
     */
    @TableField("fee")
    private BigDecimal fee;

    /**
     * 任务标签分类id
     */
    @TableField("tag_id")
    private String tagId;

    /**
     * 延迟日期
     */
    @TableField("delay_time")
    private String delayTime;

    /**
     * 状态0-待派发 1-已派发 2-已接受 3-待审核 4-未通过 5-已完成 6-已延期 7-已失效
     */
    @TableField("state")
    private Integer state;

    /**
     * 发布人id
     */
    @TableField("publish_id")
    private Integer publishId;

    /**
     * 任务内容
     */
    @TableField("content")
    private String content;

    /**
     * 排序时间
     */
    @TableField("indate")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime indate;


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

}
