using Microsoft.EntityFrameworkCore; using SPMS.Domain.Entities; using SPMS.Domain.Interfaces; namespace SPMS.Infrastructure.Persistence.Repositories; public class AdminRepository : Repository, IAdminRepository { public AdminRepository(AppDbContext context) : base(context) { } public async Task GetByEmailAsync(string email) { return await _dbSet .FirstOrDefaultAsync(a => a.Email == email && !a.IsDeleted); } public async Task GetByAdminCodeAsync(string adminCode) { return await _dbSet .FirstOrDefaultAsync(a => a.AdminCode == adminCode && !a.IsDeleted); } public async Task EmailExistsAsync(string email, long? excludeId = null) { var query = _dbSet.Where(a => a.Email == email && !a.IsDeleted); if (excludeId.HasValue) query = query.Where(a => a.Id != excludeId.Value); return await query.AnyAsync(); } }