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);
}