package com.haha.entity;

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 java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@TableName("t_order")
public class Order implements Serializable {

    private static final long serialVersionUID = 1L;

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

    private String orderNo;

    private String outTradeNo;

    private String activityId;

    private Long userId;

    private String deviceId;

    private BigDecimal totalAmount;

    private String payStatus;

    /** 支付方式 */
    private String payType;

    /** 支付渠道（wechat/alipay/alipay_credit/balance） */
    private String payChannel;

    /** 第三方支付平台交易号 */
    private String transactionId;

    private String videoUrl;

    private BigDecimal confidence;

    private String items;

    private LocalDateTime createTime;

    private LocalDateTime payTime;

    /** 退款状态 */
    private String refundStatus;

    /** 退款金额 */
    private BigDecimal refundAmount;

    /** 退款时间 */
    private LocalDateTime refundTime;

    /** 退款原因 */
    private String refundReason;

    /** 支付分服务订单号（微信侧） */
    private String payScoreOrderId;

    /** 支付分订单状态: CREATED/DOING/USER_PAYING/DONE */
    private String payScoreState;

    /** 支付分服务ID */
    private String serviceId;

    /** 服务开始时间 */
    private LocalDateTime serviceStartTime;

    /** 服务结束时间 */
    private LocalDateTime serviceEndTime;

    private Integer status;

    @TableField(exist = false)
    private String statusLabel;

    @TableField(exist = false)
    private String payStatusLabel;

    @TableField(exist = false)
    private String userName;

    @TableField(exist = false)
    private String phone;

    @TableField(exist = false)
    private String deviceName;

    @TableField(exist = false)
    private String storeName;

    @TableField(exist = false)
    private String shopName;

    @TableField(exist = false)
    private Long shopId;
}
