package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 流程实例的 Response VO")
@Data
public class BpmElderlyInfoVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private String id;

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long messageId;

    @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "标题")
    private String templateContent;

    @Schema(description = "审批人员类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "院长审批")
    private String userBpmContent;

    @Schema(description = "已读状态，0-未完成，1-已完成", requiredMode = Schema.RequiredMode.REQUIRED, example = "标题")
    private Integer readStatus;

    @Schema(description = "完成状态，0-未完成，1-已完成", requiredMode = Schema.RequiredMode.REQUIRED, example = "标题")
    private Integer completedStatus;

    @Schema(description = "0-代办，1-待阅，2-抄送", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer notifyType;

    @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private String processInstanceId;

    @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private String processDefinitionId;

    @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private String taskId;

    @Schema(description = "审批状态，1-审批中，2-审批通过，3-审批不通过，4-已取消，5-系统审批", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Integer status;

    @Schema(description = "审批类型，", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Integer type;

    @Schema(description = "变更日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate changeDate;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTime;

    @Schema(description = "是否当前最新，0-是，1-否", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Integer currentFlag;


    @Schema(description = "发起人昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private String startNickname;

    @Schema(description = "所属组织", example = "1024")
    private String tenantName;

    @Schema(description = "申请类型", example = "1024")
    private String instanceName;

    private String elderName;

    private String gotoUrl;

    private Integer  businessSubType;

    private String  buginessName;

}
