package org.dromara.pay.domain.vo;

import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.pay.domain.PayOrder;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 支付订单视图对象 pay_order
 *
 * @author pengles
 */
@Data
@AutoMapper(target = PayOrder.class)
public class PayOrderVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 订单ID
     */
    private Long id;

    /**
     * 应用ID
     */
    private Long appId;

    /**
     * 渠道ID
     */
    private Long channelId;

    /**
     * 渠道编码
     */
    private String channelCode;

    /**
     * 商户订单编号
     */
    private String merchantOrderId;

    /**
     * 商品标题
     */
    private String subject;

    /**
     * 商品描述
     */
    private String body;

    /**
     * 异步通知地址
     */
    private String notifyUrl;

    /**
     * 支付金额(分)
     */
    private Integer price;

    /**
     * 渠道费率
     */
    private Double channelFeeRate;

    /**
     * 渠道手续费(分)
     */
    private Integer channelFeePrice;

    /**
     * 状态(0未支付 10已支付 20已退款 30已关闭)
     */
    private Integer status;

    /**
     * 用户IP
     */
    private String userIp;

    /**
     * 订单失效时间
     */
    private Date expireTime;

    /**
     * 支付成功时间
     */
    private Date successTime;

    /**
     * 拓展业务ID (如扫码支付的记录ID)
     */
    private Long extensionId;

    /**
     * 支付单号(内部生成)
     */
    private String no;

    /**
     * 渠道订单号(微信/支付宝)
     */
    private String channelOrderNo;

    /**
     * 渠道用户OpenId
     */
    private String channelUserId;

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

    /**
     * 更新时间
     */
    private Date updateTime;
}
