package cn.iocoder.yudao.module.bpm.controller.admin.business.vo;

import cn.iocoder.yudao.module.bpm.enums.BpmBusinessTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

@Schema(description = "管理后台 - 轮候入住发起 Request VO")
@Data
public class BpmCheckInWaitCreateReqVO {

    @Schema(description = "主键ID")
    private Long id;

    @Schema(description = "长者姓名", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "长者姓名不能为空")
    private String elderName;

    @Schema(description = "身份证")
    @NotBlank(message = "身份证不能为空")
    private String idCard;

    @Schema(description = "院区ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "院区不能为空")
    private Long tenantId;

    @Schema(description = "近期生活状态视频", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "近期生活状态不能为空")
    private String recentLivingSituation;

    @Schema(description = "行走情况视频", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "行走情况视频不能为空")
    private String walkSituationVideo;

    @Schema(description = "半年内病历", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "半年内病历不能为空")
    private String medicalRecordsWithinSixMonth;

    @Schema(description = "身份证正反面", requiredMode = Schema.RequiredMode.REQUIRED)
    private String idCardPhoto;

    @Schema(description = "近期出院小结")
    private String recentDischargeSummary;

    @Schema(description = "常用药")
    private String commonMedicine;

    @Schema(description = "申请类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    @NotNull(message = "申请类型不能为空")
    private Integer type = BpmBusinessTypeEnum.CHECK_IN_WAIT.getValue();

    @Schema(description = "业务ID")
    private Long businessId;

    @Schema(description = "业务ID2")
    private Long businessId2;

    @Schema(description = "流程实例编号")
    private String processInstanceId;

    @Schema(description = "发起人自选审批人")
    private Map<String, List<Long>> startUserSelectAssignees;

    @Schema(description = "提交备注")
    private String commitRemark;
}
