package com.yiqi.order.domain.vo;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiqi.app.domain.vo.AppUserVO;
import com.yiqi.common.annotation.Excel;
import com.yiqi.common.core.domain.BaseEntity;
import com.yiqi.core.domain.ClothHanger;
import com.yiqi.order.domain.*;
import com.yiqi.order.domain.dto.*;
import com.yiqi.system.domain.SysOrg;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 洗衣订单衣服明细对象 order_cloth_item
 *
 * @author ruoyi
 * @date 2023-10-06
 */
@Data
public class OrderClothItemVO extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")

    private Long id;

    /**
     * 是否附件
     */
    @ApiModelProperty("是否是附件")
    private String isAdjunct;

    /**
     * 订单ID
     */
    @ApiModelProperty("订单ID")
    private Long orderId;

    @ApiModelProperty("退款ID")
    private Long refundId;

    @ApiModelProperty("订单编号")
    private String orderNo;

    /**
     * 订单状态
     */
    @Excel(name = "订单状态")
    @ApiModelProperty("订单状态")
    private String orderStatus;

    /**
     * 门店/工厂ID
     */
    @Excel(name = "门店/工厂ID")
    @ApiModelProperty("门店/工厂ID")
    private Long orgId;

    private String orgName;

    private Long appUserId;

    /**
     * 来源类型
     */
    @Excel(name = "来源类型")
    @ApiModelProperty("来源类型")
    private String sourceType;

    @Excel(name = "重洗次数")
    @ApiModelProperty("重洗次数")
    private Integer repeatCount;

    /**
     * 工厂ID
     */
    @Excel(name = "工厂ID")
    @ApiModelProperty("工厂ID")
    private Long factoryId;

    /**
     * 衣服ID
     */
    @Excel(name = "衣服ID")
    @ApiModelProperty("衣服ID")
    private Long clothItemId;

    /**
     * 衣服名称
     */
    @Excel(name = "衣服名称")
    @ApiModelProperty("衣服名称")
    private String clothItemName;

    @ApiModelProperty("衣服品牌ID")
    private Long clothBrandId;

    @ApiModelProperty("衣服品牌名称")
    private String clothBrandName;

    /**
     * 洗衣速度ID
     */
    @Excel(name = "洗衣速度ID")
    @ApiModelProperty("洗衣速度ID")
    private Long clothSpeedId;

    /**
     * 洗衣速度名称
     */
    @Excel(name = "洗衣速度名称")
    @ApiModelProperty("洗衣速度名称")
    private String clothSpeedName;

    /**
     * 价格倍数
     */
    @Excel(name = "价格倍数")
    @ApiModelProperty("价格倍数")
    private BigDecimal clothMultiple;

    /**
     * 洗衣天数
     */
    @Excel(name = "洗衣天数")
    @ApiModelProperty("洗衣天数")
    private Integer clothWashDayNum;

    /**
     * 衣服单价
     */
    @Excel(name = "衣服单价")
    @ApiModelProperty("衣服单价")
    private BigDecimal price;

    @Excel(name = "衣服特殊价格")
    @ApiModelProperty("衣服特殊价格")
    private BigDecimal specialPrice;

    @Excel(name = "衣服总价")
    @ApiModelProperty("衣服总价")
    private BigDecimal totalPrice;

    @ApiModelProperty("折后支付价格")
    private BigDecimal payPrice;

    /**
     * 洗衣方式ID
     */
    @Excel(name = "洗衣方式ID")
    @ApiModelProperty("洗衣方式ID")
    private Long clothWashModeId;

    /**
     * 洗衣方式名称
     */
    @Excel(name = "洗衣方式名称")
    @ApiModelProperty("洗衣方式名称")
    private String clothWashModeName;

    /**
     * 照片
     */
    @Excel(name = "照片")
    @ApiModelProperty("照片")
    private String pics;

    /**
     * 水洗唛
     */
    @Excel(name = "水洗唛")
    @ApiModelProperty("水洗唛")
    private String washCode;

    /**
     * 挂架ID
     */
    @Excel(name = "挂架ID")
    @ApiModelProperty("挂架ID")
    private Long clothHangerId;

    /**
     * 挂架位置code
     */
    @Excel(name = "挂架位置code")
    @ApiModelProperty("挂架位置code")
    private String clothHangerCode;

    /**
     * 是否保值
     */
    @Excel(name = "是否保值")
    @ApiModelProperty("是否保值")
    private String isHedging;

    /**
     * 保值价格
     */
    @Excel(name = "保值价格")
    @ApiModelProperty("保值价格")
    private BigDecimal hedgingPrice;

    @ApiModelProperty("是否自定义单价")
    private String isCustomPrice;

    @ApiModelProperty("洗衣状态")
    private String flowStatus;

    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty("支付时间")
    private Date payTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("预计取衣时间")
    private Date planSendClothTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("入厂时间")
    private Date inFactoryTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("检查时间")
    private Date checkClothTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("出厂时间")
    private Date outFactoryTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("取衣时间")
    private Date takeClothTime;


    @ApiModelProperty("入厂人员id")
    private Long inFactoryById;


    @ApiModelProperty("出厂人员id")
    private Long outFactoryById;


    @ApiModelProperty("检查人员id")
    private Long checkClothById;

    @ApiModelProperty("入厂人员")
    private String inFactoryBy;

    @ApiModelProperty("出厂人员")
    private String outFactoryBy;

    @ApiModelProperty("检查人员")
    private String checkClothBy;

    @ApiModelProperty("衣服瑕疵")
    List<OrderClothFlaw> orderClothFlaws;

    @ApiModelProperty("衣服颜色")
    List<OrderClothColor> orderClothColors;

    @ApiModelProperty("衣服工艺")
    List<OrderClothCraft> orderClothCrafts;

    @ApiModelProperty("衣服类型")
    List<OrderClothType> orderClothTypes;

    @ApiModelProperty("衣服附件")
    List<OrderClothAdjunct> orderClothAdjuncts;

    @ApiModelProperty("客户姓名")
    private String appUserName;

    @ApiModelProperty("客户手机号")
    private String appUserPhoneNumber;

    @ApiModelProperty("挂架信息")
    private ClothHanger clothHanger;

    @ApiModelProperty("超时天数")
    private Long timeoutDayNum;

    @ApiModelProperty("组织信息")
    private SysOrg sysOrg;

    private Long storeId;

    private String storeName;

    private Integer clothType;
}
