package cn.iocoder.yudao.module.system.controller.admin.biz.vo;

import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInContractReqVO;
import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInExpenseItemReqVo;
import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInExpenseSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.biz.RelativesDO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

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;

/**
 * @Author: jinyd
 * @CreateTime: 2024/9/03  09:00
 * @Description:
 * @Version: 4.0
 */


@Schema(description = "管理后台 - 办理入住详情 Response VO")
@Data
public class CheckInRecordDetailRespVO {

    @Schema(description = "审批状态，1-审批中，2-审批通过，3-审批不通过，4-已撤销，5-系统审批", example = "14680")
    private Integer status;

    @Schema(description = "审批流id", example = "张三")
    private String processInstanceId;



    @Schema(description = "长者主键")
    private String elderId;

    @Schema(description = "年龄")
    private Long elderAge;

    @Schema(description = "性别")
    private Integer elderSex;

    @Schema(description = "身份证")
    private String idCard;

    @Schema(description = "托养人")
    List<RelativesDO> relativesList;

    @Schema(description = "合同信息")
    CheckInContractReqVO elderlyContractDO;

    @Schema(description = "床位id")
    String bedId;

    /**
     * 9- 办理入住
     * BpmBusinessTypeEnum
     */
    private Integer type;


    String contractJson;
    String monthlyExpensesJson;
    String oneTimeExpensesJson;
    String stageExpensesJson;

    @Schema(description = "总金额")
    private BigDecimal totalAmount;

    @Schema(description = "备注")
    private String remark;


    @Schema(description = "月度费项列表")
    private List<CheckInExpenseItemReqVo> monthlyExpenses;


    @Schema(description = "其它费用列表")
    private List<CheckInExpenseItemReqVo> oneTimeExpenses;

    @Schema(description = "阶段费用列表")
    private List<CheckInExpenseItemReqVo> stageExpenses;

    @Schema(description = "入住时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate checkInTime;

    @Schema(description = "入住截止时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate checkInDeadlineTime;

    @Schema(description = "护理级别ID")
    private Long nurseLevelId;

    @Schema(description = "护理级别名称")
    private String nurseLevelName;

    @Schema(description = "是否包房")
    private Integer isPrivateRoom;

    @Schema(description = "特殊护理备注")
    private String specialCareNotes;

    private Integer bpmStatus;

    private Long tenantId;

}
