package org.agt.module.license.controller.admin.project.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 项目新增/修改 Request VO")
@Data
public class ProjectSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23058")
    private Long id;

    @Schema(description = "客户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10982")
    @NotNull(message = "客户ID不能为空")
    private Long customerId;

    @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "aa")
    @NotEmpty(message = "项目名称不能为空")
    private String name;

    @Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2000")
    @NotEmpty(message = "项目编号不能为空")
    private String code;

    @Schema(description = "合同编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1111")
    @NotEmpty(message = "合同编号不能为空")
    private String contractCode;

    @Schema(description = "商务状态", example = "2")
    private Integer businessStatus;

    @Schema(description = "业务负责人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "业务负责人不能为空")
    private Long businessOwner;

    @Schema(description = "客户对接人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "客户对接人不能为空")
    private Long customerOwner;

    @Schema(description = "技术负责人1", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "技术负责人1不能为空")
    private Long technicalOwnerA;

    @Schema(description = "技术负责人2")
    private Long technicalOwnerB;

    @Schema(description = "技术负责人3")
    private Long technicalOwnerC;

    @Schema(description = "项目开始时间")
    private LocalDateTime startTime;

    @Schema(description = "项目结束时间")
    private LocalDateTime endTime;

    @Schema(description = "项目状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "项目状态不能为空")
    private Integer status;

    @Schema(description = "环境信息")
    private String envInfo;

    @Schema(description = "环境信息附件id", example = "18887")
    private Long envFileId;

    @Schema(description = "备注", example = "随便")
    private String remark;

}