SPMS_API/SPMS.Infrastructure/Persistence/Repositories/AdminRepository.cs
seonkyu.kim b11c8dc918 feat: 관리자 로그인 API 구현 (#36)
- LoginRequestDto, LoginResponseDto 추가
- IAuthService, AuthService 구현 (BCrypt 비밀번호 검증)
- AdminRepository 구현 (GetByEmailAsync)
- AuthController 추가 (POST /v1/in/auth/login)
- DI 등록 (IAuthService, IAdminRepository)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-09 22:16:25 +09:00

35 lines
970 B
C#

using Microsoft.EntityFrameworkCore;
using SPMS.Domain.Entities;
using SPMS.Domain.Interfaces;
namespace SPMS.Infrastructure.Persistence.Repositories;
public class AdminRepository : Repository<Admin>, IAdminRepository
{
public AdminRepository(AppDbContext context) : base(context)
{
}
public async Task<Admin?> GetByEmailAsync(string email)
{
return await _dbSet
.FirstOrDefaultAsync(a => a.Email == email && !a.IsDeleted);
}
public async Task<Admin?> GetByAdminCodeAsync(string adminCode)
{
return await _dbSet
.FirstOrDefaultAsync(a => a.AdminCode == adminCode && !a.IsDeleted);
}
public async Task<bool> 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();
}
}