using Microsoft.EntityFrameworkCore;
using Tiku.Domain.Content;
using Tiku.Domain.QuestionBanks;

namespace Tiku.Infrastructure.Persistence;

public sealed partial class TikuDbContext
{
    public DbSet<QuestionBank> QuestionBanks => Set<QuestionBank>();
    public DbSet<Question> Questions => Set<Question>();
    public DbSet<QuestionVersion> QuestionVersions => Set<QuestionVersion>();
    public DbSet<ContentEntry> ContentEntries => Set<ContentEntry>();
    public DbSet<ContentNode> ContentNodes => Set<ContentNode>();
    public DbSet<QuestionCollection> QuestionCollections => Set<QuestionCollection>();
    public DbSet<QuestionCollectionItem> QuestionCollectionItems => Set<QuestionCollectionItem>();
    public DbSet<PracticeBlueprint> PracticeBlueprints => Set<PracticeBlueprint>();
    public DbSet<VocabularyUnit> VocabularyUnits => Set<VocabularyUnit>();
    public DbSet<VocabularyWord> VocabularyWords => Set<VocabularyWord>();
    public DbSet<UserWordProgress> UserWordProgress => Set<UserWordProgress>();
    public DbSet<UserWordFavorite> UserWordFavorites => Set<UserWordFavorite>();
    public DbSet<HandbookSubject> HandbookSubjects => Set<HandbookSubject>();
    public DbSet<HandbookChapter> HandbookChapters => Set<HandbookChapter>();
    public DbSet<HandbookEntry> HandbookEntries => Set<HandbookEntry>();
    public DbSet<QuestionTypeGroup> QuestionTypeGroups => Set<QuestionTypeGroup>();
    public DbSet<SubjectShare> SubjectShares => Set<SubjectShare>();
    public DbSet<ContentAsset> ContentAssets => Set<ContentAsset>();
    public DbSet<ContentAssetAccessEvent> ContentAssetAccessEvents => Set<ContentAssetAccessEvent>();
    public DbSet<ContentAssetSecurityScanEvent> ContentAssetSecurityScanEvents => Set<ContentAssetSecurityScanEvent>();
    public DbSet<ContentImportJob> ContentImportJobs => Set<ContentImportJob>();
    public DbSet<ContentImportItem> ContentImportItems => Set<ContentImportItem>();
    public DbSet<ContentImportIssue> ContentImportIssues => Set<ContentImportIssue>();
    public DbSet<ImageAsset> Images => Set<ImageAsset>();
    public DbSet<AppAsset> AppAssets => Set<AppAsset>();
    public DbSet<VideoExplanation> VideoExplanations => Set<VideoExplanation>();
    public DbSet<QuestionVideo> QuestionVideos => Set<QuestionVideo>();
    public DbSet<VideoPlaybackProgress> VideoPlaybackProgress => Set<VideoPlaybackProgress>();
    public DbSet<TenantQuestionBankPreference> TenantQuestionBankPreferences => Set<TenantQuestionBankPreference>();
    public DbSet<TenantQuestionReference> TenantQuestionReferences => Set<TenantQuestionReference>();
    public DbSet<AiRecommendationReport> AiRecommendationReports => Set<AiRecommendationReport>();
}