From 4405c0349e496aabf61730ecb20094c8675c3efd Mon Sep 17 00:00:00 2001 From: glax Date: Mon, 26 May 2025 01:44:36 +0200 Subject: [PATCH] Working --- .../20250525221352_Initial.Designer.cs | 148 ++++++++++++++++++ API/Migrations/20250525221352_Initial.cs | 125 +++++++++++++++ API/Migrations/ContextModelSnapshot.cs | 145 +++++++++++++++++ SteamGameTimeTrack.sln.DotSettings.user | 8 + 4 files changed, 426 insertions(+) create mode 100644 API/Migrations/20250525221352_Initial.Designer.cs create mode 100644 API/Migrations/20250525221352_Initial.cs create mode 100644 API/Migrations/ContextModelSnapshot.cs create mode 100644 SteamGameTimeTrack.sln.DotSettings.user diff --git a/API/Migrations/20250525221352_Initial.Designer.cs b/API/Migrations/20250525221352_Initial.Designer.cs new file mode 100644 index 0000000..3517d21 --- /dev/null +++ b/API/Migrations/20250525221352_Initial.Designer.cs @@ -0,0 +1,148 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using SQLiteEF; + +#nullable disable + +namespace API.Migrations +{ + [DbContext(typeof(Context))] + [Migration("20250525221352_Initial")] + partial class Initial + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "9.0.5"); + + modelBuilder.Entity("GamePlayer", b => + { + b.Property("GamesAppId") + .HasColumnType("INTEGER"); + + b.Property("PlayedBySteamId") + .HasColumnType("INTEGER"); + + b.HasKey("GamesAppId", "PlayedBySteamId"); + + b.HasIndex("PlayedBySteamId"); + + b.ToTable("GamePlayer"); + }); + + modelBuilder.Entity("SQLiteEF.Game", b => + { + b.Property("AppId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("AppId"); + + b.ToTable("Games"); + }); + + modelBuilder.Entity("SQLiteEF.Player", b => + { + b.Property("SteamId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AvatarUrl") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("ProfileUrl") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.HasKey("SteamId"); + + b.ToTable("Players"); + }); + + modelBuilder.Entity("SQLiteEF.TrackedTime", b => + { + b.Property("TimeStamp") + .HasColumnType("TEXT"); + + b.Property("GameAppId") + .HasColumnType("INTEGER"); + + b.Property("PlayerSteamId") + .HasColumnType("INTEGER"); + + b.Property("TimePlayed") + .HasColumnType("INTEGER"); + + b.HasKey("TimeStamp"); + + b.HasIndex("GameAppId"); + + b.HasIndex("PlayerSteamId"); + + b.ToTable("TrackedTime"); + }); + + modelBuilder.Entity("GamePlayer", b => + { + b.HasOne("SQLiteEF.Game", null) + .WithMany() + .HasForeignKey("GamesAppId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SQLiteEF.Player", null) + .WithMany() + .HasForeignKey("PlayedBySteamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SQLiteEF.TrackedTime", b => + { + b.HasOne("SQLiteEF.Game", "Game") + .WithMany("TrackedTimes") + .HasForeignKey("GameAppId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SQLiteEF.Player", "Player") + .WithMany("TrackedTimes") + .HasForeignKey("PlayerSteamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Game"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("SQLiteEF.Game", b => + { + b.Navigation("TrackedTimes"); + }); + + modelBuilder.Entity("SQLiteEF.Player", b => + { + b.Navigation("TrackedTimes"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/API/Migrations/20250525221352_Initial.cs b/API/Migrations/20250525221352_Initial.cs new file mode 100644 index 0000000..8ac7035 --- /dev/null +++ b/API/Migrations/20250525221352_Initial.cs @@ -0,0 +1,125 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace API.Migrations +{ + /// + public partial class Initial : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Games", + columns: table => new + { + AppId = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Name = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Games", x => x.AppId); + }); + + migrationBuilder.CreateTable( + name: "Players", + columns: table => new + { + SteamId = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Name = table.Column(type: "TEXT", nullable: false), + ProfileUrl = table.Column(type: "TEXT", nullable: false), + AvatarUrl = table.Column(type: "TEXT", nullable: false), + UpdatedAt = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Players", x => x.SteamId); + }); + + migrationBuilder.CreateTable( + name: "GamePlayer", + columns: table => new + { + GamesAppId = table.Column(type: "INTEGER", nullable: false), + PlayedBySteamId = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_GamePlayer", x => new { x.GamesAppId, x.PlayedBySteamId }); + table.ForeignKey( + name: "FK_GamePlayer_Games_GamesAppId", + column: x => x.GamesAppId, + principalTable: "Games", + principalColumn: "AppId", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_GamePlayer_Players_PlayedBySteamId", + column: x => x.PlayedBySteamId, + principalTable: "Players", + principalColumn: "SteamId", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "TrackedTime", + columns: table => new + { + TimeStamp = table.Column(type: "TEXT", nullable: false), + GameAppId = table.Column(type: "INTEGER", nullable: false), + PlayerSteamId = table.Column(type: "INTEGER", nullable: false), + TimePlayed = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_TrackedTime", x => x.TimeStamp); + table.ForeignKey( + name: "FK_TrackedTime_Games_GameAppId", + column: x => x.GameAppId, + principalTable: "Games", + principalColumn: "AppId", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_TrackedTime_Players_PlayerSteamId", + column: x => x.PlayerSteamId, + principalTable: "Players", + principalColumn: "SteamId", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_GamePlayer_PlayedBySteamId", + table: "GamePlayer", + column: "PlayedBySteamId"); + + migrationBuilder.CreateIndex( + name: "IX_TrackedTime_GameAppId", + table: "TrackedTime", + column: "GameAppId"); + + migrationBuilder.CreateIndex( + name: "IX_TrackedTime_PlayerSteamId", + table: "TrackedTime", + column: "PlayerSteamId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "GamePlayer"); + + migrationBuilder.DropTable( + name: "TrackedTime"); + + migrationBuilder.DropTable( + name: "Games"); + + migrationBuilder.DropTable( + name: "Players"); + } + } +} diff --git a/API/Migrations/ContextModelSnapshot.cs b/API/Migrations/ContextModelSnapshot.cs new file mode 100644 index 0000000..5ef4289 --- /dev/null +++ b/API/Migrations/ContextModelSnapshot.cs @@ -0,0 +1,145 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using SQLiteEF; + +#nullable disable + +namespace API.Migrations +{ + [DbContext(typeof(Context))] + partial class ContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "9.0.5"); + + modelBuilder.Entity("GamePlayer", b => + { + b.Property("GamesAppId") + .HasColumnType("INTEGER"); + + b.Property("PlayedBySteamId") + .HasColumnType("INTEGER"); + + b.HasKey("GamesAppId", "PlayedBySteamId"); + + b.HasIndex("PlayedBySteamId"); + + b.ToTable("GamePlayer"); + }); + + modelBuilder.Entity("SQLiteEF.Game", b => + { + b.Property("AppId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("AppId"); + + b.ToTable("Games"); + }); + + modelBuilder.Entity("SQLiteEF.Player", b => + { + b.Property("SteamId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AvatarUrl") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("ProfileUrl") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.HasKey("SteamId"); + + b.ToTable("Players"); + }); + + modelBuilder.Entity("SQLiteEF.TrackedTime", b => + { + b.Property("TimeStamp") + .HasColumnType("TEXT"); + + b.Property("GameAppId") + .HasColumnType("INTEGER"); + + b.Property("PlayerSteamId") + .HasColumnType("INTEGER"); + + b.Property("TimePlayed") + .HasColumnType("INTEGER"); + + b.HasKey("TimeStamp"); + + b.HasIndex("GameAppId"); + + b.HasIndex("PlayerSteamId"); + + b.ToTable("TrackedTime"); + }); + + modelBuilder.Entity("GamePlayer", b => + { + b.HasOne("SQLiteEF.Game", null) + .WithMany() + .HasForeignKey("GamesAppId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SQLiteEF.Player", null) + .WithMany() + .HasForeignKey("PlayedBySteamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SQLiteEF.TrackedTime", b => + { + b.HasOne("SQLiteEF.Game", "Game") + .WithMany("TrackedTimes") + .HasForeignKey("GameAppId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SQLiteEF.Player", "Player") + .WithMany("TrackedTimes") + .HasForeignKey("PlayerSteamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Game"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("SQLiteEF.Game", b => + { + b.Navigation("TrackedTimes"); + }); + + modelBuilder.Entity("SQLiteEF.Player", b => + { + b.Navigation("TrackedTimes"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/SteamGameTimeTrack.sln.DotSettings.user b/SteamGameTimeTrack.sln.DotSettings.user new file mode 100644 index 0000000..833d61c --- /dev/null +++ b/SteamGameTimeTrack.sln.DotSettings.user @@ -0,0 +1,8 @@ + + ForceIncluded + ForceIncluded + ForceIncluded + ForceIncluded + ForceIncluded + ForceIncluded + ForceIncluded \ No newline at end of file