using e_suite.Database.Audit.UnitTests.Helpers.Tables;
using eSuite.Core.Clock;
using Microsoft.EntityFrameworkCore;

namespace e_suite.Database.Audit.UnitTests.Helpers;

public class TestDbContext : AuditableEntityContext
{
    public TestDbContext(DbContextOptions<TestDbContext> options, IClock clock) : base(options, clock)
    {
    }
    
    public DbSet<GeneralComment> GeneralComments { get; set; } = null!;
    public DbSet<RecordedComment> RecordedComments { get; set; } = null!;
    public DbSet<EntryWithName> EntriesWithName { get; set; } = null!;
    public DbSet<LinkedEntryWithName> LinkedEntryWithName { get; set; } = null!;
    public DbSet<SecretValue> SecretValues { get; set; } = null!;

    public DbSet<GrandParentValue> GrandParentValues { get; set; } = null!;
    public DbSet<ParentValue> ParentValues { get; set; } = null!;
    public DbSet<ChildValue> ChildValues { get; set; } = null!;

    public DbSet<SimpleTreeValue> SimpleTreeValues { get; set; } = null!;

    public DbSet<DeletableTreeValue> DeletableTreeValues { get; set; } = null!;

    public DbSet<TableWithEnums> TableWithEnums { get; set; } = null!;

    public DbSet<TableWithDisplayEnums> TableWithDisplayEnums { get; set; } = null!;

    public DbSet<TableWithLastUpdated> TableWithLastUpdateds { get; set; } = null!;

    public DbSet<ChildTableWithLastUpdated> ChildTableWithLastUpdateds { get; set; } = null!;
}