namespace Distribution.Features.Role; public class RoleService(IRoleRepository repo) { public async Task> GetAllAsync() => (await repo.GetAllAsync()) .Where(r => r.IsActive) .Select(r => new RoleResponse(r.Id, r.Name, r.Level, r.IsActive, r.CreatedAt)) .ToList(); public async Task GetByIdAsync(Guid id) { var role = await repo.GetByIdAsync(id); if (role is null || !role.IsActive) return null; return new RoleResponse(role.Id, role.Name, role.Level, role.IsActive, role.CreatedAt); } public async Task?> GetPermissionsAsync(Guid roleId) { var role = await repo.GetByIdAsync(roleId); if (role is null || !role.IsActive) return null; return (await repo.GetPermissionsAsync(roleId)) .Select(rp => new RolePermissionResponse(rp.FK_PermissionId, rp.Permission.Code, rp.Permission.Description)) .ToList(); } }