package com.sonic.lion.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sonic.lion.enums.BizType;
import com.sonic.lion.enums.PayChannel;
import com.sonic.lion.domain.enums.CallChannelStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * t_pay_call_channel_record
 *
 * @author
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("t_pay_call_channel_record")
public class PayCallChannelRecord {

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 交易单号
     */
    private String tradeNo;

    /**
     * 业务类型
     */
    private BizType bizType;

    /**
     * 支付渠道
     */
    private PayChannel channel;

    /**
     * 调用渠道状态
     */
    private CallChannelStatus status;

    /**
     * 是否发生了争议
     */
    private Boolean disputed;

    /**
     * 争议发生时间
     */
    private LocalDateTime disputedTime;

    /**
     * 金额（单位：分）
     */
    private Long amount;

    /**
     * 换汇 货币
     */
    private String exchangeCurrency;

    /**
     * 换汇 原始金额
     */
    private Long exchangeAmount;

    /**
     * 支付渠道返回处理号
     */
    private String batchId;

    /**
     * 交易成功后渠道返回交易号
     */
    private String transactionId;

    /**
     * web支付url
     */
    private String paymentUrl;

    /**
     * 渠道返回交易号
     */
    private String result;

    /**
     * 最后一次查询时间
     */
    private LocalDateTime lastCheckTime;

    /**
     * 下一次查询时间
     */
    private LocalDateTime nextCheckTime;

    /**
     * 查询次数
     */
    private Integer checkNum;

    private LocalDateTime createTime;

    private LocalDateTime editTime;


    private String payerId;

    private String payerName;

    private String payerEmail;


    /**
     * 渠道检查的过期时间
     */
    private LocalDateTime expTime;

}