package com.ktg.iscs.domain.vo.materialsLoan;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.model.BaseBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 物资借出对象 is_materials_loan
 *
 * @author cgj
 * @date 2024-11-08
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class MaterialsLoanPageVO extends BaseBean
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "出借记录ID")
    @TableId(type = IdType.AUTO)
    private Long materialsLoanId;

    @ApiModelProperty(value = "物资ID")
    @Excel(name = "物资ID")
    private Long materialsId;

    @ApiModelProperty(value = "物资编号")
    @Excel(name = "物资编号")
    private String materialsCode;

    @ApiModelProperty(value = "物资名称")
    @Excel(name = "物资名称")
    private String materialsName;

    @ApiModelProperty(value = "领取人ID")
    @Excel(name = "领取人ID")
    private Long loanUserId;

    @ApiModelProperty(value = "领取人NAME")
    @Excel(name = "领取人NAME")
    private String loanUserName;

    @ApiModelProperty(value = "领取柜ID")
    @Excel(name = "领取柜ID")
    private Long loanFromId;

    @ApiModelProperty(value = "领取柜Name")
    private String loanFromName;

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

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

    @ApiModelProperty(value = "归还人ID")
    @Excel(name = "归还人ID")
    private Long restitutionUserId;

    @ApiModelProperty(value = "归还人Name")
    @Excel(name = "归还人Name")
    private String restitutionUserName;

    @ApiModelProperty(value = "归还柜ID")
    @Excel(name = "归还柜ID")
    private Long restitutionToId;

    @ApiModelProperty(value = "归还柜Name")
    private String restitutionToName;

    @ApiModelProperty(value = "理应归还时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date restitutionTime;

    @ApiModelProperty(value = "实际归还时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际归还时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date actualRestitutionTime;

    @ApiModelProperty(value = "超时报警")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "超时报警", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date timeoutAlarm;

    @ApiModelProperty(value = "是否需要归还")
    @Excel(name = "是否需要归还")
    private Integer restitutionRequired;

    @ApiModelProperty(value = "删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @ApiModelProperty(value = "物资类型ID")
    private Long materialsTypeId;

    @ApiModelProperty(value = "物资类型Name")
    private String materialsTypeName;

    @ApiModelProperty(value = "物资类型图标")
    private String materialsTypeIcon;

    @ApiModelProperty(value = "物资类型缩略图")
    private String materialsTypePicture;

    @ApiModelProperty(value = "状态(0-待归还 1-已归还 2-超时未归还)")
    private String status;

    @ApiModelProperty(value = "借出时长")
    private String loanDuration;

}
