package com.sckw.payment.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 电子钱包结算记录（交易订单结算/物流订单结算）
 * @author Aick Spt
 * @date 2023-07-20 14:54
 */
@Getter
@Setter
public class SettlementWalletDto {

    /**
     * 主键
     */
    private Long id;

    /**
     * 企业类型
     */
    private Long entId;

    /**
     * 结算id（交易订单结算/物流订单结算）
     */
    private Long settlementId;

    /**
     * 1-物流 2-交易
     */
    private Integer orderType;

    /**
     * 线上渠道 1-huifu
     */
    private Integer channel;

    /**
     * 回款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    /**
     * 金额
     */
    private BigDecimal payPrice;

    /**
     * 剩余待付金额
     */
    private BigDecimal topayPrice;

    /**
     * 类型（0付款、1退款）
     */
    private Integer type;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态（0扣款、1结算、2异常、）
     */
    private Integer status;

    /**
     * 创建人
     */
    private Long createBy;

    /**
     * 创建人名称
     */
    private String createByText;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新人
     */
    private Long updateBy;

    /**
     * 更新人名称
     */
    private String updateByText;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 是否删除（0未删除，1删除）
     */
    private Integer delFlag;

    // 添加构造函数，getter和setter方法，以及其他业务逻辑方法（根据需要）

    @Override
    public String toString() {
        return "SettlementWalletDto{" +
                "id=" + id +
                ", entId=" + entId +
                ", settlementId=" + settlementId +
                ", orderType=" + orderType +
                ", channel=" + channel +
                ", payTime=" + payTime +
                ", payPrice=" + payPrice +
                ", topayPrice=" + topayPrice +
                ", type=" + type +
                ", remark='" + remark + '\'' +
                ", status=" + status +
                ", createBy=" + createBy +
                ", createTime=" + createTime +
                ", updateBy=" + updateBy +
                ", updateTime=" + updateTime +
                ", delFlag=" + delFlag +
                '}';
    }
}
