# CbCase.java

    package cloud.wconnect.finance.entity.chargeback;

    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import lombok.Data;
    import lombok.EqualsAndHashCode;
    import lombok.experimental.Accessors;

    import java.io.Serializable;
    import java.math.BigDecimal;

    /**
     * <p>
     *
     * </p>
     *
     * @author yyt
     * @since 2023-08-22
     */
    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @TableName("cb_case")
    public class CbCase implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 主键id
         */
        @TableId(value = "id", type = IdType.AUTO)
        private Long id;

        /**
         * 资产 id
         */
        private Integer propertyId;

        /**
         * Case编号
         */
        private String caseNumber;

        /**
         * 银行平台(1:BA,2:AX,3:HL,4:DS,5:FUB,6:Shift4)
         */
        private Integer vendor;

        /**
         * 信用卡类型
         */
        private String cardType;

        /**
         * 开始日期
         */
        private Long issueDate;

        /**
         * 到期日期
         */
        private Long dueDate;

        /**
         * Case次序
         */
        private Integer orderNumber;

        /**
         * 客人的名
         */
        private String guestFirstName;

        /**
         * 客人的姓
         */
        private String guestLastName;

        /**
         * Folio编号
         */
        private String folioNumber;

        /**
         * 信用卡号
         */
        private String cardNumber;

        /**
         * 信用卡号末4位
         */
        private String cardNumberEnd;

        /**
         * 交易日期
         */
        private Long trxDate;

        /**
         * 交易金额
         */
        private BigDecimal trxAmount;

        /**
         * 纠纷金额
         */
        private BigDecimal disputeAmount;

        /**
         * 原因
         */
        private String reason;

        /**
         * 真实原因(当选择原因是other时，other:开头拼接手填原因）
         */
        private String actualReason;

        /**
         * Market Segment
         */
        private String marketSegment;

        /**
         * 附件集合
         */
        private String attachments;

        /**
         * Case状态(1:Draft，2:New Case，3:Ignored，4:Accept，5:Dispute，6:Processed，7:Win，8:Loss，9:Forzen，12:Close)
         */
        private Integer status;

        /**
         * Action选择(0:无，1:Accept，2:Dispute)
         */
        private Integer action;

        /**
         * 结果(1:Win，2:Loss，3:Frozen，4:Processed)
         */
        private Integer result;

        /**
         * Bank Received/Write-off Date
         */
        private Long resultFinalDate;

        /**
         * 创建人id
         */
        private Integer createdBy;

        /**
         * 创建时间
         */
        private Long createdTime;

        /**
         * 最近更新人id
         */
        private Integer updatedBy;

        /**
         * 最近更新时间
         */
        private Long updatedTime;

        /**
         * 当前状态变更人
         */
        private Integer statusSetBy;

        /**
         * 当前状态变更时间
         */
        private Long statusSetTime;

        /**
         * Case 变为 hotel operation 阶段的操作人 id
         */
        private Integer hotelOperationBy;

        /**
         * Case 变为 hotel operation 阶段的时间
         */
        private Long hotelOperationTime;

        /**
         * Case 变为 patch 阶段的操作人id
         */
        private Integer patchBy;

        /**
         * Case 变为 patch 阶段的时间
         */
        private Long patchTime;

        /**
         * 纠纷金额明细([{"amount":150,"trxCode":"1212","trxCodePms":"1212","trxDesc":"ddd","trxDescPms":"ddd"}])
         */
        private String disputeAmountItems;

        /**
         * [{\"name\":xx,\"room\":xxx},...]
         */
        private String moreGuests;

        /**
         * 房间号
         */
        private String roomNumber;

        /**
         * 入住日期
         */
        private Long checkInDate;

        /**
         * 退房日期
         */
        private Long checkOutDate;

        /**
         * 备注
         */
        private String comment;

        /**
         * 银行有无退款(0:否,1:是)
         */
        private Boolean nonChargeback;

        /**
         * Reply by 日期
         */
        private Long replyBy;

        /**
         * 补填Adj的 Reply by 日期
         */
        private Long adjReplyBy;

        /**
         * 财务是否处理过  0:否  1是
         */
        private Boolean handleCase;

        /**
         * Chargeback Type
         */
        private String chargeBackType;

        /**
         * Card Present
         */
        private String cardPresent;

        /**
         * Auth Code
         */
        private String authCode;

        /**
         * 阶段 1:init，2:hotel operation，3:overdue，4:portal，5:patch，6:final
         */
        private Integer stage;

        /**
         * 审批层级
         */
        private Long levelId;

        /**
         * 审批 批次 id
         */
        private Long batchId;

        /**
         * 审批状态 1：pending 待送审 2:Approving 审核中 3: Approved 审核结束 4:rejected 审核驳回
         */
        private Integer approveStatus;

        /**
         * 是否有 overdue 阶段（true：有，false：无）
         */
        private Boolean hasOverdue;

        /**
         * 是否有 hotel operation 阶段（true：有，false：无）
         */
        private Boolean hasHotelOperations;

        /**
         * 手机号
         */
        private String phone;

        /**
         * 地址
         */
        private String address;

        /**
         * 会员卡号
         */
        private String memberCardNum;

        /**
         * 邮箱
         */
        private String email;

        /**
         * pms 交易日期
         */
        private Long pmsTrxDate;

        /**
         * 检查 case 唯一字符串
         *
         * @return 唯一字符串
         * @author yyt
         * @date 2024/2/19
         **/
        public String getUniqueStr() {
            return this.caseNumber + "&" + this.issueDate;
        }

    }