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

#nullable disable

namespace FoodsharingSiegen.Server.Migrations
{
    [DbContext(typeof(FsContext))]
    [Migration("20260420122950_AddImageVerification")]
    partial class AddImageVerification
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder.HasAnnotation("ProductVersion", "9.0.3");

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.Audit", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT");

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

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

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

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

                    b.Property<Guid?>("UserID")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("UserID");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.Interaction", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT");

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

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

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

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

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

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

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

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

                    b.Property<Guid>("ProspectID")
                        .HasColumnType("TEXT");

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

                    b.Property<Guid>("UserID")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("ProspectID");

                    b.HasIndex("UserID");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.Prospect", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT");

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

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

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

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

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

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

                    b.Property<Guid?>("VerificationToken")
                        .HasColumnType("TEXT");

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.ProspectImage", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT");

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

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

                    b.Property<byte[]>("ImageData")
                        .IsRequired()
                        .HasColumnType("BLOB");

                    b.Property<Guid>("ProspectId")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("ProspectId");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.User", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT");

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

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.Audit", b =>
                {
                    b.HasOne("FoodsharingSiegen.Contracts.Entity.User", "User")
                        .WithMany()
                        .HasForeignKey("UserID");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.Interaction", b =>
                {
                    b.HasOne("FoodsharingSiegen.Contracts.Entity.Prospect", "Prospect")
                        .WithMany("Interactions")
                        .HasForeignKey("ProspectID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("FoodsharingSiegen.Contracts.Entity.User", "User")
                        .WithMany("Interactions")
                        .HasForeignKey("UserID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Prospect");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.ProspectImage", b =>
                {
                    b.HasOne("FoodsharingSiegen.Contracts.Entity.Prospect", "Prospect")
                        .WithMany("Images")
                        .HasForeignKey("ProspectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.Prospect", b =>
                {
                    b.Navigation("Images");

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

            modelBuilder.Entity("FoodsharingSiegen.Contracts.Entity.User", b =>
                {
                    b.Navigation("Interactions");
                });
#pragma warning restore 612, 618
        }
    }
}
