using back.DataModels; using Microsoft.EntityFrameworkCore; namespace back.context; public class PersonContext : DbContext { private DbSet Persons { get; set; } public PersonContext(DbContextOptions options) : base(options) { // Ensure database is created Database.EnsureCreated(); } public async Task GetById(string id) { return await GetById(Guid.Parse(id)); } public async Task GetById(Guid id) { return await Persons.FindAsync(id); } public async Task GetTotalItems() { return await Persons.CountAsync(); } public async Task> GetPage(int page = 1, int pageSize = 20) { if (page < 1) page = 1; if (pageSize < 1) pageSize = 20; return await Persons .OrderByDescending(p => p.CreatedAt) .Skip((page - 1) * pageSize) .Take(pageSize) .ToListAsync(); } public async Task Exists(PersonModel? photo) { if (photo == null) return false; if (string.IsNullOrEmpty(photo.Id)) return false; return await Persons.AnyAsync(p => p.Id == photo.Id); } public async Task Exists(string id) { return await Persons.AnyAsync(p => p.Id == id); } }