package com.jeesharp.business.modules.member.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * IAP VIP 订单响应
 *
 * @author jeesharp
 */
@Data
@Schema(description = "IAP VIP订单")
public class VipIapOrderVO {

    @Schema(description = "订单主键")
    private String id;

    @Schema(description = "业务订单号")
    private String orderNo;

    @Schema(description = "会员ID（管理端列表/详情返回）")
    private String memberId;

    @Schema(description = "会员编号")
    private String memberNo;

    @Schema(description = "会员昵称")
    private String nickname;

    @Schema(description = "手机号")
    private String mobile;

    @Schema(description = "付费等级编码")
    private String levelCode;

    @Schema(description = "华为订单号 purchaseOrderId（管理端详情）")
    private String huaweiPurchaseOrderId;

    @Schema(description = "套餐：0-月卡 1-季卡 2-年卡")
    private Integer planId;

    @Schema(description = "华为商品ID")
    private String skuProductId;

    @Schema(description = "套餐名称")
    private String skuName;

    @Schema(description = "订单金额（元），按套餐定价展示，与收银台一致")
    private BigDecimal payAmount;

    @Schema(description = "下单时间（订单创建时间）")
    private LocalDateTime createDate;

    @Schema(description = "支付状态值")
    private Integer payStatus;

    @Schema(description = "支付状态说明")
    private String payStatusName;

    @Schema(description = "发货状态值")
    private Integer fulfillStatus;

    @Schema(description = "发货状态说明")
    private String fulfillStatusName;

    @Schema(description = "退款状态值")
    private Integer refundStatus;

    @Schema(description = "退款状态说明")
    private String refundStatusName;

    @Schema(description = "支付确认时间")
    private LocalDateTime payTime;

    @Schema(description = "发货完成时间")
    private LocalDateTime fulfillTime;

    @Schema(description = "关联会员VIP记录ID")
    private String memberVipId;
}
