package com.kxs.product.api.vo.kxsapp.shop;


import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 订单详情vo
 *
 * @author 系统
 * @date 2023-12-20 10:09:36
 */
@Data
@Schema(description = "订单详情返回实体")
public class ShopOrderDetailVO implements Serializable {

	@Serial
	private static final long serialVersionUID = 1L;



    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    @TableId(type = IdType.AUTO)
    private Integer id;


    /**
     * 新增时间
     */
    @TableField(fill = FieldFill.INSERT)
    @Schema(description = "新增时间")
    private LocalDateTime createTime;

    /**
     * 订单号
     */
    @Schema(description = "订单号")
    private String orderSn;


    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;


    /**
     * 提货方式 0自提 1邮寄
     */
    @Schema(description = "提货方式 0自提 1邮寄")
    private Integer getMode;


    /**
     * 支付渠道 0余额 1支付宝 2微信 3盟主储蓄金
     */
    @Schema(description = "支付渠道 0余额 1支付宝 2微信 3盟主储蓄金")
    private Integer payType;


    /**
     * 支付时间
     */
    @Schema(description = "支付时间")
    private LocalDateTime payTime;


    /**
     * 发货时间
     */
    @Schema(description = "发货时间")
    private LocalDateTime sendTime;


    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;


    /**
     * 收货人
     */
    @Schema(description = "收货人")
    private String consignee;


    /**
     * 收货电话
     */
    @Schema(description = "收货电话")
    private String phone;


    /**
     * 收货地址
     */
    @Schema(description = "收货地址")
    private String address;


    /**
     * 快递单号
     */
    @Schema(description = "快递单号")
    private String erpSn;


    /**
     * 快递公司
     */
    @Schema(description = "快递公司")
    private String erpName;


    /**
     * 状态 0未支付 1已支付 2已发货 3已完成 4已取消
     */
    @Schema(description = "状态 0未支付 1已支付 2已发货 3已完成 4已取消")
    private Integer status;


    /**
     * 退款状态 0未申请 1已申请 2申请通过 3申请驳回
     */
    @Schema(description = "退款状态 0未申请 1已申请 2申请通过 3申请驳回")
    private Integer returnStatus;

    /**
     * 操作人
     */
    @Schema(description = "操作人")
    private String updateBy;

    /**
     * 退货原因
     */
    @Schema(description = "退货原因")
    private String returnReason;


    /**
     * 申请退款时间
     */
    @Schema(description = "申请退款时间")
    private LocalDateTime returnTime;


    /**
     * 退款金额
     */
    @Schema(description = "退款金额")
    private BigDecimal returnPrice;


    /**
     * 订单金额
     */
    @Schema(description = "订单金额")
    private BigDecimal totalPrice;


    /**
     * 支付金额
     */
    @Schema(description = "支付金额")
    private BigDecimal payPrice;


    /**
     * 交易流水号
     */
    @Schema(description = "交易流水号")
    private String tradeNo;


    /**
     * 自提仓库ID
     */
    @Schema(description = "自提仓库ID")
    private Integer warehouseId;


    /**
     * 订单类型 0商城订单 1分仓额度 2小分仓额度 3小盟主订单 4大盟主订单
     */
    @Schema(description = "订单类型 0商城订单 1分仓额度 2小分仓额度 3小盟主订单 4大盟主订单")
    private Integer orderType;

    /**
     * 商城订单详情表
     */
    @Schema(description = "商城订单详情表")
    private List<ShopOrderInfoListVO> goodsList = new ArrayList<>();

    /**
     * 券码集合
     */
    private List<String> ticketCodes;


	

}
