package digital.laboratory.platform.inspection.vo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import digital.laboratory.platform.inspection.dto.ReportConfigDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 实验结果查询中分页查询, 接收委托表、筛查表、任务表中得到的信息VO
 */
@Data
@TableName(autoResultMap = true)
@ApiModel(value = "TestResultBusinessVO", description = "实验结果查询中分页查询, 接收委托表、筛查表、任务表中得到的信息VO")
public class TestResultBusinessVO {

    @ApiModelProperty("业务id")
    private String id;

    @ApiModelProperty("检材类别（缴获物和生物样本）, invivo 生物样本 | inVitro 缴获物， 只存在在委托表里， 其他表为空（筛查表，任务表）")
    private String materialType;

    @ApiModelProperty("业务类型")
    private String businessType;

    @ApiModelProperty("业务类型名称")
    private String businessTypeName;

    @ApiModelProperty("案件名称或者任务名称")
    private String caseName;

    @ApiModelProperty("类型，1 委托、2 筛查、 3 任务")
    private Integer type;

    @ApiModelProperty("录入时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty("录入人")
    private String createBy;

    @ApiModelProperty("化合物字段")
    private String compounds;//[{"compound1":"aaaa","english":"ab-fui"}]

    @ApiModelProperty("生成报告配置")
    @TableField(value = "report_config", typeHandler = FastjsonTypeHandler.class)
    private JSONArray reportConfig;//

    @ApiModelProperty("化合物字段转json数组")
    private JSONArray compoundsJsonArray;

    @ApiModelProperty("业务状态， 0：未分配\n" +
            "1：已分配\n" +
            "2：实验中\n" +
            "3：检验完成\n" +
            "4：鉴定完毕")
    private Integer status = 3;
}
