
package com.tmerclub.cloud.order.vo;

import com.tmerclub.cloud.common.order.vo.EsOrderItemVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author tmerclub
 */
@Data
@ToString
@Schema(description = "我的订单-订单项")
public class MyOrderItemVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED)
    private String pic;

    @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String spuName;

    @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long orderId;

    @Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer count;

    @Schema(description = "商品价格", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long price;

    @Schema(description = "产品购买花费积分", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long useScore;

    @Schema(description = "skuId", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long skuId;

    @Schema(description = "skuName", requiredMode = Schema.RequiredMode.REQUIRED)
    private String skuName;

    @Schema(description = "订单项id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long orderItemId;

    @Schema(description = "商品id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long spuId;

    @Schema(description = "评论状态： 0 未评价  1 已评价", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer isComm;

    @Schema(description = "评论时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private Date commTime;

    @Schema(description = "退款状态 1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭")
    private Integer returnMoneySts;

    @Schema(description = "订单项退款状态（1:申请退款 2:退款成功 3:部分退款成功 4:退款失败）")
    private Integer refundStatus;

    @Schema(description = "退款单类型（1:整单退款,2:单个物品退款）")
    private Integer refundType;

    @Schema(description = "赠品列表")
    private List<MyOrderItemVO> giveawayList;

    @Schema(description = "订单类型1团购订单 2秒杀订单 3积分订单")
    private Integer orderType;

    @Schema(description = "主商品关联退款赠品id")
    private String returnGiveawayIds;

    /**
     * 活动id
     */
    private Long activityId;

    /**
     * 活动类型 OrderActivityType
     */
    private Integer activityType;
    @Schema(description = "组合商品列表")
    private List<MyOrderItemVO> comboList;

}
