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

#nullable disable

namespace KfChatDotNetBot.Migrations
{
    [DbContext(typeof(ApplicationDbContext))]
    [Migration("20260510194844_ImageMetadata")]
    partial class ImageMetadata
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder.HasAnnotation("ProductVersion", "10.0.3");

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

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

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

                    b.Property<DateTimeOffset>("Created")
                        .HasColumnType("TEXT");

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

                    b.Property<float>("CurrencyPrice")
                        .HasColumnType("REAL");

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

                    b.Property<float>("Multiplier")
                        .HasColumnType("REAL");

                    b.Property<DateTimeOffset>("Updated")
                        .HasColumnType("TEXT");

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

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

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

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

                    b.HasKey("Id");

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

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

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

                    b.Property<DateTimeOffset>("Created")
                        .HasColumnType("TEXT");

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

                    b.Property<string>("RandomSeed")
                        .IsRequired()
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("UserId");

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

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

                    b.Property<DateTimeOffset>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTimeOffset>("Expires")
                        .HasColumnType("TEXT");

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

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

                    b.HasKey("Id");

                    b.HasIndex("GamblerId");

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

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

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

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

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

                    b.Property<string>("PerkName")
                        .IsRequired()
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

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

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

                    b.Property<DateTimeOffset>("Time")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("GamblerId");

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

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

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

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

                    b.Property<DateTimeOffset>("Date")
                        .HasColumnType("TEXT");

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

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

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

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

                    b.HasKey("Id");

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

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

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

                    b.Property<DateTimeOffset>("LastSeen")
                        .HasColumnType("TEXT");

                    b.PrimitiveCollection<string>("TagList")
                        .IsRequired()
                        .HasColumnType("TEXT");

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

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

                    b.HasKey("Id");

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

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

                    b.Property<float>("Amount")
                        .HasColumnType("REAL");

                    b.Property<DateTimeOffset>("JuicedAt")
                        .HasColumnType("TEXT");

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

                    b.HasKey("Id");

                    b.HasIndex("UserId");

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

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

                    b.Property<DateTimeOffset>("Time")
                        .HasColumnType("TEXT");

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

                    b.HasKey("Id");

                    b.HasIndex("UserId");

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

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

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

                    b.Property<DateTimeOffset>("BetSeenAt")
                        .HasColumnType("TEXT");

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

                    b.Property<float>("Multiplier")
                        .HasColumnType("REAL");

                    b.Property<float>("Payout")
                        .HasColumnType("REAL");

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

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

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

                    b.Property<float>("Value")
                        .HasColumnType("REAL");

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("UserId");

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

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

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

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

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

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

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

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

                    b.Property<DateTimeOffset>("Time")
                        .HasColumnType("TEXT");

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

                    b.HasKey("Id");

                    b.HasIndex("FromId");

                    b.HasIndex("GamblerId");

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

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

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

                    b.Property<DateTimeOffset>("Time")
                        .HasColumnType("TEXT");

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

                    b.Property<DateTimeOffset>("FirstOccurence")
                        .HasColumnType("TEXT");

                    b.Property<DateTimeOffset>("LatestOccurence")
                        .HasColumnType("TEXT");

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

                    b.HasKey("Id");

                    b.HasIndex("UserId");

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

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

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

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

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

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

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

                    b.Property<DateTimeOffset>("Time")
                        .HasColumnType("TEXT");

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GamblerId");

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.GamblerDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.UserDbModel", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.GamblerExclusionDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.GamblerDbModel", "Gambler")
                        .WithMany()
                        .HasForeignKey("GamblerId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.GamblerPerkDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.GamblerDbModel", "Gambler")
                        .WithMany()
                        .HasForeignKey("GamblerId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.ImageDbModel", b =>
                {
                    b.OwnsOne("KfChatDotNetBot.Models.DbModels.ImageMetadataModel", "Metadata", b1 =>
                        {
                            b1.Property<int>("ImageDbModelId");

                            b1.Property<int>("AddedByUserId");

                            b1.Property<DateTimeOffset>("WhenAdded");

                            b1.HasKey("ImageDbModelId");

                            b1.ToTable("Images");

                            b1
                                .ToJson("Metadata")
                                .HasColumnType("TEXT");

                            b1.WithOwner()
                                .HasForeignKey("ImageDbModelId");
                        });

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.JuicerDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.UserDbModel", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.MomDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.UserDbModel", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.StreamDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.UserDbModel", "User")
                        .WithMany()
                        .HasForeignKey("UserId");

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.TransactionDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.GamblerDbModel", "From")
                        .WithMany()
                        .HasForeignKey("FromId");

                    b.HasOne("KfChatDotNetBot.Models.DbModels.GamblerDbModel", "Gambler")
                        .WithMany()
                        .HasForeignKey("GamblerId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("From");

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.UserWhoWasDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.UserDbModel", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("KfChatDotNetBot.Models.DbModels.WagerDbModel", b =>
                {
                    b.HasOne("KfChatDotNetBot.Models.DbModels.GamblerDbModel", "Gambler")
                        .WithMany()
                        .HasForeignKey("GamblerId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Gambler");
                });
#pragma warning restore 612, 618
        }
    }
}
