package com.fs.live.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import lombok.Data;

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

/**
 * 合并订单VO（销售订单+商城订单+直播订单）
 *
 * @author fs
 * @date 2025-01-XX
 */
@Data
public class MergedOrderVO implements Serializable
{
    private static final long serialVersionUID = 1L;
    @Excel(name = "订单ID")
    /** 订单ID */
    private Long id;
    @Excel(name = "订单ID（直播订单使用）")
    /** 订单ID（直播订单使用） */
    private Long orderId;
    @Excel(name = "直播ID")
    /** 直播ID（直播订单使用） */
    private Long liveId;
    @Excel(name = "售后ID")
    /** 售后ID（直播订单使用） */
    private Long afterSalesId;
    @Excel(name = "订单号")
    /** 订单号 */
    private String orderCode;
    @Excel(name = "实际支付金额")
    /** 实际支付金额 */
    private BigDecimal payPrice;
    /** 会员等级 */
    private Integer userLevel;
    @Excel(name = "实付金额")
    /** 实付金额 */
    private BigDecimal payMoney;
    @Excel(name = "优惠金额")
    /** 优惠金额（直播订单使用） */
    private Integer discountMoney;
    @Excel(name = "运费")
    /** 运费 */
    private BigDecimal payDelivery;

    /** 运费 */
    private BigDecimal payPostage;
    @Excel(name = "成本价")
    /** 成本价 */
    private BigDecimal cost;


    /** 订单状态 */
    @Excel(name = "订单状态",dictType="sys_live_order_status")
    private Integer status;
    @Excel(name = "订单状态")
    /** 订单总价 */
    private BigDecimal totalPrice;

    /** 是否套餐 */
    private Integer isPackage;

    /** 套餐JSON */
    private String packageJson;

    /** 商品JSON */
    private String itemJson;
    @Excel(name = "物流单号")
    /** 物流单号 */
    private String deliveryId;
    @Excel(name = "物流公司编码")
    /** 物流公司编码 */
    private String deliveryCode;
    @Excel(name = "物流公司名称")
    /** 物流公司名称 */
    private String deliveryName;

    /** 是否可以申请售后 */
    private Integer isAfterSales;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date deliverySendTime;

    /** 总数量（直播订单使用） */
    private Integer totalNum;



    /** 订单类型：1-销售订单，2-商城订单，3-直播订单 */
    private Integer orderType;
//    汇付商户订单号
    private String hfshh;
    @Excel(name = "订单类型名称")
    /** 订单类型名称 */
    private String orderTypeName;
    @Excel(name = "公司名称")
    /** 公司名称 */
    private String companyName;
    @Excel(name = "销售名称")
    /** 销售名称（company_user表的user_name） */
    private String salesName;

    /** 销售创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date salesCreateTime;

    /** 销售手机 */
    private String salesPhone;

    /** 员工昵称（company_user表的nick_name） */
    private String companyUserNickName;

    /** 用户昵称 */
    private String nickname;

    /** 用户手机号 */
    private String phone;

    /** 用户ID */
    private Long userId;

    /** 用户累计成交避暑 */
    private Integer userOrderCount;

    /** 用户累计成交避暑 */
    private BigDecimal userTotalAmount;

    /** 收货人姓名 */
    private String realName;

    /** 收货人电话 */
    private String userPhone;

    /** 店铺ID */
    private Long storeId;

    /** 店铺名字 */
    private String storeName;

    /** 产品ID */
    private Long productId;

    /** 产品名字 */
    private String productName;
    /** 商品规格 */
    private String productSpec;

    /** 商品编码 */
    @Excel(name = "商品编码")
    private String barCode;

    /** 商品分类 */
    private String cateName;



    /** 收货地址 */
    private String userAddress;

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

    /** 物流状态 */
    private Integer deliveryStatus;

    /** 物流结算状态 */
    private Integer deliveryPayStatus;



    /** 订单商品列表 */
    private List<?> items;

    /** 小程序名称 */
    private String miniProgramName;

    /** ERP账号 */
    private String erpAccount;

    /** ERP电话 */
    private String erpPhone;

    /** 银行交易流水号 */
    private String bankTransactionId;

    private BigDecimal FPrice;


}

