using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using PnvPanel.Application.Common.Interfaces; using PnvPanel.Domain.Activation; using PnvPanel.Domain.Apps; using PnvPanel.Domain.Audit; using PnvPanel.Domain.Billing; using PnvPanel.Domain.Configs; using PnvPanel.Domain.Inbounds; using PnvPanel.Domain.Instructions; using PnvPanel.Domain.News; using PnvPanel.Domain.Nodes; using PnvPanel.Domain.Plans; using PnvPanel.Domain.Pricing; using PnvPanel.Domain.Support; using PnvPanel.Domain.Telegram; using PnvPanel.Infrastructure.Identity; namespace PnvPanel.Infrastructure.Persistence; /// /// Корневой DbContext приложения: Identity-схема (пользователи/роли) + сущности домена /// (добавляются по мере реализации фич, см. docs/roadmap.md). /// public class AppDbContext(DbContextOptions options) : IdentityDbContext(options), IAppDbContext { public DbSet RefreshTokens => Set(); public DbSet ActivationRequests => Set(); public DbSet AuditLogs => Set(); public DbSet TelegramLinkTokens => Set(); public DbSet TelegramLoginRequests => Set(); public DbSet Nodes => Set(); public DbSet Inbounds => Set(); public DbSet VpnConfigs => Set(); public DbSet TrafficSamples => Set(); public DbSet ClientApps => Set(); public DbSet NewsPosts => Set(); public DbSet SupportTickets => Set(); public DbSet TicketComments => Set(); public DbSet TicketAttachments => Set(); public DbSet InstructionIntros => Set(); public DbSet InstructionTabs => Set(); public DbSet PricingSettings => Set(); public DbSet PricingDiscountTiers => Set(); public DbSet BillingSettings => Set(); public DbSet PaymentRequests => Set(); public DbSet Plans => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly); } }