package com.zt.plat.module.qms.resource.material.controller.vo;

import com.zt.plat.module.qms.resource.material.valid.AddGroup;
import com.zt.plat.module.qms.resource.material.valid.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 标液,标准溶液，包含配置信息新增/修改 Request VO")
@Data
public class MaterialStandardSolutionSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "19766")
    @NotNull(groups = {UpdateGroup.class}, message = "id不能为空")
    @Null(groups = {AddGroup.class}, message = "id必须为空")
    private Long id;

    @Schema(description = "物料大类id")
    @NotNull(groups = {AddGroup.class}, message = "物料大类id不能为空")
    private Long productId;

    @Schema(description = "配置申请明细ID", example = "438")
    private Long detailId;

    @Schema(description = "物料实例id", example = "14530")
    private Long infomationId;

    @Schema(description = "配置人")
    private String makeUser;

    @Schema(description = "配置人id", example = "5428")
    private Long makeUserId;

    @Schema(description = "配置日期")
    private LocalDateTime makeDate;

    @Schema(description = "总体积")
    private String volumeTotal;

    @Schema(description = "配置记录")
    private String makeRecord;

    @Schema(description = "有效期")
    private Integer due;

    @Schema(description = "到期日期")
    private LocalDateTime dueDate;

    @Schema(description = "滴定管id")
    private String buretteId;

    @Schema(description = "滴定管编号")
    private String buretteNo;

    @Schema(description = "浓度")
    private String concentration;

    @Schema(description = "滴定度")
    private String titer;

    @Schema(description = "标定流程类型", example = "2")
    private Long standardFlowType;

    @Schema(description = "标定状态")
    private String standardFlow;

    @Schema(description = "所属部门")
    private String systemDepartmentCode;

    @Schema(description = "备注")
    private String remark;

}