package digital.laboratory.platform.entrustment.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import digital.laboratory.platform.entrustment.entity.Suspect;
import digital.laboratory.platform.entrustment.json.DynamicBigDecimalSerializer;
import digital.laboratory.platform.sys.entity.DrugLite;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

// 使用内部类MaterialDTO
@Data
@ApiModel(value = "MaterialDTO", description = "委托检材")
public class MaterialDTO {

    @ApiModelProperty(value = "检材id")
    private String id;

    @ApiModelProperty(value = "检材名称(疑似物种类)")
    private String name;

    @ApiModelProperty(value = "分析项目  1.定性分析   2.定量分析 3.定性定量分析 4.关联性判断 5。其他")
    private Integer analysisOption;

    @ApiModelProperty(value = "候选毒品列表(drug 对象的 json array)")
    private List<DrugLite> candidateDrugs;

    @ApiModelProperty(value = "检材性状")
    private String form;

    @ApiModelProperty(value = "留存样个数--贵阳新增需求")
    private Integer rtSampleQuantity;

    @ApiModelProperty(value = "检材数量, 例如 3.8 克 或 4.5毫升")
    @JsonSerialize(using = DynamicBigDecimalSerializer.class)
    private BigDecimal quantity;

    @ApiModelProperty(value = "计量单位, 例如 3.8 克 或 4.5毫升")
    private String unit;

    @ApiModelProperty(value = "提取时间--贵阳新增需求")
    private LocalDateTime drawTime;

    @ApiModelProperty(value = "提取地点--贵阳新增需求")
    private String drawPlace;

    @ApiModelProperty(value = "检材年龄，用于后续统计各年龄阶段的数据--贵阳新增需求")
    private Integer materialAge;

    @ApiModelProperty(value = "性别，针对生物样本检材")
    private String biologyGender;

    @ApiModelProperty(value = "检材类别")
    private String typeName;

    @ApiModelProperty(value = "检材的嫌疑人列表")
    private List<Suspect>suspects;

    @ApiModelProperty(value = "案件ID")
    private String caseId;

    @ApiModelProperty(value = "委托ID")
    private String entrustmentId;
}