package com.zhongshu.card.client.model.project;

import com.github.microservice.auth.security.type.AuthType;
import com.zhongshu.card.client.model.base.SuperParam;
import com.zhongshu.card.client.type.OrganizationState;
import com.zhongshu.card.client.type.ProjectType;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 保存项目信息的模型
 *
 * @author TRX
 * @date 2024/5/31
 */
@Data
public class ProjectSaveParam extends SuperParam {

    @Schema(description = "机构名称", required = true)
    @NotEmpty(message = "name不能为空")
    private String name;

    @NotEmpty
    @Schema(description = "编码、项目ID")
    private String code;

    @Schema(description = "机构类型")
    @Hidden
    private AuthType authType = AuthType.Enterprise;

    @Schema(description = "项目类型")
    private ProjectType dataAuthType;

    @NotNull
    @Schema(description = "机构状态")
    private OrganizationState state;

    @Schema(description = "管理员userId")
    private List<String> managerUserIds = new ArrayList<>();

}
