package com.bonus.material.order.domain;

import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Author：liang.chao
 * @Date：2024/11/26 - 10:28
 */
@Data
public class OrderDetailDto {

    @ApiModelProperty(value = "主键id")
    private Integer id;

    @ApiModelProperty(value = "6位数取件码")
    private String pickupCode;

    @ApiModelProperty(value = "前端是否选中（此字段仅供前端使用，默认0）")
    private Integer isCheck = 0;

    @ApiModelProperty(value = "主键ids")
    private List<Integer> ids;

    @ApiModelProperty(value = "订单id")
    private Integer orderId;

    @ApiModelProperty(value = "订单code")
    private String orderCode;

    @ApiModelProperty(value = "订单备注")
    private String orderRemark;

    @ApiModelProperty(value = "设备id")
    private Integer maId;

    @ApiModelProperty(value = "设备ids")
    private List<Integer> maIds;

    /**
     * 设备编码
     */
    @Excel(name = "设备编码")
    @ApiModelProperty(value = "设备编码")
    private String code;

    /**
     * 设备唯一标识符，用户输入，比如车架号
     */
    @Excel(name = "设备唯一标识符")
    @ApiModelProperty(value = "设备唯一标识符")
    private String identifyCode;

    @ApiModelProperty(value = "设备类型id")
    private Integer typeId;

    @ApiModelProperty(value = "规格型号")
    private String typeName;

    @ApiModelProperty(value = "类型名称")
    private String modelName;

    @ApiModelProperty(value = "租期开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date rentBeginTime;

    @ApiModelProperty(value = "租期结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date rentEndTime;

    @ApiModelProperty(value = "订单原始天数")
    private String originDays;

    @ApiModelProperty(value = "天数")
    private String days;

    @ApiModelProperty(value = "数量")
    private Integer num;

    @ApiModelProperty(value = "总金额")
    private BigDecimal costs;

    @ApiModelProperty(value = "累计租金")
    private BigDecimal totalCost;

    @ApiModelProperty(value = "改价金额")
    private BigDecimal changeCost;

    @ApiModelProperty(value = "设备类型（0：编码  1：数量）")
    private String manageType;

    @ApiModelProperty(value = "设备名称")
    private String deviceName;

    @ApiModelProperty(value = "图片地址")
    private String url;

    @ApiModelProperty(value = "日租金")
    private BigDecimal dayLeasePrice;

    @ApiModelProperty(value = "订单状态（0未下单  1已下单  2待出库 3待收货  4租赁中  5已退租 10已检修 15已结算 20已完成  99已取消）")
    private String orderStatus;

    @ApiModelProperty(value = "创建日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "修改日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty(value = "出库人")
    private String preOutboundUser;

    @ApiModelProperty(value = "出库时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String preOutboundTime;

    @ApiModelProperty(value = "收货人")
    private String takeOverUser;

    @ApiModelProperty(value = "收货时间")
    private String takeOverTime;

    @ApiModelProperty(value = "租赁结束操作人")
    private String rentOverUser;

    @ApiModelProperty(value = "租赁结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private String rentOverTime;

    @ApiModelProperty(value = "设备状态")
    private String maStatus;

    @ApiModelProperty(value = "实际天数")
    private Integer dateDays;

    @ApiModelProperty(value = "减免费用")
    private BigDecimal reliefCost;

    @ApiModelProperty(value = "改价后的减免费用")
    private BigDecimal reliefChangeCost;

    @ApiModelProperty(value = "减免天数")
    private Integer reliefDays;

    @ApiModelProperty(value = "减免开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private String reliefStartTime;

    @ApiModelProperty(value = "减免结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private String reliefEndTime;

    @ApiModelProperty(value = "true:出租方  false:承租方")
    private boolean flag;

    @ApiModelProperty(value = "买方承租方公司id")
    private Integer buyerCompany;

    @ApiModelProperty(value = "买方承租方公司名称")
    private String buyerCompanyName;

    @ApiModelProperty(value = "买方承租方电话")
    private String buyerPhoneNumber;

    @ApiModelProperty(value = "卖方出租方公司id")
    private Integer sellerCompany;

    @ApiModelProperty(value = "卖方出租方公司名称")
    private String sellerCompanyName;

    @ApiModelProperty(value = "卖方出租方电话")
    private String sellerPhoneNumber;

    @ApiModelProperty(value = "单位")
    private String unitName;

    @ApiModelProperty(value = "接单人")
    private String receivingUser;

    @ApiModelProperty(value = "接单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String receivingTime;

    private String devType;

}
