using Fitness_core_BE.Models; namespace Fitness_core_BE.Interfaces { public interface IGymRoleRepository { Task> GetRolesByClientId(Guid clientId); Task GetRoleById(Guid gymRoleId); Task CreateRole(GymRole role); Task UpdateRole(GymRole role); Task DeleteRole(GymRole role); Task ReplacePermissions(Guid gymRoleId, IEnumerable navKeys); Task> GetPermissionKeys(Guid gymRoleId); // Returns false if the staff member doesn't exist or doesn't belong to clientId (tenant isolation), // or if gymRoleId is supplied but doesn't belong to clientId either. Task AssignStaffRole(Guid staffId, Guid clientId, Guid? gymRoleId); } }