package com.sckw.payment.model;

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 lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

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

/**
 * 电子钱包结算记录（交易订单结算/物流订单结算）
 *
 * @author xucaiqin
 * @date 2023-07-10 16:42:20
 */
@Getter
@Setter
@Data
@ToString
@TableName(value = "kwp_settlement_wallet")
public class KwpSettlementWallet {

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

    /**
     * 企业类型
     */
    @TableField(value = "ent_id")
    private Long entId;
    /**
     * 中台流水号 清分单号
     */
    @TableField(value = "order_no")
    private String orderNo;

    /**
     * 结算id（交易订单结算/物流订单结算）
     */
    @TableField(value = "settlement_id")
    private Long settlementId;

    /**
     * 1-物流 2-交易
     */
    @TableField(value = "order_type")
    private Integer orderType;

    /**
     * 线上渠道 1-huifu
     */
    @TableField(value = "channel")
    private String channel;

    /**
     * 回款时间
     */
    @TableField(value = "pay_time")
    private LocalDateTime payTime;

    /**
     * 金额
     */
    @TableField(value = "pay_price")
    private BigDecimal payPrice;

    /**
     * 剩余待付金额
     */
    @TableField(value = "topay_price")
    private BigDecimal topayPrice;

    /**
     * 类型（1预付款、2货到付款）
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 状态（1正常 、2异常）
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 创建人
     */
    @TableField(value = "create_by")
    private Long createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @TableField(value = "update_by")
    private Long updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除（0未删除，1删除）
     */
    @TableField(value = "del_flag")
    private Integer delFlag;

}