package com.tmerclub.cloud.cuerecycle.model.vo;

import com.tmerclub.cloud.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 回收订单视图对象
 *
 * @author :  frank
 * @create :  2025-04-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CueOrderVO extends BaseVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    private Long orderId;
    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;
    /**
     * 商品ID
     */
    @Schema(description = "商品ID")
    private Long productId;
    /**
     * 商品名称
     */
    @Schema(description = "商品名称")
    private String productName;
    /**
     * 商品图片
     */
    @Schema(description = "商品图片")
    private String productImages;
    /**
     * 价格
     */
    @Schema(description = "价格")
    private Long productPrice;
    /**
     * 用户姓名
     */
    @Schema(description = "用户姓名")
    private String userName;
    /**
     * 用户联系方式
     */
    @Schema(description = "用户联系方式")
    private String userPhone;
    /**
     * 类型：1-回收，2-置换，3-寄售
     */
    @Schema(description = "类型：1-回收，2-置换，3-寄售")
    private Integer cueOrderType;
    /**
     * 订单状态
     */
    @Schema(description = "订单状态")
    private Integer orderStatus;
    /**
     * 瑕疵图片，逗号隔开
     */
    @Schema(description = "瑕疵图片，逗号隔开")
    private String flawImgUrl;
    /**
     * 付款凭证
     */
    @Schema(description = "付款凭证")
    private String evidenceOfPayment;
    /**
     * 备注
     */
    @Schema(description = "备注")
    private String orderRemark;
    /**
     * 预计金额
     */
    @Schema(description = "预计金额")
    private Long estimatedAmount;
    /**
     * 评估金额
     */
    @Schema(description = "评估金额")
    private Long actualAmount;
    /**
     * 代金卷金额
     */
    @Schema(description = "代金卷金额")
    private Long voucherAmount;
    /**
     * 寄售佣金
     */
    private Long brokerage;
    /**
     * 服务费
     */
    private Long serviceCharge;
    /**
     * 是否已支付，1.已支付0.未支付
     */
    @Schema(description = "是否已支付，1.已支付0.未支付")
    private Integer isPayed;
    /**
     * 支付方式：1-余额，2-代金卷
     */
    @Schema(description = "支付方式：1-余额，2-代金卷")
    private Integer payType;
    /**
     * 付款时间
     */
    @Schema(description = "付款时间")
    private Date payTime;
    /**
     * 发货时间
     */
    @Schema(description = "发货时间")
    private Date deliveryTime;
    /**
     * 完成时间
     */
    @Schema(description = "完成时间")
    private Date finallyTime;
    /**
     * 瑕疵项
     */
    @Schema(description = "瑕疵项")
    private List<CueOrderFlawVO> flawList;
    /**
     * 商城订单ID
     */
    @Schema(description = "商城订单ID")
    private Long mallOrderId;

    /**
     * 寄出单号
     */
    private String sendNumber;
    /**
     * 寄出时候选定的仓库id
     */
    private Long warehouseId;
    /**
     * 寄出时候联动出的店铺id
     */
    private Long shopId;

    /**
     * 用户退款地址id
     */
    private Long orderAddrId;
}