
package com.tmerclub.cloud.order.vo;

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

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

/**
 * 我的订单
 *
 * @author tmerclub
 */
@Schema(description = "我的订单")
public class MyOrderVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "订单项", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<MyOrderItemVO> orderItems;

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

    @Schema(description = "总价", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long actualTotal;

    @Schema(description = "使用积分", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long orderScore;

    @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer status;

    @Schema(description = "订单类型(0普通订单 1团购订单 2秒杀订单)", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer orderType;

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

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

    @Schema(description = "配送类型 1:快递 2:自提 3：无需快递", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer deliveryType;

    @Schema(description = "店铺名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String shopName;

    @Schema(description = "店铺id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long shopId;

    @Schema(description = "订单运费", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long freightAmount;

    @Schema(description = "订单创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private Date createTime;

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

    @Schema(description = "用户备注信息")
    private String remarks;

    @Schema(description = "自提点id")
    private Long stationId;

    public Long getStationId() {
        return stationId;
    }

    public void setStationId(Long stationId) {
        this.stationId = stationId;
    }

    public List<MyOrderItemVO> getOrderItems() {
        return orderItems;
    }

    public void setOrderItems(List<MyOrderItemVO> orderItems) {
        this.orderItems = orderItems;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getActualTotal() {
        return actualTotal;
    }

    public void setActualTotal(Long actualTotal) {
        this.actualTotal = actualTotal;
    }

    public Long getOrderScore() {
        return orderScore;
    }

    public void setOrderScore(Long orderScore) {
        this.orderScore = orderScore;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Integer getRefundType() {
        return refundType;
    }

    public void setRefundType(Integer refundType) {
        this.refundType = refundType;
    }

    public Integer getReturnMoneySts() {
        return returnMoneySts;
    }

    public void setReturnMoneySts(Integer returnMoneySts) {
        this.returnMoneySts = returnMoneySts;
    }


    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getFreightAmount() {
        return freightAmount;
    }

    public void setFreightAmount(Long freightAmount) {
        this.freightAmount = freightAmount;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public Integer getDeliveryType() {
        return deliveryType;
    }

    public void setDeliveryType(Integer deliveryType) {
        this.deliveryType = deliveryType;
    }

    public Integer getAllCount() {
        return allCount;
    }

    public void setAllCount(Integer allCount) {
        this.allCount = allCount;
    }

    @Override
    public String toString() {
        return "MyOrderVO{" +
                "orderItems=" + orderItems +
                ", orderId=" + orderId +
                ", actualTotal=" + actualTotal +
                ", orderScore=" + orderScore +
                ", status=" + status +
                ", orderType=" + orderType +
                ", refundType=" + refundType +
                ", returnMoneySts=" + returnMoneySts +
                ", deliveryType=" + deliveryType +
                ", shopName='" + shopName + '\'' +
                ", shopId=" + shopId +
                ", freightAmount=" + freightAmount +
                ", createTime=" + createTime +
                ", allCount=" + allCount +
                ", remarks='" + remarks + '\'' +
                ", stationId=" + stationId +
                '}';
    }
}
