package com.liquidnet.service.goblin.dto.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 收钱吧订单列表/详情展示 VO
 * 融合：GoblinStoreOrderVo（基础信息）+ GoblinOrderSkuVo（商品信息）+ GoblinSqbOrderVo（收钱吧扩展）
 */
@Data
public class GoblinSqbOrderDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    // ========== 来自 GoblinStoreOrderVo（现有订单体系） ==========

    @ApiModelProperty(value = "本地订单ID")
    private String orderId;

    @ApiModelProperty(value = "订单号")
    private String orderCode;

    @ApiModelProperty(value = "goblin订单状态[0-待付款|2-已付款|5-取消]")
    private Integer status;

    @ApiModelProperty(value = "实付金额")
    private BigDecimal priceActual;

    @ApiModelProperty(value = "创建时间")
    private String createdAt;

    @ApiModelProperty(value = "支付时间")
    private String payTime;

    // ========== 来自 GoblinOrderSkuVo（sku商品信息） ==========

    @ApiModelProperty(value = "商品SPU ID")
    private String spuId;

    @ApiModelProperty(value = "商品名称")
    private String spuName;

    @ApiModelProperty(value = "商品SKU ID")
    private String skuId;

    @ApiModelProperty(value = "款式名称")
    private String skuName;

    @ApiModelProperty(value = "款式图片")
    private String skuImage;

    @ApiModelProperty(value = "购买数量")
    private Integer quantity;

    // ========== 来自 GoblinSqbOrderVo（收钱吧扩展字段） ==========

    @ApiModelProperty(value = "收钱吧订单状态：0-待支付 1-已支付 2-已核销 3-已退款 4-退款中 9-失败")
    private Integer sqbStatus;

    @ApiModelProperty(value = "关联演出ID")
    private String performancesId;

    @ApiModelProperty(value = "收钱吧收单号")
    private String sqbAcquiringSn;

    @ApiModelProperty(value = "券码编号")
    private String couponSn;

    @ApiModelProperty(value = "核销二维码")
    private String couponQrCode;

    @ApiModelProperty(value = "券码过期时间")
    private String couponExpireTime;

    @ApiModelProperty(value = "核销状态：0-未核销 1-已核销")
    private Integer couponUsedStatus;
}
