/*
 * Copyright ©2023 CJB-CNIT Team. All rights reserved
 */
package com.openhis.administration.dto;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 挂号和账户的集合实体
 *
 * @author SunJQ
 * @date 2025-08-04
 */
@Data
@Accessors(chain = true)
public class EncounterAccountDto {
    /** ID */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /** 状态枚举 */
    private Integer statusEnum;

    /** 结账状态枚举 */
    private Integer billingStatusEnum;

    // 2025.04.10 经确认此处原有的【1 CASH 个人现金账户 | 2 医保账户】改为【01医保电子凭证 | 02 居民身份证 | 03 社会保障卡 | 04 个人现金账户】
    /** 账户类型编码 */
    private String typeCode;

    /** 编码 */
    private String no;

    /** 名称 */
    private String name;

    /** 患者id */
    private Long patientId;

    /** 就诊id */
    private Long encounterId;

    /** 账户余额 */
    private BigDecimal balanceAmount;

    /** 医保区域编码 */
    private String ybAreaNo;

    /** 合同编码 */
    private String contractNo;

    /** 欠费限制额度 */
    private BigDecimal limitAccount;

    /** 是否为就诊登记使用 */
    private Integer encounterFlag;

    /**
     * 群组ID
     */
    private Long groupId;

    /**
     * 就诊编码
     */
    private String busNo;

    /**
     * 类别编码
     */
    private Integer classEnum;

    /**
     * 类别医保编码
     */
    private Integer ybClassEnum;

    /**
     * 类别医保文本
     */
    private String ybClassText;

    /**
     * 类别编码补充
     */
    private String classJson;

    /**
     * 优先级编码
     */
    private Integer priorityEnum;

    /**
     * 分类编码
     */
    private Integer typeEnum;

    /**
     * 服务ID
     */
    private Long serviceTypeId;

    /**
     * 就诊对象状态
     */
    private Integer subjectStatusEnum;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 接诊时间
     */
    private Date receptionTime;

    /**
     * 机构id
     */
    private Long organizationId;

    /**
     * 就诊序号
     */
    private Integer displayOrder;

    /**
     * 初复诊
     */
    private Integer firstEnum;

    /**
     * 入院类型
     */
    private String admitSourceCode;

    /**
     * 入院方式
     */
    private String inWayCode;

    /**
     * 门诊就诊id
     */
    private Long ambEncounterId;

    /**
     * 登记员id
     */
    private Long registrarId;
}
