package jnpf.model.authority.dto.role;

import jnpf.model.authority.dto.menu.FtbPermissionRoleAddDTO;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;

@Data
public class FtbPermissionPositionAuthorizationDTO {
    /**
     * 租户ID
     */
    @NotBlank(message = "租户ID不能为空")
    private String tenantId;

    /**
     * 模块名称
     */
    @NotBlank(message = "模块名称不能为空")
    private String moduleName;

    /**
     * 菜单WebID
     */
    @NotBlank(message = "菜单WebID不能为空")
    private String menuWebId;

    /**
     * 菜单APPID
     */
    @NotBlank(message = "菜单APPID不能为空")
    private String menuAppId;

    /**
     * 岗位权限集合
     */
    @NotNull(message = "岗位权限集合不能为空")
    private List<PositionInnerDTO> positionList = new ArrayList<>();

    @Valid
    @Data
    public static class PositionInnerDTO {
        /**
         * 岗位主键Id
         */
        @NotBlank(message = "岗位主键Id不能为空")
        private String postId;

        /**
         * 岗位名称
         */
        @NotBlank(message = "岗位名称不能为空")
        private String postName;

        /**
         * 岗位下的人员
         */
        private List<String> userIds;

        /**
         * 菜单和功能权限参数体
         */
        @Valid
        private List<FtbPermissionRoleAddDTO.PermissionRoleInnerDTO> permissionRoleInners = new ArrayList<>();
    }


}
