package com.ylx.massage.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单支付记录实体类
 */
@Data
@TableName("product_order_payment")
public class ProductOrderPayment implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 订单ID
     */
    @TableField
    private String orderId;

    /**
     * 订单号
     */
    @TableField
    private String orderNo;

    /**
     * 支付流水号
     */
    @TableField(value = "payment_no")
    private String paymentNo;

    /**
     * 第三方支付流水号
     */
    @TableField(value = "third_payment_no")
    private String thirdPaymentNo;

    /**
     * 支付类型 (1-微信支付, 2-余额)
     */
    @TableField(value = "pay_type")
    private Integer payType;

    /**
     * 支付金额 (单位: 分)
     */
    @TableField(value = "pay_amount")
    private BigDecimal payAmount;

    /**
     * 支付状态（0待支付 1支付成功 2支付失败
     */
    @TableField(value = "pay_status")
    private String payStatus;

    /**
     * 支付完成时间
     */
    @TableField(value = "pay_time")
    private LocalDateTime payTime;

    /**
     * 回调通知时间
     */
    @TableField(value = "notify_time")
    private LocalDateTime notifyTime;

    /**
     * 回调通知内容
     */
    @TableField(value = "notify_content")
    private String notifyContent;

    /**
     * 支付过期时间
     */
    @TableField(value = "expire_time")
    private LocalDateTime expireTime;


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

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}