package com.yiqi.order.domain;

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

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
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.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yiqi.common.core.domain.BaseEntity;
import lombok.Data;

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

    /** 主键ID */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("主键ID")
    private Long id;

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

    /** 退款订单ID */
    @Excel(name = "退款订单ID")
    @ApiModelProperty("退款订单ID")
    private Long refundId;

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

    @ApiModelProperty("客户ID")
    private Long appUserId;

    /** 门店/工厂ID */
    @Excel(name = "门店/工厂ID")
    @ApiModelProperty("门店/工厂ID")

    private Long orgId;

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

    /** 工厂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 Integer repeatCount;

    @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;

    @ApiModelProperty("衣服问题")
    private String clothProblem;

    /** 挂架ID */
    @Excel(name = "挂架ID")
    @ApiModelProperty("挂架ID")

    private Long clothHangerId;

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

    /** 挂衣号 */
    @Excel(name = "挂衣号")
    @ApiModelProperty("挂衣号")
    private String clothHangerName;

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

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

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

    /**
     *     waitingForWash("0", "待入厂"),
     *     inFactory("1", "已入厂"),
     *     checkCloth("2", "已检查"),
     *     outFactory("3", "已出厂"),
     *     hangering("4", "上挂中"),
     *
     *     hasTake("5","已取衣"),
     *     reWash("100", "重洗"),
     *     deleteInFactory("101","删除入厂"),
     *     refund("102","撤单"),
     *
     *     */
    @Excel(name = "洗衣状态", readConverterExp = "0=待入厂，1=已入厂，2=已检查，3=已出厂，4=已上挂，5=已取衣，6=已到店、待送衣，7=送衣中，8=已送达、待评价，9=已完成，100=重洗，11=删除入厂，-1=撤单")
    @ApiModelProperty("洗衣状态（0=待入厂，1=已入厂，2=已检查，3=已出厂，4=已上挂，5=已取衣，6=已到店、待送衣，7=送衣中，8=已送达、待评价，9=已完成，100=重洗，11=删除入厂，-1=撤单）")
    private String flowStatus;


    @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 sendClothTime;

    @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;


    @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;

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

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

    @ApiModelProperty("工厂结算费率")
    private BigDecimal factorySettlementRate;


}
