package digital.laboratory.platform.imr.entity;

import com.alibaba.fastjson.annotation.JSONField;
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 digital.laboratory.platform.common.mybatis.base.BaseEntity;
import digital.laboratory.platform.imr.component.DateUtils;
import digital.laboratory.platform.imr.enums.OutApplyStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;


/**
 * 样本出库申请实体类
 *
 * @author Zhang Xiaolong created at  2023-03-17 11:51:42
 * @describe 样本出库申请实体类 实体类
 */
@Data
@TableName(value = "sample_out_warehouse_apply", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "样本出库申请实体类")
public class SampleOutWarehouseApply extends BaseEntity {

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value="主键id")
    private String id;

    /**
     * 申请人id
     */
    @ApiModelProperty(value="申请人id")
    private String applicantId;

    /**
     * 申请时间
     */
    @ApiModelProperty(value="申请时间")
    private LocalDateTime applicationDate;

    /**
     * 出库用途
     */
    @ApiModelProperty(value="出库用途")
    private String purpose;

    /**
     * 归还日期
     */
    @ApiModelProperty(value="归还日期")
    @JsonFormat(pattern = DateUtils.yyyy_MM_dd, timezone = DateUtils.TIME_ZONE)
    @JSONField(format = DateUtils.yyyy_MM_dd)
    private LocalDate returnDate;

    /**
     * 取检码
     */
    @ApiModelProperty(value="取检码")
    private String sampleCodeNumber;

    /**
     * 鉴定人id
     */
    @ApiModelProperty(value="鉴定人id")
    private String appraiserId;

    /**
     * 申请状态
     */
    @ApiModelProperty(value="申请状态")
    private OutApplyStatus status;

    /**
     * 检材管理员
     * */

     @ApiModelProperty(value="检材管理员id")
     private String imAdministratorsId;



}
