package com.jeequan.jeepay.db.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 设备数据统计表
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2022-12-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_stats_device")
public class StatsDevice implements Serializable {

    public static final LambdaQueryWrapper<StatsDevice> gw(){
        return new LambdaQueryWrapper<>();
    }

    private static final long serialVersionUID=1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 统计日期
     */
    private Date statsDate;

    /**
     * 设备类型，参考t_pay_order
     */
    private String deviceType;

    /**
     * 设备号
     */
    private String deviceNo;

    /**
     * 设备厂商：参考配置表
     */
    private String provider;

    /**
     * 门店ID
     */
    private String storeId;

    /**
     * 商户号
     */
    private String mchNo;

    /**
     * 服务商号
     */
    private String agentNo;

    /**
     * 服务商号
     */
    private String isvNo;

    /**
     * 订单总笔数
     */
    private Long totalCount;

    /**
     * 订单总金额，单位分
     */
    private Long totalAmount;

    /**
     * 成交订单笔数，含退款
     */
    private Long successCount;

    /**
     * 成交订单金额，单位分，含退款金额和手续费
     */
    private Long successAmount;

    /**
     * 商户手续费，单位分
     */
    private Long fee;

    /**
     * 实收金额，单位分，成交订单金额减去手续费
     */
    private Long realAmount;

    /**
     * 退款总笔数，一笔订单多次退款，则计多次
     */
    private Long refundCount;

    /**
     * 退款金额，单位分
     */
    private Long refundAmount;

    /**
     * 交易成功率，成交订单笔数/订单总笔数
     */
    private String successRate;

    /**
     * 状态，1-完成  0-异常
     */
    private Byte state;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 更新时间
     */
    private Date updatedAt;


    /**
     * 实付金额
     */
    private Long finalAmt;

    /**
     * 垫资手续费
     */
    private Long cashFee;

}
