package com.zcloud.domain.dto;

import com.alibaba.cola.dto.Command;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * web-client
 *
 * @Author zhaokai
 * @Date 2026-01-29 15:47:57
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProjectTaskAddCmd implements Serializable {
    @ApiModelProperty(value = "领域类型", name = "domainType", required = true)
    @NotEmpty(message = "领域类型不能为空")
    private String domainType;

    @ApiModelProperty(value = "领域类型名称", name = "domainTypeName", required = true)
    @NotEmpty(message = "领域类型名称不能为空")
    private String domainTypeName;

    @ApiModelProperty(value = "领域部门主键id", name = "domainDepartmentId", required = true)
    @NotNull(message = "领域部门不能为空")
    private String domainDepartmentId;

    @ApiModelProperty(value = "课题名称", name = "projectName", required = true)
    @NotEmpty(message = "课题名称不能为空")
    private String projectName;

    @ApiModelProperty(value = "课题执行开始时间", name = "executedStartDate", required = true)
    @NotNull(message = "课题执行开始时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date executedStartDate;

    @ApiModelProperty(value = "课题执行结束时间", name = "executedEndDate", required = true)
    @NotNull(message = "课题执行结束时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date executedEndDate;

    @ApiModelProperty(value = "领域组id", name = "domainGroupId", required = true)
    @NotEmpty(message = "领域组不能为空")
    private String domainGroupId;

    @ApiModelProperty(value = "课题执行企业id", name = "executeCorpinfoId", required = true)
    @NotNull(message = "课题执行企业不能为空")
    private Long executeCorpinfoId;


    @ApiModelProperty(value = "课题信息", name = "projectTaskInfoAddCmdList")
    private List<ProjectTaskInfoAddCmd> projectTaskInfoAddCmdList;

    @ApiModelProperty(value = "课题领域组人员信息", name = "projectTaskGroupUserAddCmdList")
    private List<ProjectTaskGroupUserAddCmd> projectTaskGroupUserAddCmdList;

    @ApiModelProperty(value = "课题评审人员信息", name = "projectTaskScoreInfoAddCmdList")
    private List<ProjectTaskScoreInfoAddCmd> projectTaskScoreInfoAddCmdList;
}

