package cn.iocoder.yudao.module.system.dal.dataobject.biz;

import lombok.*;

import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.*;

/**
 * 长者账单 DO
 *
 * @author 系统管理员
 */
@TableName("elderly_expense_order")
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ExpenseOrderDO {

    /**
     * 账单ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 长者ID
     */
    private Long elderId;
    /**
     * 账单编号
     */
    private String billOrderNumber;
    /**
     * 支付方式
     */
    private String payType;
    /**
     * 支付状态，0：未缴费 1：已缴费 2.部分缴费
     */
    private Integer payStatus;
    /**
     * 支付时间
     */
    private Date payTime;
    /**
     * 实际支付金额(总额)
     */
    private BigDecimal payableAmount;
    /**
     * 应收金额(总额)
     */
    private BigDecimal actualAmount;
    /**
     * 推送状态，0：未推送 1：已推送
     */
    private Integer pushStatus;
    /**
     * 账单月
     */
    private String billingMonth;
    /**
     * 创建时间
     */
    private Date createdTime;
    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 收款人
     */
    private String payeeName;
    /**
     * 账单类型，1：入院账单 2：月度账单 3：试住账单 4：零星账单
     */
    private Integer type;
    /**
     * 欠费备注
     */
    private String arrearsNote;
    /**
     * 医保金额
     */
    private BigDecimal insuranceAmount;
    /**
     * 发票号
     */
    private String invoiceNumber;
    /**
     * 变更状态，0-未变化，1-有变化
     */
    private Integer changeStatus;

    private Long tenantId;

    private Integer orgType;


    private BigDecimal refundAmount;

    private Long refundSettlementOrderId;
    /**
     * 账单确认状态，0.未确认 1.已确认
     */
    private Boolean confirmStatus;

    /**
     * 账单是否显示，0.不显示 1.显示
     */
    private Boolean isShow;
    /**
     * 账单推送金蝶应收单状态，0.未推送 1.已推送
     */
    private Boolean isPushKingdee;
    /**
     * 账单推送金蝶付款单状态，0.未推送 1.已推送
     */
    private Boolean isPushKingdeeReceiveBill;
    /**
     * 账单锁定状态，0.未锁定 1.已锁定
     */
    private Boolean isLock;
    /**
     * 床位费
     */
    @TableField(exist = false)
    private BigDecimal bedAmount;

    /**
     * 护理费
     */
    @TableField(exist = false)
    private BigDecimal nurseAmount;

    /**
     * 膳食费
     */
    @TableField(exist = false)
    private BigDecimal mealAmount;

    /**
     * 其他费用
     */
    @TableField(exist = false)
    private BigDecimal otherAmount;

    /**
     * 其他费用（四舍五入）
     */
    @TableField(exist = false)
    private BigDecimal otherRoundAmount;

    /**
     * 已缴费金额
     */
    @TableField(exist = false)
    private BigDecimal paidAmount;

//    /**
//     * 缴费总额
//     */
//    @TableField(exist = false)
//    private BigDecimal totalAmount;
//    /**
//     * 欠费总额
//     */
//    @TableField(exist = false)
//    private BigDecimal arrearsFeesAmount;

    @TableField(exist = false)
    private String elderName;

    @TableField(exist = false)
    private String bedName;

    @TableField(exist = false)
    private String tenantName;
}