package com.njcn.rdms.module.project.controller.admin.product.vo.member;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.util.List;

@Schema(description = "管理后台 - 产品团队成员批量移出 Request VO")
@Data
public class ProductMemberBatchInactiveReqVO {

    /**
     * 批量上限沿用需求约定的 200，超过走 Bean Validation 直接 400 拦截。
     * 经理、已失效、重复 memberId 等业务规则由 Service 兜底，不在此体现。
     */
    @Schema(description = "待移出的成员关系 ID 列表，长度 [1, 200]", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "请至少选择一名成员")
    @Size(max = 200, message = "单次批量移出成员不能超过 200 人")
    private List<Long> memberIds;

    @Schema(description = "移出原因，单一字符串应用于本批所有成员", example = "组织架构调整，本批成员退出当前产品团队")
    @Size(max = 500, message = "移出原因长度不能超过500个字符")
    private String reason;

}
