package com.seer.teach.pay.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.seer.teach.common.entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 财务对账主表
 * </p>
 *
 * @author ZS
 * @since 2025-09-29
 */
@Getter
@Setter
@ToString
@TableName("pay_financial_reconciliation")
public class PayFinancialReconciliationEntity extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 对账单号
     */
    @TableField("reconciliation_no")
    private String reconciliationNo;

    /**
     * 对账类型：1-佣金对账，2-提现对账，3-全量对账（佣金+提现）
     */
    @TableField("reconciliation_type")
    private Byte reconciliationType;

    /**
     * 对账周期
     */
    @TableField("reconciliation_cycle")
    private String reconciliationCycle;

    /**
     * 对账开始时间
     */
    @TableField("start_time")
    private LocalDateTime startTime;

    /**
     * 对账结束时间
     */
    @TableField("end_time")
    private LocalDateTime endTime;

    /**
     * 对账状态：0-待对账，1-对账中，2-对账完成（无差异），3-对账差异
     */
    @TableField("reconciliation_status")
    private Byte reconciliationStatus;

    /**
     * 对账人ID（关联user表，财务用户ID）
     */
    @TableField("reconciliation_user_id")
    private Long reconciliationUserId;

    /**
     * 对账完成时间
     */
    @TableField("reconciliation_time")
    private LocalDateTime reconciliationTime;

    /**
     * 平台记录总金额（元：佣金/提现的平台统计总和）
     */
    @TableField("total_platform_amount")
    private BigDecimal totalPlatformAmount;

    /**
     * 第三方记录总金额（元：银行流水/支付平台统计总和）
     */
    @TableField("total_third_amount")
    private BigDecimal totalThirdAmount;

    /**
     * 差异金额（元）= total_platform_amount - total_third_amount
     */
    @TableField("difference_amount")
    private BigDecimal differenceAmount;

    /**
     * 差异说明（reconciliation_status=3时填写，如“9月25日银行漏记1笔500元转账”）
     */
    @TableField("difference_remark")
    private String differenceRemark;
}
