package org.dromara.zhishu.domain.vo;

import com.baomidou.mybatisplus.annotation.TableLogic;
import org.dromara.zhishu.domain.DepotOrder;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

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


/**
 * 仓库订单信息视图对象 t_depot_order
 *
 * @author yxy
 * @date 2025-06-03
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DepotOrder.class)
public class DepotOrderVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 店铺订单id
     */
    @ExcelProperty(value = "店铺订单id")
    private String shopOrderId;

    /**
     * 处理人
     */
    @ExcelProperty(value = "处理人")
    private Long userId;

    private String userName;

    /**
     * 商品信息
     */
    @ExcelProperty(value = "商品信息")
    private String itemList;

    /**
     * 仓库订单状态  0 待发货  1 已发货  2 无库存 3 转发任务
     */
    @ExcelProperty(value = "仓库订单状态  0 待发货  1 已发货  2 无库存 3 转发任务")
    private String status;

    /**
     * 创建者
     */
    @ExcelProperty(value = "创建者")
    private Long createBy;

    private String createName;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 查询总数
     */
    private String total;


    /**
     * 订单相关信息内容--------------------------
     */

    /**
     * 三方平台订单编号
     */
    private String orderSn;

    /**
     * 订单来源类型 1-拼多多 2-孔夫子
     */
    private Integer orderSourceType;

    /**
     * 订单异常类型集合（json字符串）：inventoryException-库存异常 goodsSourceUnknownException-未知商品来源
     */
    private String orderExceptionType;

    /**
     * 订单异常类型集合：inventoryException-库存异常 goodsSourceUnknownException-未知商品来源
     */
    private List<String> orderExceptionTypeList;

    /**
     * 店铺id
     */
    private String shopId;

    /**
     * 店铺名称
     */
    private String shopName;

    /**
     * 地址
     */
    private String address;

    /**
     * 详细地址
     */
    private String addressMask;

    /**
     * 售后状态 0：无售后 2：买家申请退款，待商家处理 3：退货退款，待商家处理 4：商家同意退款，退款中 5：平台同意退款，退款中 6：驳回退款，待买家处理 7：已同意退货退款,待用户发货 8：平台处理中 9：平台拒绝退款，退款关闭 10：退款成功 11：买家撤销 12：买家逾期未处理，退款失败 13：买家逾期，超过有效期 14：换货补寄待商家处理 15：换货补寄待用户处理 16：换货补寄成功 17：换货补寄失败 18：换货补寄待用户确认完成 21：待商家同意维修 22：待用户确认发货 24：维修关闭 25：维修成功 27：待用户确认收货 31：已同意拒收退款，待用户拒收 32：补寄待商家发货 33：同意召回后退款，待商家召回
     */
    private Integer afterSalesStatus;

    /**
     * 买家留言信息
     */
    private String buyerMemo;

    /**
     * 成交状态：0：未成交、1：已成交、2：已取消
     */
    private Integer confirmStatus;

    /**
     * 成交时间
     */
    private String confirmTime;

    /**
     * 订单创建时间
     */
    private String createdTime;

    /**
     * 是否当日发货，1-是，0-否
     */
    private String deliveryOneDay;

    /**
     * 折扣金额，单位：元，折扣金额=平台优惠+商家优惠+团长免单优惠金额
     */
    private BigDecimal discountAmount;

    /**
     * 多多支付立减金额，单位：元
     */
    private BigDecimal duoDuoPayReduction;

    /**
     * 是否多多批发
     */
    private Integer duoduoWholesale;

    /**
     * 商品金额
     */
    private BigDecimal goodsAmount;

    /**
     * 仓库编码
     */
    private String depotCode;

    /**
     * 仓库编码
     */
    private String orderDepotInfo;

    /**
     * 仓库id
     */
    private String depotId;

    /**
     * 支付申报订单号
     */
    private String depotName;

    /**
     * 仓库类型，1：自有仓 2：订阅仓 两者都不是则传空
     */
    private Integer depotType;

    /**
     * 货品id
     */
    private Long wareId;

    /**
     * 货品名称
     */
    private String wareName;

    /**
     * 货品编码
     */
    private String wareSn;

    /**
     * 货品类型（0：普通货品:1：组合货品）
     */
    private Integer wareType;

    /**
     * 订单状态
     */
    private Integer orderStatus;

    /**
     * 支付金额
     */
    private BigDecimal payAmount;

    /**
     * 支付单号
     */
    private String payNo;

    /**
     * 支付时间
     */
    private String payTime;

    /**
     * 支付方式
     */
    private String payType;

    /**
     * 平台优惠金额
     */
    private BigDecimal platformDiscount;

    /**
     * 邮费
     */
    private BigDecimal postage;

    /**
     * 预售时间
     */
    private String preSaleTime;

    /**
     * 承诺送达时间
     */
    private String promiseDeliveryTime;

    /**
     * 确认收货时间
     */
    private String receiveTime;

    /**
     * 省份
     */
    private String province;

    /**
     * 省份编码
     */
    private String provinceId;

    /**
     * 市
     */
    private String city;

    /**
     * 市编码
     */
    private String cityId;

    /**
     * 区，乡镇
     */
    private String town;

    /**
     * 区县编码
     */
    private String townId;

    /**
     * 收件人地址
     */
    private String receiverAddress;

    /**
     * 收件人地址
     */
    private String receiverAddressMask;

    /**
     * 收件人姓名
     */
    private String receiverName;

    /**
     * 收件人姓名
     */
    private String receiverNameMask;

    /**
     * 确认收货时间
     */
    private String receiverPhone;

    /**
     * 收件人手机号（打码）
     */
    private String receiverPhoneMask;

    /**
     * 售后状态
     */
    private Integer refundStatus;

    /**
     * 订单备注
     */
    private String remark;

    /**
     * 1-红色，2-黄色，3-绿色，4-蓝色，5-紫色
     */
    private String remarkTag;

    /**
     * 订单备注标记名称
     */
    private String remarkTagName;

    /**
     * 退货包运费，1:是，0:否
     */
    private Integer returnFreightPayer;

    /**
     * 订单审核状态（0-正常订单， 1-审核中订单）
     */
    private Integer riskControlStatus;

    /**
     * 是否门店自提
     */
    private Integer selfContained;

    /**
     * 商家优惠金额
     */
    private BigDecimal sellerDiscount;

    /**
     * 缺货处理状态 -1:无缺货处理 0: 缺货待处理 1缺货已处理
     */
    private Integer stockOutHandleStatus;

    /**
     * 全国联保，1:是，0:否
     */
    private Integer supportNationwideWarranty;

    /**
     * 快递单号
     */
    private String trackingNumber;

    /**
     * 以旧换新国家补贴金额，单位：元
     */
    private BigDecimal tradeInNationalSubsidyAmount;

    /**
     * 订单类型 0-普通订单 ，1- 定金订单
     */
    private Integer tradeType;

    /**
     * 订单的更新时间
     */
    private String updatedAt;

    /**
     * 催发货时间
     */
    private String urgeShippingTime;

    /**
     * 预约配送日期
     */
    private String yypsDate;

    /**
     * 预约配送时段
     */
    private String yypsTime;

    /**
     * 合单ID2
     */
    private String openAddressId2;


    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 租户编码
     */
    @TableLogic
    private String tenantId;


    /**
     *  商品列表
     */
    private List<OrderItemVo> orderItemList;

    /**
     * 额外附属信息
     */
    private String extraInfo;

}
