using Microsoft.EntityFrameworkCore; using Nashel.Modules.Identity.Domain.Aggregates; using Nashel.Modules.Identity.Domain.Repositories; using Nashel.Modules.Identity.Infrastructure.Persistence; namespace Nashel.Modules.Identity.Infrastructure.Repositories; public class AccountRepository : IAccountRepository { private readonly IdentityDbContext _context; public AccountRepository(IdentityDbContext context) { _context = context; } public async Task AddAsync(Account account, CancellationToken cancellationToken) { await _context.Accounts.AddAsync(account, cancellationToken); await _context.SaveChangesAsync(cancellationToken); } public async Task GetByIdAsync(Guid id, CancellationToken cancellationToken) { return await _context.Accounts.FindAsync(new object[] { id }, cancellationToken); } public async Task GetByPhoneAsync(string phone, CancellationToken cancellationToken) { return await _context.Accounts.FirstOrDefaultAsync(a => a.Phone == phone, cancellationToken); } public async Task UpdateAsync(Account account, CancellationToken cancellationToken) { _context.Accounts.Update(account); await _context.SaveChangesAsync(cancellationToken); } }