package com.ruoyi.controller.resp;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.frequency.orderchangerecord.entity.OrderChangeRecord;
import com.ruoyi.frequency.orderevaluate.entity.OrderEvaluate;
import com.ruoyi.frequency.orderextensionrecord.entity.OrderExtensionRecord;
import com.ruoyi.frequency.orderpanorama.entity.OrderPanorama;
import com.ruoyi.frequency.orderreceiving.entity.OrderReceiving;
import com.ruoyi.vo.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @author a
 * @date 2023/10/13 9:58
 */
@Data
public class OrderDetailResp {

    @ApiModelProperty("租户号")
    private Long id;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("删除标志;1 正常 2 删除 3 禁用")
    private Integer delFlag;

    @ApiModelProperty("订单标题")
    @Excel(name = "订单标题")
    private String title;

    @ApiModelProperty("素材")
    @Excel(name = "素材")
    private String sourceMaterial;

    @ApiModelProperty("原价")
    @Excel(name = "原价")
    private BigDecimal originAmount;

    @ApiModelProperty("订单金额")
    @Excel(name = "订单金额")
    private BigDecimal amount;

    @ApiModelProperty("改价后金额(客户确认后,改价后金额同步到amount中)")
    @Excel(name = "改价后金额(客户确认后,改价后金额同步到amount中)")
    private BigDecimal changeAmount;

    @ApiModelProperty("提出改价的用户身份 1 设计师 2 表现师")
    @Excel(name = "提出改价的用户身份 1 设计师 2 表现师")
    private Integer changeUserType;

    @ApiModelProperty("改价状态 1 待确认 2 已确认")
    @Excel(name = "改价状态 1 待确认 2 已确认")
    private Integer changeStatus;

    @ApiModelProperty("价格调整备注")
    @Excel(name = "价格调整备注")
    private String changeRemark;

    @ApiModelProperty("对图时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "对图时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmDate;

    @ApiModelProperty("设计师id")
    @Excel(name = "设计师id")
    private Long customerId;

    @ApiModelProperty("表现师id")
    @Excel(name = "表现师id")
    private Long storeId;

    @ApiModelProperty("销售从中拿到的佣金")
    @Excel(name = "销售从中拿到的佣金")
    private BigDecimal saleAmount;

    @ApiModelProperty("销售id")
    @Excel(name = "销售id")
    private Long saleId;

    @ApiModelProperty("内容")
    @Excel(name = "内容")
    private String content;

    @ApiModelProperty("订单状态;-1 已取消 1待确认 2进行中 3待收图 4待评价 5已评价 ")
    @Excel(name = "订单状态;-1 已取消 1待确认 2进行中 3待收图 4待评价 5已评价 ")
    private Integer status;

    @ApiModelProperty("申诉状态;1无申诉 2申诉中 3申诉完成")
    @Excel(name = "申诉状态;1无申诉 2申诉中 3申诉完成")
    private String appealStatus;

    @ApiModelProperty("申请用户类型 1 设计师 2 表现师")
    @Excel(name = "申请用户类型 1 设计师 2 表现师")
    private Integer appealUserType;

    @ApiModelProperty("申诉id")
    private Long appealId;

    @ApiModelProperty("订单来源 1 设计师自己下单 2 表现师帮设计师下单")
    @Excel(name = "订单来源 1 设计师自己下单 2 表现师帮设计师下单")
    private Integer sourceUserType;

    @ApiModelProperty("封面图")
    @Excel(name = "封面图")
    private String coverImage;

    @ApiModelProperty("作品图片")
    @Excel(name = "作品图片")
    private String images;

    @ApiModelProperty("首款")
    @Excel(name = "首款")
    private BigDecimal firstPrice;

    @ApiModelProperty("首款支付状态 1 未支付 2 已支付")
    @Excel(name = "首款支付状态 1 未支付 2 已支付")
    private Integer firstStatus;

    @ApiModelProperty("首款支付方式 1app支付宝 2 h5支付宝 3 app微信 4 h5微信 5 小程序 6 苹果支付 7 余额")
    @Excel(name = "首款支付方式 1app支付宝 2 h5支付宝 3 app微信 4 h5微信 5 小程序 6 苹果支付 7 余额")
    private Integer firstPayType;

    @ApiModelProperty("尾款支付方式 1app支付宝 2 h5支付宝 3 app微信 4 h5微信 5 小程序 6 苹果支付 7 余额")
    @Excel(name = "尾款支付方式 1app支付宝 2 h5支付宝 3 app微信 4 h5微信 5 小程序 6 苹果支付 7 余额")
    private Integer secondPayType;

    @ApiModelProperty("订单号")
    @Excel(name = "订单号")
    private String orderNo;

    @ApiModelProperty("支付宝支付返回的订单号")
    @Excel(name = "支付宝支付返回的订单号")
    private String aliBusinessId;

    @ApiModelProperty("首款支付时间")
    @Excel(name = "首款支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstPayTime;

    @ApiModelProperty("尾款支付时间")
    @Excel(name = "尾款支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date secondPayTime;

    @ApiModelProperty("作品类型ID")
    private Long worksTypeId;

    @ApiModelProperty("作品类型名称")
    private String worksTypeName;


    @ApiModelProperty("首款支付单号")
    private String firstPayOrderNo;

    @ApiModelProperty("尾款支付单号")
    private String secondPayOrderNo;

    @ApiModelProperty("图纸张数")
    private Integer drawingNum;


    @ApiModelProperty("原始交付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date originDeliverTime;

    @ApiModelProperty("交付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date deliverTime;

    @ApiModelProperty("延期后时间 表现师确认后 更新交付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date extensionDeliverTime;

    @ApiModelProperty("延期用户身份 1 设计师 2 表现师")
    private Integer extensionUserType;

    @ApiModelProperty("延期状态 1 待确认 2 已确认")
    private Integer extensionStatus;

    @ApiModelProperty("延期备注")
    private String extensionRemark;


    @ApiModelProperty("用户(设计师)信息")
    private UserInfo customerInfo;

    @ApiModelProperty("是否可以接单 1 不可以 2 可以")
    private Integer isReceivingOrder = 1;

    @ApiModelProperty("表现师信息")
    private UserInfo storeInfo;

    @ApiModelProperty("确认后调价信息")
    private OrderChangeRecord orderChangeRecord;

    @ApiModelProperty("确认后延期信息")
    private OrderExtensionRecord orderExtensionRecord;

    @ApiModelProperty("3D图")
    private List<OrderPanorama> panoramaList;

    @ApiModelProperty("接单表现师")
    private List<OrderReceiving> orderReceivingList;

    @ApiModelProperty("表现师评价信息")
    private OrderEvaluate storeOrderEvaluate;

    @ApiModelProperty("设计师师评价信息")
    private OrderEvaluate customerOrderEvaluate;

    @ApiModelProperty("1 普通 2 高端 3酷家乐")
    private Integer ifHighend;

    @ApiModelProperty("调价变动定金")
    private BigDecimal depositAmount;

    @ApiModelProperty("所有的表现师id列表集合")
    private String recentlyReceiveStr;
}
