using Microsoft.EntityFrameworkCore; namespace Timeline.Entities { public class DatabaseContext : DbContext { public DatabaseContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Property(e => e.Version).HasDefaultValue(0); modelBuilder.Entity().HasIndex(e => e.Username).IsUnique(); modelBuilder.Entity().Property(e => e.UniqueId).HasDefaultValueSql("lower(hex(randomblob(16)))"); modelBuilder.Entity().Property(e => e.UsernameChangeTime).HasDefaultValueSql("datetime('now', 'utc')"); modelBuilder.Entity().Property(e => e.CreateTime).HasDefaultValueSql("datetime('now', 'utc')"); modelBuilder.Entity().Property(e => e.LastModified).HasDefaultValueSql("datetime('now', 'utc')"); modelBuilder.Entity().HasIndex(e => e.Tag).IsUnique(); modelBuilder.Entity().Property(e => e.UniqueId).HasDefaultValueSql("lower(hex(randomblob(16)))"); modelBuilder.Entity().HasIndex(e => e.Token).IsUnique(); modelBuilder.ApplyUtcDateTimeConverter(); } public DbSet Users { get; set; } = default!; public DbSet UserAvatars { get; set; } = default!; public DbSet UserPermission { get; set; } = default!; public DbSet Timelines { get; set; } = default!; public DbSet TimelinePosts { get; set; } = default!; public DbSet TimelinePostData { get; set; } = default!; public DbSet TimelineMembers { get; set; } = default!; public DbSet HighlightTimelines { get; set; } = default!; public DbSet BookmarkTimelines { get; set; } = default!; public DbSet UserConfigurations { get; set; } = default!; public DbSet RegisterCodes { get; set; } = default!; public DbSet UserRegisterInfos { get; set; } = default!; public DbSet JwtToken { get; set; } = default!; public DbSet UserTokens { get; set; } = default!; public DbSet Data { get; set; } = default!; public DbSet Migrations { get; set; } = default!; } }