package digital.laboratory.platform.imr.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import digital.laboratory.platform.imr.component.DateUtils;
import digital.laboratory.platform.imr.entity.DrugMaterialInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 保存毒品库信息中的案件和检材信息DTO类
 */
@Data
@ApiModel(value = "DrugDepotsDTO", description = "保存毒品库信息中的案件和检材信息DTO类")
public class DrugDepotsDTO {

    @ApiModelProperty("案件id")
    private String id;

    /**
     * 案事件名称
     */
    @ApiModelProperty("案事件名称")
    @NotBlank(message = "案事件名称不能为空！")
    private String caseName;

    /**
     * 案件编号
     */
    @ApiModelProperty("案件编号")
    private String caseNo;

    /**
     * 送缴单位
     */
    @ApiModelProperty("送缴单位")
    @NotBlank(message = "送缴单位不能为空！")
    private String handingOverOrg;

    @ApiModelProperty("前端需要展示的机构组件，保存了送缴单位的父级机构id和自己机构id")
    private String frontOrgIds;

    /**
     * 送缴日期
     */
    @ApiModelProperty("送缴日期")
    @NotNull(message = "送缴日期不能为空！")
    @JsonFormat(pattern = DateUtils.yyyy_MM_dd, timezone = "")
    private LocalDate handingOverDate;

    @ApiModelProperty("关联的检材列表")
    private List<DrugMaterialInfoDTO> drugMaterialInfoDTOList;
}
