package com.zt.plat.module.qms.business.bus.controller.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 分样复测业务数据新增/修改 Request VO")
@Data
public class BusinessSubSampleParentRetestSaveReqVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20948")
    private Long id;

    @Schema(description = "样品ID", example = "28939")
    private Long sampleId;

    @Schema(description = "样品主样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3389")
    @NotNull(message = "样品主样ID不能为空")
    private Long businessBaseSampleId;

    @Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6831")
    @NotNull(message = "样品分样ID不能为空")
    private Long businessSubParentSampleId;

    @Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23450")
    @NotNull(message = "检测方法配置ID不能为空")
    private Long configAssayMethodId;

    @Schema(description = "班组判定数据业务ID", example = "32694")
    private Long businessSubParentSampleAssessmentId;

    @Schema(description = "复测次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "12365")
    @NotNull(message = "复测次数不能为空")
    private Integer retestCount;

    @Schema(description = "复检样品主样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23172")
    @NotNull(message = "复检样品主样ID不能为空")
    private Long retestBusinessBaseSampleId;

    @Schema(description = "复检样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11648")
    @NotNull(message = "复检样品分样ID不能为空")
    private Long retestBusinessSubParentSampleId;

    @Schema(description = "复检检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7801")
    @NotNull(message = "复检检测方法配置ID不能为空")
    private Long retestConfigAssayMethodId;

    @Schema(description = "班组判定数据业务ID", example = "21169")
    private Long retestBusinessSubParentSampleAssessmentId;

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

    @Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "30845")
    @NotNull(message = "乐观锁不能为空")
    private Integer updateCount;

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

}