using Application.Abstractions.Data; using Domain.Entities.Common; using Domain.Entities.Members; using Domain.Entities.Members.Logs; using Domain.Entities.Page; using Domain.Entities.Page.Banner; using Domain.Entities.Page.Faq; using Microsoft.EntityFrameworkCore; namespace Infrastructure.Persistence { public sealed class AppDbContext : DbContext, IAppDbContext { public AppDbContext(DbContextOptions options) : base(options) { } public DbSet Config { get; set; } public DbSet Document { get; set; } = null!; public DbSet Popup { get; set; } = null!; public DbSet FaqCategory { get; set; } = null!; public DbSet FaqItem { get; set; } = null!; public DbSet BannerPosition { get; set; } = null!; public DbSet BannerItem { get; set; } = null!; // Member Logs public DbSet Member { get; set; } = null!; public DbSet MemberLoginLog { get; set; } = null!; public DbSet MemberEmailChangeLog { get; set; } = null!; public DbSet MemberNameChangeLog { get; set; } = null!; public DbSet MemberSummaryChangeLog { get; set; } = null!; public DbSet MemberIntroChangeLog { get; set; } = null!; protected override void OnModelCreating(ModelBuilder modelBuilder) { // Apply all configurations from the current assembly modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly); } } }