// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; using SlipItIn.Server.Data; #nullable disable namespace SlipItIn.Server.Migrations { [DbContext(typeof(SlipItInDbContext))] [Migration("20260723193505_InitialCreate")] partial class InitialCreate { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.10") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("SlipItIn.Shared.Models.Game", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("EndedAt") .HasColumnType("timestamp with time zone"); b.Property("HostId") .HasColumnType("integer"); b.Property("LobbyCode") .IsRequired() .HasColumnType("text"); b.Property("MaxPlayers") .HasColumnType("integer"); b.Property("RoundDurationSeconds") .HasColumnType("integer"); b.Property("StartedAt") .HasColumnType("timestamp with time zone"); b.Property("Status") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("HostId"); b.HasIndex("LobbyCode") .IsUnique(); b.ToTable("Games"); }); modelBuilder.Entity("SlipItIn.Shared.Models.GameRound", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("EndedAt") .HasColumnType("timestamp with time zone"); b.Property("GameId") .HasColumnType("integer"); b.Property("RoundNumber") .HasColumnType("integer"); b.Property("StartedAt") .HasColumnType("timestamp with time zone"); b.Property("Status") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("GameId"); b.ToTable("GameRounds"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Phrase", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("CreatorId") .HasColumnType("integer"); b.Property("IsActive") .HasColumnType("boolean"); b.Property("Text") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("CreatorId"); b.ToTable("Phrases"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Player", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ConnectionId") .HasColumnType("text"); b.Property("FailedSlips") .HasColumnType("integer"); b.Property("GameId") .HasColumnType("integer"); b.Property("IsReady") .HasColumnType("boolean"); b.Property("JoinedAt") .HasColumnType("timestamp with time zone"); b.Property("Score") .HasColumnType("integer"); b.Property("SuccessfulSlips") .HasColumnType("integer"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId"); b.HasIndex("GameId", "UserId") .IsUnique(); b.ToTable("Players"); }); modelBuilder.Entity("SlipItIn.Shared.Models.PlayerCard", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AssignedAt") .HasColumnType("timestamp with time zone"); b.Property("GameRoundId") .HasColumnType("integer"); b.Property("IsUsed") .HasColumnType("boolean"); b.Property("PhraseId") .HasColumnType("integer"); b.Property("PlayerId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("GameRoundId"); b.HasIndex("PhraseId"); b.HasIndex("PlayerId"); b.ToTable("PlayerCards"); }); modelBuilder.Entity("SlipItIn.Shared.Models.SlipChallenge", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ChallengingPlayerId") .HasColumnType("integer"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("GameRoundId") .HasColumnType("integer"); b.Property("ResolvedAt") .HasColumnType("timestamp with time zone"); b.Property("Status") .HasColumnType("integer"); b.Property("TargetCardId") .HasColumnType("integer"); b.Property("TargetPlayerId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ChallengingPlayerId"); b.HasIndex("GameRoundId"); b.HasIndex("TargetCardId"); b.HasIndex("TargetPlayerId"); b.ToTable("SlipChallenges"); }); modelBuilder.Entity("SlipItIn.Shared.Models.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Email") .IsRequired() .HasColumnType("text"); b.Property("IsActive") .HasColumnType("boolean"); b.Property("PasswordHash") .IsRequired() .HasColumnType("text"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("Username") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("Email") .IsUnique(); b.HasIndex("Username") .IsUnique(); b.ToTable("Users"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Game", b => { b.HasOne("SlipItIn.Shared.Models.User", "Host") .WithMany() .HasForeignKey("HostId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Host"); }); modelBuilder.Entity("SlipItIn.Shared.Models.GameRound", b => { b.HasOne("SlipItIn.Shared.Models.Game", "Game") .WithMany("Rounds") .HasForeignKey("GameId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Game"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Phrase", b => { b.HasOne("SlipItIn.Shared.Models.User", "Creator") .WithMany() .HasForeignKey("CreatorId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Creator"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Player", b => { b.HasOne("SlipItIn.Shared.Models.Game", "Game") .WithMany("Players") .HasForeignKey("GameId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("SlipItIn.Shared.Models.User", "User") .WithMany("Players") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Game"); b.Navigation("User"); }); modelBuilder.Entity("SlipItIn.Shared.Models.PlayerCard", b => { b.HasOne("SlipItIn.Shared.Models.GameRound", "GameRound") .WithMany("ActiveCards") .HasForeignKey("GameRoundId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("SlipItIn.Shared.Models.Phrase", "Phrase") .WithMany("PlayerCards") .HasForeignKey("PhraseId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("SlipItIn.Shared.Models.Player", "Player") .WithMany("Cards") .HasForeignKey("PlayerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("GameRound"); b.Navigation("Phrase"); b.Navigation("Player"); }); modelBuilder.Entity("SlipItIn.Shared.Models.SlipChallenge", b => { b.HasOne("SlipItIn.Shared.Models.Player", "ChallengingPlayer") .WithMany() .HasForeignKey("ChallengingPlayerId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("SlipItIn.Shared.Models.GameRound", "GameRound") .WithMany("Challenges") .HasForeignKey("GameRoundId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("SlipItIn.Shared.Models.PlayerCard", "TargetCard") .WithMany() .HasForeignKey("TargetCardId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("SlipItIn.Shared.Models.Player", "TargetPlayer") .WithMany() .HasForeignKey("TargetPlayerId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("ChallengingPlayer"); b.Navigation("GameRound"); b.Navigation("TargetCard"); b.Navigation("TargetPlayer"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Game", b => { b.Navigation("Players"); b.Navigation("Rounds"); }); modelBuilder.Entity("SlipItIn.Shared.Models.GameRound", b => { b.Navigation("ActiveCards"); b.Navigation("Challenges"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Phrase", b => { b.Navigation("PlayerCards"); }); modelBuilder.Entity("SlipItIn.Shared.Models.Player", b => { b.Navigation("Cards"); }); modelBuilder.Entity("SlipItIn.Shared.Models.User", b => { b.Navigation("Players"); }); #pragma warning restore 612, 618 } } }