package com.cool.store.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;

@Table(name = "zxjp_close_store_refund_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class CloseStoreRefundInfoDO {
    /**
     * id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 闭店申请id
     */
    @Column(name = "close_store_id")
    private Long closeStoreId;

    /**
     * 退款申请单号
     */
    @Column(name = "refund_no")
    private String refundNo;

    /**
     * 退款类型(闭店子阶段code)
     */
    private Integer type;

    /**
     * 退款状态
     */
    @Column(name = "refund_status")
    private String refundStatus;

    /**
     * 每刻退款单号
     */
    @Column(name = "refund_order_no")
    private String refundOrderNo;

    /**
     * 退款时间
     */
    @Column(name = "refund_time")
    private Date refundTime;

    /**
     * 公司抬头
     */
    @Column(name = "invoice_title")
    private String invoiceTitle;

    /**
     * 提交人id
     */
    @Column(name = "submitter_id")
    private String submitterId;

    /**
     * 提交人名称
     */
    @Column(name = "submitter_name")
    private String submitterName;

    /**
     * 退款事由
     */
    @Column(name = "refund_reason")
    private String refundReason;

    /**
     * 退款类型，加盟部/加盟公司等
     */
    @Column(name = "refund_type")
    private String refundType;

    /**
     * 退款项目，加盟关店设备退款/加盟关店费用等
     */
    @Column(name = "refund_project")
    private String refundProject;

    /**
     * 其他说明
     */
    private String remark;

    /**
     * 退款加盟商编码
     */
    @Column(name = "business_code")
    private String businessCode;

    /**
     * 退款加盟商名称
     */
    @Column(name = "business_name")
    private String businessName;

    /**
     * 退款加盟商收款账户
     */
    @Column(name = "business_account")
    private String businessAccount;

    /**
     * 费用类型code
     */
    @Column(name = "expense_type_code")
    private String expenseTypeCode;

    /**
     * 费用申请日期
     */
    @Column(name = "expense_apply_time")
    private Date expenseApplyTime;

    /**
     * 应退金额
     */
    @Column(name = "expected_amount")
    private BigDecimal expectedAmount;

    /**
     * 实退金额
     */
    @Column(name = "actual_amount")
    private BigDecimal actualAmount;

    /**
     * 扣款金额
     */
    @Column(name = "deduct_amount")
    private BigDecimal deductAmount;

    /**
     * 扣款原因
     */
    @Column(name = "deduct_reason")
    private String deductReason;

    /**
     * 闭店原因
     */
    @Column(name = "close_reason")
    private Integer closeReason;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 银行账户
     */
    @Column(name = "account_number")
    private String accountNumber;
    
    /**
     * 开户行
     */
    @Column(name = "bank_name")
    private String bankName;

    /**
     * 联行号
     */
    @Column(name = "bank_branch_no")
    private String bankBranchNo;
}