package com.cpop.oam.business.vo;

import com.cpop.core.anno.StringArrayConvert;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * Description:
 * date: 2023/5/15 17:30
 *
 * @Author ST
 */
@Data
@Accessors(chain = true)
@Schema(description = "OAM-任务表")
public class PersonTaskPageVo {

    /**
     * 主键
     */
    @Schema(description ="主键")
    private String id;

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

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

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

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

    /**
     * 主体
     */
    @Schema(description ="主体")
    private String subject;

    /**
     * 任务内容
     */
    @Schema(description ="任务内容")
    private String taskContent;

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

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

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

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