using Data.SeaHavenIndustries.Enums; using SeaHaven.Services.DTOs; using System.Security.Claims; namespace SeaHaven.Services.Interfaces; public interface ITeamPermissionService { Task> GetProfileAsync( string userId, ClaimsPrincipal caller, CancellationToken cancellationToken); /// /// Keys the caller holds after role defaults and their own overrides. The /// user is read from the caller's identity, never from request input. /// Task> GetEffectivePermissionsAsync( ClaimsPrincipal caller, CancellationToken cancellationToken); Task> SetOverrideAsync( string userId, string permissionKey, UserPermissionState state, ClaimsPrincipal caller, CancellationToken cancellationToken); }