package com.njcn.rdms.module.system.controller.admin.permission.vo.userVisibilityConfig;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

@Schema(description = "管理后台 - 用户可见性配置 Save Request VO")
@Data
public class UserVisibilityConfigSaveReqVO {

    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    @Schema(description = "可见范围类型：all / directions / projects",
            requiredMode = Schema.RequiredMode.REQUIRED, example = "directions")
    @NotBlank(message = "可见范围类型不能为空")
    private String visibilityType;

    @Schema(description = "补充可见方向ID集合（type=directions 时必填）", example = "[107, 103]")
    private List<Long> visibleDirectionIds;

    @Schema(description = "补充可见项目ID集合（type=projects 时必填，业务暂不引导）", example = "[1001, 1002]")
    private List<Long> visibleProjectIds;

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

}
