namespace FinControl.Infrastructure.Repositories; using Microsoft.EntityFrameworkCore; using FinControl.Domain.Entities; using FinControl.Domain.Repositories; using FinControl.Infrastructure.Persistence; public class AccountRepository : IAccountRepository { private readonly FinControlContext _context; public AccountRepository(FinControlContext context) { _context = context; } public async Task GetByIdAsync(Guid id) => await _context.Accounts .Include(a => a.Transactions) .FirstOrDefaultAsync(a => a.Id == id); public async Task> GetByUserIdAsync(Guid userId) => await _context.Accounts .Where(a => a.UserId == userId) .Include(a => a.Transactions) .ToListAsync(); public async Task AddAsync(Account account) { await _context.Accounts.AddAsync(account); await _context.SaveChangesAsync(); } public async Task UpdateAsync(Account account) { _context.Accounts.Update(account); await _context.SaveChangesAsync(); } public async Task DeleteAsync(Guid id) { var account = await _context.Accounts.FindAsync(id); if (account != null) { _context.Accounts.Remove(account); await _context.SaveChangesAsync(); } } }