package cn.stylefeng.workflow.instance.modular.task.pojo;

import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import cn.stylefeng.roses.kernel.rule.annotation.EnumFieldFormat;
import cn.stylefeng.roses.kernel.rule.annotation.SimpleFieldFormat;
import cn.stylefeng.roses.kernel.sys.api.format.OrgNameFormatProcess;
import cn.stylefeng.roses.kernel.sys.api.format.UserAvatarFormatProcess;
import cn.stylefeng.workflow.api.enums.InstanceStatusEnum;
import cn.stylefeng.workflow.api.enums.TaskStatusEnum;
import lombok.Data;

import java.util.Date;

@Data
public class TaskDetailVo {

    @ChineseDescription("流程实例id")
    private Long instanceId;

    @ChineseDescription("流程的标题，一般为流程实例标题或者草稿的标题")
    private String instanceTitle;

    @ChineseDescription("发起人id")
    @SimpleFieldFormat(processClass = UserAvatarFormatProcess.class)
    private Long applicant;

    @ChineseDescription("发起人的组织机构id，以哪个身份发起")
    @SimpleFieldFormat(processClass = OrgNameFormatProcess.class)
    private Long applicantOrgId;

    @ChineseDescription("流程或者草稿的创建时间")
    private Date createTime;

    @ChineseDescription("流程实例状态：10-草稿，20-处理中，30-已完成，40-拒绝，50-挂起，60-作废")
    @EnumFieldFormat(processEnum = InstanceStatusEnum.class)
    private Integer instanceStatus;

    @ChineseDescription("任务状态：10-发起，15-待开始，20-审批中，30-已审批，40-已拒绝，50-已退回，60-已撤回，70-已关闭，80-已转交")
    @EnumFieldFormat(processEnum = TaskStatusEnum.class)
    private Integer taskStatus;

}
