using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }

    public DbSet<User> Users => Set<User>();
    public DbSet<DigitizationBatch> DigitizationBatches => Set<DigitizationBatch>();
    public DbSet<ScannedDocument> ScannedDocuments => Set<ScannedDocument>();
    public DbSet<DraftPatient> DraftPatients => Set<DraftPatient>();
    public DbSet<DraftEncounter> DraftEncounters => Set<DraftEncounter>();
    public DbSet<DraftObservation> DraftObservations => Set<DraftObservation>();
    public DbSet<DigitizationEvent> DigitizationEvents => Set<DigitizationEvent>();
    public DbSet<RefreshToken> RefreshTokens => Set<RefreshToken>();
    public DbSet<AuthAuditEvent> AuthAuditEvents => Set<AuthAuditEvent>();
    public DbSet<IdempotencyRecord> IdempotencyRecords => Set<IdempotencyRecord>();
    public DbSet<Patient> Patients => Set<Patient>();
    public DbSet<Encounter> Encounters => Set<Encounter>();
    public DbSet<Observation> Observations => Set<Observation>();
    public DbSet<OutboxEvent> OutboxEvents => Set<OutboxEvent>();
    public DbSet<AlertThreshold> AlertThresholds => Set<AlertThreshold>();
    public DbSet<ClinicalAlert> ClinicalAlerts => Set<ClinicalAlert>();
    public DbSet<LiveEncounter> LiveEncounters => Set<LiveEncounter>();
    public DbSet<LiveObservation> LiveObservations => Set<LiveObservation>();
    public DbSet<PromotionAttempt> PromotionAttempts => Set<PromotionAttempt>();
    public DbSet<CoverSheet> CoverSheets => Set<CoverSheet>();
    public DbSet<OcrResult> OcrResults => Set<OcrResult>();
    
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);
    }
}