package com.cpop.oam.business.vo;

import com.cpop.core.annontation.StringArrayConvert;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * Description:
 * date: 2023/5/15 17:30
 *
 * @Author ST
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "Task对象", description = "OAM-任务表")
public class PersonTaskPageVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    private String id;

    /**
     * 主要负责员工名
     */
    @ApiModelProperty("主要负责员工名")
    private String responsibleStaffName;

    /**
     * 任务状态(-1:失败;0:待审核;1:待接受;2:进行中;3:已完成;4:逾期;)
     */
    @ApiModelProperty("任务状态(-1:失败;0:待审核;1:待接受;2:进行中;3:已完成;4:逾期;5:暂停;6:逾期完成;7:接收超时;8:待部署;9:待归档;10:审核不通过)")
    private Integer taskStatus;

    /**
     * 任务项(0:待开发;1:待测试:2:待部署;3:已归档)
     */
    @ApiModelProperty("任务项(0:待开发;1:待测试:2:待部署;3:已归档)")
    private Integer taskItem;

    /**
     * 任务项(0:待开发;1:待测试:2:待部署;3:已归档)
     */
    @StringArrayConvert
    @ApiModelProperty("任务进度(0:开发文档;1:原型涉及;2:UI涉及;3:前端开发;4:后端开发)")
    private String taskProgress;

    /**
     * 主体
     */
    @ApiModelProperty("主体")
    private String subject;

    /**
     * 任务内容
     */
    @ApiModelProperty("任务内容")
    private String taskContent;

    /**
     * 任务评级(0:A;1:B;2:C;3:D;4:E)
     */
    @ApiModelProperty("任务评级(0:A;1:B;2:C;3:D;4:E)")
    private String taskRating;

    /**
     * 个人任务绩点
     */
    @ApiModelProperty("个人任务绩点")
    private Integer gradePoint;

    /**
     * 预期完成日期
     */
    @ApiModelProperty("预期完成日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate expectedCompletionDate;

    /**
     * 任务接收时间
     */
    @ApiModelProperty("任务接收时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime taskReceiptTime;
}
