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

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-05
 */
@Data
@Accessors(chain = true)
public class PaymentRecDetailAccountResult {

    /** ID */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /** 先前支付明细id */
    private Long predecessorId;

    /** 付款id */
    private Long reconciliationId;

    /** 付款类型 */
    private Integer targetEnum;// 暂时没用

    /** 账户 */
    private Long accountId;

    /** 账户类型 */
    private String accountCode;

    /** 支付类型 */
    private Integer payEnum;

    /** 支付类型等级 */
    private Integer payLevelEnum;

    /** 金额 */
    private BigDecimal amount;

    /** 找零 */
    private BigDecimal returnAmount;

    /** 交款 */
    private BigDecimal chargeAmount;

    /** 支付平台返回交易号 医保批次号 */
    private String payTransNo;

    /** 支付平台返回交易信息 医保结算ID */
    private String payTransText;

    /** 支付平台返回交易时间 */
    private Date payTransDate;

    /** 支付平台账前余额 */
    private BigDecimal beforeBalance;

    /** 支付平台账后余额 */
    private BigDecimal afterBalance;

    /** 单笔交易结果 */
    private Integer resultEnum;

    /** 状态枚举 */
    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;
}
