Add region manager assignment endpoints
This commit is contained in:
@@ -18,6 +18,25 @@ public class RegionRepository(AppDBContext context) : IRegionRepository
|
||||
public async Task<bool> CodeExistsAsync(string code, Guid? excludeId = null) =>
|
||||
await context.Regions.AnyAsync(r => r.Code == code && (excludeId == null || r.Id != excludeId));
|
||||
|
||||
public async Task<Models.User?> GetUserWithRoleAsync(Guid userId) =>
|
||||
await context.Users.Include(u => u.Role).FirstOrDefaultAsync(u => u.Id == userId);
|
||||
|
||||
public async Task<List<Models.UserRegionScope>> GetManagerScopesAsync(Guid regionId) =>
|
||||
await context.UserRegionScopes
|
||||
.Include(s => s.User).ThenInclude(u => u.Role)
|
||||
.Where(s => s.FK_RegionId == regionId && s.User.IsActive && s.User.Role.Name == "RegionalManager")
|
||||
.ToListAsync();
|
||||
|
||||
public async Task<Models.UserRegionScope?> GetRegionScopeAsync(Guid userId, Guid regionId) =>
|
||||
await context.UserRegionScopes.FirstOrDefaultAsync(s => s.FK_UserId == userId && s.FK_RegionId == regionId);
|
||||
|
||||
public async Task AddRegionScopeAsync(Models.UserRegionScope scope) =>
|
||||
await context.UserRegionScopes.AddAsync(scope);
|
||||
|
||||
// Scope rows are hard-deleted (composite key user+region), same as UserRepository.ReplaceRegionScopesAsync.
|
||||
public void RemoveRegionScopes(IEnumerable<Models.UserRegionScope> scopes) =>
|
||||
context.UserRegionScopes.RemoveRange(scopes);
|
||||
|
||||
public async Task AddAsync(Models.Region entity) =>
|
||||
await context.Regions.AddAsync(entity);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user