package com.ruoyi.common.pay.tm.vo;

import com.ruoyi.common.pay.tm.enums.TmPayStatus;
import lombok.Data;

@Data
public class TmTradeInfo {

    /**
     * 太米系统流水Id
     */
    private Integer id;

    /**
     * 第三方内部流水号
     */
    private String outTradeId;

    /**
     * 微信或支付宝或银联的订单号。个别支付渠道可能无此参数
     */
    private String transactionId;

    /**
     * 太米商户订单号
     */
    private String orderNum;

    /**
     * 支付凭证条码，个别支付渠道可能返回空
     */
    private String barCode;

    /**
     * 模块：pay：收银；mall：优选卡券货架；recharge：充值；
     * become_member：会员购买；eatIn：店内下单；
     * takeOut：外送订单；selfTake：预约自取；
     * payment_card：付费卡券；times_card：次/月卡
     */
    private String module;

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

    /**
     * 品牌Id
     */
    private Integer merchantId;

    /**
     * 门店Id
     */
    private Integer shopId;

    /**
     * 门店员工id
     */
    private Integer merchantUserId;

    /**
     * 款台码Id
     */
    private Integer codeId;

    /**
     * 会员Id
     */
    private Integer memberInfoId;

    /**
     * 交班记录id
     */
    private Integer workRecordId;

    /**
     * 订单来源：wx：微信收款码；alipay：支付宝收款码；
     * web：Web页面；mini：小程序；pos：POS机；
     * pc：PC；desktop：台式消费机；api：开放平台接口
     */
    private String fromType;

    /**
     * 订单总额，单位分
     */
    private Integer orderAmount;

    /**
     * 会员优惠，单位分
     */
    private Integer memberCoupon;

    /**
     * 活动优惠，单位分
     */
    private Integer activityCoupon;

    /**
     * 卡券优惠，单位分
     */
    private Integer cardCoupon;

    /**
     * 积分抵扣，单位分
     */
    private Integer pointDeduction;

    /**
     * 实收金额，单位分
     */
    private Integer incomeAmount;

    /**
     * 支付方式：wx_pay：微信支付；ali_pay：支付宝；
     * union_offline：银行卡；union_qrcode：银联扫码；
     * union_online：银联钱包；member_wallet：会员钱包；cash：现金
     */
    private String payType;

    /**
     * 1、已支付 0、未支付
     */
    private Integer isPaid;

    /**
     * 支付状态：
     * SUCCESS：支付成功；NOTPAY：未支付；CLOSE：已关闭；
     * REVOKED：已撤销；USERPAYING：用户支付中；
     * PAYERROR：支付失败；REFUND：转入退款；
     * OPERATE_SUCCESS：预授权请求操作成功、OPERATE_FAIL：预授权请求操作失败；
     * OPERATE_SETTLING：押金消费已受理；
     * REVOKED_SUCCESS：预授权请求撤销成功
     */
    private TmPayStatus payStatus;

    /**
     * 支付时间
     */
    private String payTime;

    /**
     * 支付失败原因
     */
    private String payError;

    /**
     * 退款状态：0表示未退款，1表示转入退款
     */
    private Integer refundStatus;

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

    /**
     * 终端sn号
     */
    private String sn;

    /**
     * 应结订单金额（微信代金券用）
     */
    private String settlementTotalFee;

    /**
     * 0 : 普通订单 1：刷脸设备刷脸支付 2 : 刷脸设备扫码支付 3 : 刷脸设备会员钱包支付
     */
    private String isFromFacePay;

    /**
     * 总代金券金额（微信代金券用）
     */
    private String couponFee;

    /**
     * 创建时间
     */
    private String createTime;
}
