using Domain.Entities.Forum.Boards; using Domain.Entities.Members; namespace Application.Abstractions.Forum; public interface IBoardPermissionService { /// /// 회원의 유효 권한 레벨 계산 /// - IsAdmin → 1000, BoardManager → 99, 그 외 → memberGrade.Order (기본 0) /// Task GetMemberPermissionLevelAsync(Member member, int boardID, CancellationToken ct); /// /// 특정 권한 레벨에 대해 회원이 접근 가능한지 확인 /// Task HasPermissionAsync(Member member, int boardID, short requiredPermission, CancellationToken ct); /// /// 게시판 매니저 정보 조회 (CanEdit/CanDelete 확인용) /// Task GetBoardManagerAsync(int boardID, int memberID, CancellationToken ct); }