// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using RR3CommunityServer.Data;

#nullable disable

namespace RR3CommunityServer.Migrations
{
    [DbContext(typeof(RR3DbContext))]
    [Migration("20260224010029_AddAnalyticsTracking")]
    partial class AddAnalyticsTracking
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder.HasAnnotation("ProductVersion", "8.0.11");

            modelBuilder.Entity("RR3CommunityServer.Data.AnalyticsEvent", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("EventData")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("EventType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("SessionId")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("Timestamp")
                        .HasColumnType("TEXT");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AnalyticsEvents");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Car", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Available")
                        .HasColumnType("INTEGER");

                    b.Property<int>("BasePerformanceRating")
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("CashPrice")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ClassType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("CustomAuthor")
                        .HasColumnType("TEXT");

                    b.Property<string>("CustomVersion")
                        .HasColumnType("TEXT");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT");

                    b.Property<int>("GoldPrice")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsCustom")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Manufacturer")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("Year")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Cars");

                    b.HasData(
                        new
                        {
                            Id = 1,
                            Available = true,
                            BasePerformanceRating = 45,
                            CarId = "nissan_silvia_s15",
                            CashPrice = 25000,
                            ClassType = "C",
                            GoldPrice = 0,
                            IsCustom = false,
                            Manufacturer = "Nissan",
                            Name = "Nissan Silvia Spec-R",
                            Year = 0
                        },
                        new
                        {
                            Id = 2,
                            Available = true,
                            BasePerformanceRating = 58,
                            CarId = "ford_focus_rs",
                            CashPrice = 85000,
                            ClassType = "B",
                            GoldPrice = 150,
                            IsCustom = false,
                            Manufacturer = "Ford",
                            Name = "Ford Focus RS",
                            Year = 0
                        },
                        new
                        {
                            Id = 3,
                            Available = true,
                            BasePerformanceRating = 72,
                            CarId = "porsche_911_gt3",
                            CashPrice = 0,
                            ClassType = "A",
                            GoldPrice = 350,
                            IsCustom = false,
                            Manufacturer = "Porsche",
                            Name = "Porsche 911 GT3 RS",
                            Year = 0
                        },
                        new
                        {
                            Id = 4,
                            Available = true,
                            BasePerformanceRating = 88,
                            CarId = "ferrari_488_gtb",
                            CashPrice = 0,
                            ClassType = "S",
                            GoldPrice = 750,
                            IsCustom = false,
                            Manufacturer = "Ferrari",
                            Name = "Ferrari 488 GTB",
                            Year = 0
                        },
                        new
                        {
                            Id = 5,
                            Available = true,
                            BasePerformanceRating = 105,
                            CarId = "mclaren_p1_gtr",
                            CashPrice = 0,
                            ClassType = "R",
                            GoldPrice = 1500,
                            IsCustom = false,
                            Manufacturer = "McLaren",
                            Name = "McLaren P1 GTR",
                            Year = 0
                        });
                });

            modelBuilder.Entity("RR3CommunityServer.Data.CarUpgrade", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("CashCost")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Level")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PerformanceIncrease")
                        .HasColumnType("INTEGER");

                    b.Property<string>("UpgradeType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("CarUpgrades");

                    b.HasData(
                        new
                        {
                            Id = 1,
                            CarId = "nissan_silvia_s15",
                            CashCost = 5000,
                            Level = 1,
                            PerformanceIncrease = 3,
                            UpgradeType = "engine"
                        },
                        new
                        {
                            Id = 2,
                            CarId = "nissan_silvia_s15",
                            CashCost = 3000,
                            Level = 1,
                            PerformanceIncrease = 2,
                            UpgradeType = "tires"
                        },
                        new
                        {
                            Id = 3,
                            CarId = "nissan_silvia_s15",
                            CashCost = 4000,
                            Level = 1,
                            PerformanceIncrease = 2,
                            UpgradeType = "suspension"
                        },
                        new
                        {
                            Id = 4,
                            CarId = "nissan_silvia_s15",
                            CashCost = 3500,
                            Level = 1,
                            PerformanceIncrease = 2,
                            UpgradeType = "brakes"
                        },
                        new
                        {
                            Id = 5,
                            CarId = "nissan_silvia_s15",
                            CashCost = 4500,
                            Level = 1,
                            PerformanceIncrease = 3,
                            UpgradeType = "drivetrain"
                        });
                });

            modelBuilder.Entity("RR3CommunityServer.Data.CareerProgress", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<double>("BestTime")
                        .HasColumnType("REAL");

                    b.Property<bool>("Completed")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("CompletedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("EventName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("SeriesName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("StarsEarned")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("CareerProgress");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.CatalogItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Available")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<decimal>("Price")
                        .HasColumnType("TEXT");

                    b.Property<string>("Sku")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("CatalogItems");

                    b.HasData(
                        new
                        {
                            Id = 1,
                            Available = true,
                            Name = "1000 Gold",
                            Price = 0.99m,
                            Sku = "com.ea.rr3.gold_1000",
                            Type = "currency"
                        },
                        new
                        {
                            Id = 2,
                            Available = true,
                            Name = "Starter Car",
                            Price = 0m,
                            Sku = "com.ea.rr3.car_tier1",
                            Type = "car"
                        },
                        new
                        {
                            Id = 3,
                            Available = true,
                            Name = "Engine Upgrade",
                            Price = 4.99m,
                            Sku = "com.ea.rr3.upgrade_engine",
                            Type = "upgrade"
                        },
                        new
                        {
                            Id = 4,
                            Available = true,
                            Name = "100 Gold",
                            Price = 0m,
                            Sku = "com.ea.rr3.gold_100",
                            Type = "currency"
                        },
                        new
                        {
                            Id = 5,
                            Available = true,
                            Name = "500 Gold",
                            Price = 0m,
                            Sku = "com.ea.rr3.gold_500",
                            Type = "currency"
                        },
                        new
                        {
                            Id = 6,
                            Available = true,
                            Name = "1000 Gold",
                            Price = 0m,
                            Sku = "com.ea.rr3.gold_1000",
                            Type = "currency"
                        },
                        new
                        {
                            Id = 7,
                            Available = true,
                            Name = "5000 Gold",
                            Price = 0m,
                            Sku = "com.ea.rr3.gold_5000",
                            Type = "currency"
                        });
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Club", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsPublic")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsRecruiting")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MaxMembers")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("OwnerId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Tag")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("TotalPoints")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("OwnerId");

                    b.ToTable("Clubs");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.ClubMember", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("ClubId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ContributedPoints")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("JoinedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("Role")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ClubId");

                    b.HasIndex("UserId");

                    b.ToTable("ClubMembers");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.CompetitiveRating", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Division")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("DivisionRank")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Draws")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastMatchAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("Losses")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Rating")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Wins")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("CompetitiveRatings");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.DailyReward", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("CashAmount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Claimed")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("ClaimedAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("GoldAmount")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("RewardDate")
                        .HasColumnType("TEXT");

                    b.Property<int>("Streak")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("DailyRewards");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Device", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("DeviceId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("HardwareId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastSeenAt")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("Devices");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Event", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Active")
                        .HasColumnType("INTEGER");

                    b.Property<int>("CashReward")
                        .HasColumnType("INTEGER");

                    b.Property<string>("EventCode")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("EventOrder")
                        .HasColumnType("INTEGER");

                    b.Property<string>("EventType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("GoldReward")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Laps")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("RequiredCarClass")
                        .HasColumnType("TEXT");

                    b.Property<int>("RequiredPR")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SeriesName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("SeriesOrder")
                        .HasColumnType("INTEGER");

                    b.Property<double?>("TargetTime")
                        .HasColumnType("REAL");

                    b.Property<string>("Track")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("XPReward")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Events");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.EventAttempt", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Completed")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("CompletedAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("EventId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("StartedAt")
                        .HasColumnType("TEXT");

                    b.Property<double?>("TimeSeconds")
                        .HasColumnType("REAL");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("EventId");

                    b.HasIndex("UserId");

                    b.ToTable("EventAttempts");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.EventCompletion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<double>("BestTime")
                        .HasColumnType("REAL");

                    b.Property<int>("CompletionCount")
                        .HasColumnType("INTEGER");

                    b.Property<int>("EventId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("FirstCompletedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastCompletedAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("EventId");

                    b.HasIndex("UserId");

                    b.ToTable("EventCompletions");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Friend", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("User1Id")
                        .HasColumnType("INTEGER");

                    b.Property<int>("User2Id")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("User1Id");

                    b.HasIndex("User2Id");

                    b.ToTable("Friends");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.FriendInvitation", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("ExpiresAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("ReceiverId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("RespondedAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("SenderId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("ReceiverId");

                    b.HasIndex("SenderId");

                    b.ToTable("FriendInvitations");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.GameAsset", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AccessCount")
                        .HasColumnType("INTEGER");

                    b.Property<string>("AssetId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("AssetType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("CarId")
                        .HasColumnType("TEXT");

                    b.Property<string>("Category")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<long?>("CompressedSize")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ContentType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("CustomAuthor")
                        .HasColumnType("TEXT");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("DownloadedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("EaCdnPath")
                        .HasColumnType("TEXT");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("FileSha256")
                        .HasColumnType("TEXT");

                    b.Property<long>("FileSize")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsAvailable")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsCustomContent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsRequired")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastAccessedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("LocalPath")
                        .HasColumnType("TEXT");

                    b.Property<string>("Md5Hash")
                        .HasColumnType("TEXT");

                    b.Property<string>("OriginalUrl")
                        .HasColumnType("TEXT");

                    b.Property<string>("TrackId")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("UploadedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("Version")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("GameAssets");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.GhostData", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("Downloads")
                        .HasColumnType("INTEGER");

                    b.Property<double>("RaceTime")
                        .HasColumnType("REAL");

                    b.Property<string>("TelemetryData")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Track")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("UploadedAt")
                        .HasColumnType("TEXT");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("GhostData");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Gift", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("Amount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Claimed")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("ClaimedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("ExpiresAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("GiftType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Message")
                        .HasColumnType("TEXT");

                    b.Property<int>("ReceiverId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SenderId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("SentAt")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("ReceiverId");

                    b.HasIndex("SenderId");

                    b.ToTable("Gifts");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.LeaderboardEntry", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarName")
                        .HasColumnType("TEXT");

                    b.Property<string>("PlayerName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("RecordCategory")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("RecordType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("SubmittedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("SynergyId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<double>("TimeSeconds")
                        .HasColumnType("REAL");

                    b.Property<string>("TrackName")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("LeaderboardEntries");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.MatchmakingQueue", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarClass")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("GameMode")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("MatchedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("QueuedAt")
                        .HasColumnType("TEXT");

                    b.Property<int?>("SessionId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Track")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SessionId");

                    b.HasIndex("UserId");

                    b.ToTable("MatchmakingQueues");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.ModPack", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Author")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("CarIds")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT");

                    b.Property<int>("DownloadCount")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("PackId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<double>("Rating")
                        .HasColumnType("REAL");

                    b.Property<string>("TrackIds")
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("Version")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("ModPacks");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Notification", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("ExpiresAt")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsRead")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Message")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("Notifications");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.OwnedCar", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("CarName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("ClassType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Manufacturer")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("PerformanceRating")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("PurchasedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("PurchasedUpgrades")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("UpgradeLevel")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("OwnedCars");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.PersonalRecord", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("AchievedAt")
                        .HasColumnType("TEXT");

                    b.Property<double>("BestTimeSeconds")
                        .HasColumnType("REAL");

                    b.Property<string>("CarName")
                        .HasColumnType("TEXT");

                    b.Property<double?>("ImprovementSeconds")
                        .HasColumnType("REAL");

                    b.Property<DateTime?>("PreviousBestTime")
                        .HasColumnType("TEXT");

                    b.Property<string>("RecordCategory")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("RecordType")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("SynergyId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("TotalAttempts")
                        .HasColumnType("INTEGER");

                    b.Property<string>("TrackName")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("PersonalRecords");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.PlayerSave", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<string>("SaveDataJson")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("SynergyId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<long>("Version")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("PlayerSaves");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Purchase", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("ItemId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("OrderId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<decimal>("Price")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("PurchaseTime")
                        .HasColumnType("TEXT");

                    b.Property<string>("Sku")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("SynergyId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Token")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Purchases");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.RaceParticipant", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int?>("FinishPosition")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsReady")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("JoinedAt")
                        .HasColumnType("TEXT");

                    b.Property<double?>("RaceTime")
                        .HasColumnType("REAL");

                    b.Property<int?>("RewardCash")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("RewardGold")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("RewardXP")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SessionId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SessionId");

                    b.HasIndex("UserId");

                    b.ToTable("RaceParticipants");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.RaceSession", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarClass")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("FinishedAt")
                        .HasColumnType("TEXT");

                    b.Property<int?>("HostId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("HostUserId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsPrivate")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MaxPlayers")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SessionCode")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("StartedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Track")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("HostId");

                    b.ToTable("RaceSessions");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Session", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("DeviceId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("ExpiresAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("SessionId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("SynergyId")
                        .HasColumnType("TEXT");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Sessions");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.TimeTrial", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Active")
                        .HasColumnType("INTEGER");

                    b.Property<string>("CarName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("CashReward")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("EndDate")
                        .HasColumnType("TEXT");

                    b.Property<int>("GoldReward")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("StartDate")
                        .HasColumnType("TEXT");

                    b.Property<double>("TargetTime")
                        .HasColumnType("REAL");

                    b.Property<string>("TrackName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("TimeTrials");

                    b.HasData(
                        new
                        {
                            Id = 1,
                            Active = true,
                            CarName = "Any Car",
                            CashReward = 10000,
                            EndDate = new DateTime(2026, 3, 3, 1, 0, 29, 89, DateTimeKind.Utc).AddTicks(3271),
                            GoldReward = 50,
                            Name = "Daily Sprint Challenge",
                            StartDate = new DateTime(2026, 2, 24, 1, 0, 29, 89, DateTimeKind.Utc).AddTicks(3268),
                            TargetTime = 90.5,
                            TrackName = "Silverstone National"
                        },
                        new
                        {
                            Id = 2,
                            Active = true,
                            CarName = "Any Car",
                            CashReward = 25000,
                            EndDate = new DateTime(2026, 3, 3, 1, 0, 29, 89, DateTimeKind.Utc).AddTicks(3281),
                            GoldReward = 100,
                            Name = "Speed Demon Trial",
                            StartDate = new DateTime(2026, 2, 24, 1, 0, 29, 89, DateTimeKind.Utc).AddTicks(3280),
                            TargetTime = 120.0,
                            TrackName = "Dubai Autodrome"
                        });
                });

            modelBuilder.Entity("RR3CommunityServer.Data.TimeTrialResult", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BeatTarget")
                        .HasColumnType("INTEGER");

                    b.Property<int>("CashEarned")
                        .HasColumnType("INTEGER");

                    b.Property<int>("GoldEarned")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("SubmittedAt")
                        .HasColumnType("TEXT");

                    b.Property<double>("TimeSeconds")
                        .HasColumnType("REAL");

                    b.Property<int>("TimeTrialId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("TimeTrialId");

                    b.HasIndex("UserId");

                    b.ToTable("TimeTrialResults");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.User", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("Cash")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("DeviceId")
                        .HasColumnType("TEXT");

                    b.Property<int?>("Experience")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("Gold")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("Level")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Nickname")
                        .HasColumnType("TEXT");

                    b.Property<int?>("Reputation")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SynergyId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("Users");
                });

            modelBuilder.Entity("RR3CommunityServer.Models.Account", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("EmailVerificationToken")
                        .HasColumnType("TEXT");

                    b.Property<bool>("EmailVerified")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsActive")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("LastLoginAt")
                        .HasColumnType("TEXT");

                    b.Property<string>("PasswordHash")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("PasswordResetExpiry")
                        .HasColumnType("TEXT");

                    b.Property<string>("PasswordResetToken")
                        .HasColumnType("TEXT");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Username")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("Accounts");
                });

            modelBuilder.Entity("RR3CommunityServer.Models.DeviceAccount", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AccountId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("DeviceId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("DeviceName")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastUsedAt")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LinkedAt")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("AccountId");

                    b.ToTable("DeviceAccounts");
                });

            modelBuilder.Entity("RR3CommunityServer.Models.UserSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("DeviceId")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastUpdated")
                        .HasColumnType("TEXT");

                    b.Property<string>("Mode")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("ServerUrl")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("UserSettings");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.AnalyticsEvent", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.CareerProgress", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", null)
                        .WithMany("CareerProgress")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Club", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "Owner")
                        .WithMany()
                        .HasForeignKey("OwnerId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Owner");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.ClubMember", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.Club", "Club")
                        .WithMany("Members")
                        .HasForeignKey("ClubId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Club");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.CompetitiveRating", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.EventAttempt", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.Event", "Event")
                        .WithMany()
                        .HasForeignKey("EventId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Event");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.EventCompletion", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.Event", "Event")
                        .WithMany()
                        .HasForeignKey("EventId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Event");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Friend", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "User1")
                        .WithMany()
                        .HasForeignKey("User1Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "User2")
                        .WithMany()
                        .HasForeignKey("User2Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("User1");

                    b.Navigation("User2");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.FriendInvitation", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "Receiver")
                        .WithMany()
                        .HasForeignKey("ReceiverId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "Sender")
                        .WithMany()
                        .HasForeignKey("SenderId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Receiver");

                    b.Navigation("Sender");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.GhostData", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Gift", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "Receiver")
                        .WithMany()
                        .HasForeignKey("ReceiverId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "Sender")
                        .WithMany()
                        .HasForeignKey("SenderId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Receiver");

                    b.Navigation("Sender");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.MatchmakingQueue", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.RaceSession", "Session")
                        .WithMany()
                        .HasForeignKey("SessionId");

                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Session");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Notification", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.OwnedCar", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", null)
                        .WithMany("OwnedCars")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("RR3CommunityServer.Data.RaceParticipant", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.RaceSession", "Session")
                        .WithMany("Participants")
                        .HasForeignKey("SessionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Session");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.RaceSession", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "Host")
                        .WithMany()
                        .HasForeignKey("HostId");

                    b.Navigation("Host");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.TimeTrialResult", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.TimeTrial", "TimeTrial")
                        .WithMany()
                        .HasForeignKey("TimeTrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("TimeTrial");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Models.Account", b =>
                {
                    b.HasOne("RR3CommunityServer.Data.User", "User")
                        .WithMany()
                        .HasForeignKey("UserId");

                    b.Navigation("User");
                });

            modelBuilder.Entity("RR3CommunityServer.Models.DeviceAccount", b =>
                {
                    b.HasOne("RR3CommunityServer.Models.Account", "Account")
                        .WithMany("LinkedDevices")
                        .HasForeignKey("AccountId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Account");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.Club", b =>
                {
                    b.Navigation("Members");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.RaceSession", b =>
                {
                    b.Navigation("Participants");
                });

            modelBuilder.Entity("RR3CommunityServer.Data.User", b =>
                {
                    b.Navigation("CareerProgress");

                    b.Navigation("OwnedCars");
                });

            modelBuilder.Entity("RR3CommunityServer.Models.Account", b =>
                {
                    b.Navigation("LinkedDevices");
                });
#pragma warning restore 612, 618
        }
    }
}
