package com.bonus.material.lease.domain;

import com.bonus.common.biz.domain.BmFileInfo;
import com.bonus.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 维修记录表repair_apply_record(LeaseRepairRecord)实体类
 *
 * @author makejava
 * @since 2024-12-02 15:26:44
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LeaseRepairRecord extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 457444570801778758L;
    
    private Integer id;

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

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

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

    @ApiModelProperty(value = "装备ID")
    private Integer maId;

    @ApiModelProperty(value = "装备IDs")
    private List<Integer> maIds;

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

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

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

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

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

    @ApiModelProperty(value = "维修数量")
    private Integer repairNum;

    @ApiModelProperty(value = "维修费用")
    private BigDecimal repairPrice;

    @ApiModelProperty(value = "维修改价费用")
    private BigDecimal repairChangePrice;

    @ApiModelProperty(value = "报废数量")
    private Integer scrapNum;

    @ApiModelProperty(value = "报废费用")
    private BigDecimal scrapPrice;

    @ApiModelProperty(value = "报废改价费用")
    private BigDecimal scrapChangePrice;

    @ApiModelProperty(value = "报废原因")
    private String scrapReason;

    @ApiModelProperty(value = "丢失数量")
    private Integer lossNum;

    @ApiModelProperty(value = "丢失费用")
    private BigDecimal lossPrice;

    @ApiModelProperty(value = "丢失改价费用")
    private BigDecimal lossChangePrice;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "订单状态")
    private Integer orderStatus;

    @ApiModelProperty(value = "订单完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date rentOverTime;

    @ApiModelProperty(value = "改价人id")
    private Long changePriceUser;

    @ApiModelProperty(value = "承租方费用确定人id")
    private Long priceConfirmUser;

    @ApiModelProperty(value = "改价时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date changePriceTime;

    @ApiModelProperty(value = "创建者")
    private String createBy;

    @ApiModelProperty(value = "创建人公司")
    private String createCompany;

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

    @ApiModelProperty(value = "更新者")
    private String updateBy;

    @ApiModelProperty(value = "更新时间（因无修改操作，故费用最后确定时间为最后一步修改操作）")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "附件信息")
    private List<BmFileInfo> fileInfoList;

}

