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