diff --git a/GTRContext.cs b/GTRContext.cs index eb1b4ba..4970c4b 100644 --- a/GTRContext.cs +++ b/GTRContext.cs @@ -16,16 +16,22 @@ public GTRContext(DbContextOptions options) public virtual DbSet Favorites { get; set; } + public virtual DbSet Levels { get; set; } + public virtual DbSet LevelPoints { get; set; } public virtual DbSet Media { get; set; } + public virtual DbSet Metadata { get; set; } + public virtual DbSet PersonalBests { get; set; } public virtual DbSet PlayerPoints { get; set; } public virtual DbSet Records { get; set; } + public virtual DbSet Requests { get; set; } + public virtual DbSet Stats { get; set; } public virtual DbSet Upvotes { get; set; } @@ -66,6 +72,17 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("favorites_user_foreign"); }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("levels_pkey"); + + entity.Property(e => e.Id).ValueGeneratedNever(); + + entity.HasOne(d => d.Metadata).WithMany(p => p.Levels) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("levels_metadata_id_fkey"); + }); + modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("level_points_pkey"); }); modelBuilder.Entity(entity => @@ -77,6 +94,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("media_record_fkey"); }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("metadata_pkey"); + + entity.Property(e => e.Id).ValueGeneratedNever(); + }); + modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("personal_bests_pkey"); @@ -108,6 +132,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("records_user_foreign"); }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("requests_pkey"); + }); + modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("stats_pkey"); diff --git a/Models/Level.cs b/Models/Level.cs new file mode 100644 index 0000000..3e073aa --- /dev/null +++ b/Models/Level.cs @@ -0,0 +1,57 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using JsonApiDotNetCore.Resources.Annotations; + +namespace TNRD.Zeepkist.GTR.Database.Models; + +[Table("levels")] +[NoResource] +public partial class Level +{ + [Key] + [Column("id")] + public int Id { get; set; } + + [Column("name")] + public string Name { get; set; } = null!; + + [Column("image_url")] + public string ImageUrl { get; set; } = null!; + + [Column("created_at")] + public DateTime CreatedAt { get; set; } + + [Column("updated_at")] + public DateTime UpdatedAt { get; set; } + + [Column("workshop_id")] + public decimal WorkshopId { get; set; } + + [Column("author_id")] + public decimal AuthorId { get; set; } + + [Column("file_hash")] + public string FileHash { get; set; } = null!; + + [Column("file_url")] + public string FileUrl { get; set; } = null!; + + [Column("file_author")] + public string FileAuthor { get; set; } = null!; + + [Column("file_uid")] + public string FileUid { get; set; } = null!; + + [Column("replaced_by")] + public int? ReplacedBy { get; set; } + + [Column("deleted")] + public bool Deleted { get; set; } + + [Column("metadata_id")] + public int MetadataId { get; set; } + + [ForeignKey("MetadataId")] + [InverseProperty("Levels")] + public virtual Metadata Metadata { get; set; } = null!; +} diff --git a/Models/Metadata.cs b/Models/Metadata.cs new file mode 100644 index 0000000..133039c --- /dev/null +++ b/Models/Metadata.cs @@ -0,0 +1,48 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using JsonApiDotNetCore.Resources.Annotations; +using Microsoft.EntityFrameworkCore; + +namespace TNRD.Zeepkist.GTR.Database.Models; + +[Table("metadata")] +[NoResource] +public partial class Metadata +{ + [Column("hash")] + public string Hash { get; set; } = null!; + + [Column("valid")] + public bool Valid { get; set; } + + [Column("checkpoints")] + public int Checkpoints { get; set; } + + [Column("blocks")] + public string Blocks { get; set; } = null!; + + [Column("validation")] + public float Validation { get; set; } + + [Column("gold")] + public float Gold { get; set; } + + [Column("silver")] + public float Silver { get; set; } + + [Column("bronze")] + public float Bronze { get; set; } + + [Column("ground")] + public int Ground { get; set; } + + [Column("skybox")] + public int Skybox { get; set; } + + [Key] + [Column("id")] + public int Id { get; set; } + + [InverseProperty("Metadata")] + public virtual ICollection Levels { get; set; } = new List(); +} diff --git a/Models/Request.cs b/Models/Request.cs new file mode 100644 index 0000000..22a4fc9 --- /dev/null +++ b/Models/Request.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using JsonApiDotNetCore.Resources.Annotations; +using Microsoft.EntityFrameworkCore; + +namespace TNRD.Zeepkist.GTR.Database.Models; + +[Table("requests")] +[NoResource] +public partial class Request +{ + [Key] + [Column("id")] + public int Id { get; set; } + + [Column("workshop_id")] + public decimal WorkshopId { get; set; } + + [Column("uid")] + public string? Uid { get; set; } + + [Column("hash")] + public string? Hash { get; set; } + + [Column("date_created")] + public DateTime DateCreated { get; set; } +} diff --git a/Zeepkist.GTR.Database.csproj b/Zeepkist.GTR.Database.csproj index 8d9aec5..afe4aa8 100644 --- a/Zeepkist.GTR.Database.csproj +++ b/Zeepkist.GTR.Database.csproj @@ -6,7 +6,7 @@ enable TNRD.Zeepkist.GTR.Database TNRD.Zeepkist.GTR.Database - 3.2.1 + 3.3.0