// <auto-generated />
using System;
using Francesco.Recipes.World.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace Francesco.Recipes.World.Migrations
{
    [DbContext(typeof(FrancescosRecipesWorldDbContext))]
    partial class FrancescosRecipesWorldDbContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "8.0.11")
                .HasAnnotation("Relational:MaxIdentifierLength", 128);

            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Category.Category", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

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

                    b.HasKey("Id");

                    b.ToTable("Categories");

                    b.HasData(
                        new
                        {
                            Id = new Guid("b248244f-f21c-4555-a14d-5dd49a2717cf"),
                            Name = "Vorspeisen & Snacks"
                        },
                        new
                        {
                            Id = new Guid("5186c5d6-5aff-4a6e-baf4-b61b72d889fe"),
                            Name = "Erste Gänge"
                        },
                        new
                        {
                            Id = new Guid("abbc6bb0-97ea-49f5-b31e-6507eb784fd1"),
                            Name = "Hauptgerichte"
                        },
                        new
                        {
                            Id = new Guid("90deec39-dcd0-422d-9018-ac8389e332e1"),
                            Name = "Desserts & Süßspeisen"
                        },
                        new
                        {
                            Id = new Guid("28e39168-701a-4084-81da-d96c987c462f"),
                            Name = "Beilagen & Salate"
                        },
                        new
                        {
                            Id = new Guid("20585b74-4805-4aff-a6df-aa6b7af04ff1"),
                            Name = "Kuchen"
                        },
                        new
                        {
                            Id = new Guid("adfb75ce-3ef3-428b-a5ca-b0c4c619d5ec"),
                            Name = "Hefegebäck & Brot"
                        },
                        new
                        {
                            Id = new Guid("d332f88d-d241-48c5-a2f2-bfd124eada7e"),
                            Name = "Soßen & Saucen"
                        },
                        new
                        {
                            Id = new Guid("23b1c740-e427-44f9-a6ea-d33d3f30f05a"),
                            Name = "Marmeladen & Eingemachtes"
                        },
                        new
                        {
                            Id = new Guid("0a91a200-dc76-4e00-b38c-b38cab5b69d7"),
                            Name = "Getränke"
                        });
                });

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Favorit.Favorit", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Ingredient.Ingredient", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.IngredientShoppingList.RecipeIngredientShoppingList", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("IngredientId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsChecked")
                        .HasColumnType("bit");

                    b.Property<Guid>("RecipeIngredientId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("RecipeShoppingListId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("IngredientId");

                    b.HasIndex("RecipeIngredientId");

                    b.HasIndex("RecipeShoppingListId");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Instruction.Instruction", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

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

                    b.Property<int>("Number")
                        .HasColumnType("int");

                    b.Property<Guid>("RecipeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("RecipeId");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.MediaFile.MediaFile", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<byte[]>("Data")
                        .HasColumnType("varbinary(max)");

                    b.Property<string>("FileName")
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid?>("InstructionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("MimeType")
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid?>("RecipeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("InstructionId");

                    b.HasIndex("RecipeId");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Recipe.Recipe", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("CategoryId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<TimeSpan>("CookingTime")
                        .HasColumnType("time");

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

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

                    b.Property<int>("Difficulty")
                        .HasColumnType("int");

                    b.Property<Guid>("FavoriteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsFavorite")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("ModifiedAt")
                        .HasColumnType("datetime2");

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

                    b.Property<TimeSpan>("PreparationTime")
                        .HasColumnType("time");

                    b.Property<int>("Servings")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CategoryId");

                    b.HasIndex("FavoriteId");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.RecipeIngredient.RecipeIngredient", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("IngredientId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("Quantity")
                        .HasColumnType("int");

                    b.Property<Guid>("RecipeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UnitId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("IngredientId");

                    b.HasIndex("RecipeId");

                    b.HasIndex("UnitId");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.RecipeShoppingList.RecipeShoppingList", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("RecipeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ShoppingListId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("RecipeId");

                    b.HasIndex("ShoppingListId");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Shoppinglist.ShoppingList", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

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

                    b.Property<DateTime?>("ModifiedAt")
                        .HasColumnType("datetime2");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Unit.Unit", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

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

                    b.Property<string>("Symbol")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.ToTable("Units");

                    b.HasData(
                        new
                        {
                            Id = new Guid("62eb2c11-8768-46fb-9db0-c77f940bb4aa"),
                            Name = "liter",
                            Symbol = "l"
                        },
                        new
                        {
                            Id = new Guid("6c41f7e6-ca75-49cc-8541-cebd5a9c560b"),
                            Name = "gramm",
                            Symbol = "g"
                        },
                        new
                        {
                            Id = new Guid("7e3d1b86-ac48-45d6-814e-d3492a86db1d"),
                            Name = "kilogramm",
                            Symbol = "kg"
                        },
                        new
                        {
                            Id = new Guid("0c3648ec-4981-42c8-abf8-18bf1a2ff4c2"),
                            Name = "stücke",
                            Symbol = "stk"
                        },
                        new
                        {
                            Id = new Guid("d82f4abd-e4e4-4104-a9c0-1acdeaa701f5"),
                            Name = "blatt",
                            Symbol = "blatt"
                        },
                        new
                        {
                            Id = new Guid("df5cb4c3-4de6-4c6f-be8c-da41b2986408"),
                            Name = "messerspitze",
                            Symbol = "msp"
                        },
                        new
                        {
                            Id = new Guid("e45a3af2-2ed6-4ac4-b06f-b4175663a7be"),
                            Name = "stange",
                            Symbol = "stange"
                        },
                        new
                        {
                            Id = new Guid("7ea2f51d-7493-4f19-a663-1f309186d3ae"),
                            Name = "bund",
                            Symbol = "bund"
                        },
                        new
                        {
                            Id = new Guid("66556e0e-eb2b-4bc3-9a56-135dd508ed09"),
                            Name = "zehe",
                            Symbol = "zehe"
                        },
                        new
                        {
                            Id = new Guid("2e9894ac-14fa-43fd-ba07-35cdd8ebd461"),
                            Name = "teelöffel",
                            Symbol = "TL"
                        },
                        new
                        {
                            Id = new Guid("24a91b89-3389-4465-89e4-2f70d2ea6fd7"),
                            Name = "esslöffel",
                            Symbol = "EL"
                        });
                });

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.IngredientShoppingList.RecipeIngredientShoppingList", b =>
                {
                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Ingredient.Ingredient", null)
                        .WithMany("IngredientShoppingLists")
                        .HasForeignKey("IngredientId");

                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.RecipeIngredient.RecipeIngredient", "RecipeIngredient")
                        .WithMany()
                        .HasForeignKey("RecipeIngredientId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.RecipeShoppingList.RecipeShoppingList", "RecipeShoppingList")
                        .WithMany("SelectedIngredients")
                        .HasForeignKey("RecipeShoppingListId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("RecipeIngredient");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Instruction.Instruction", b =>
                {
                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Recipe.Recipe", "Recipe")
                        .WithMany("Instructions")
                        .HasForeignKey("RecipeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.MediaFile.MediaFile", b =>
                {
                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Instruction.Instruction", "Instruction")
                        .WithMany("MediaFiles")
                        .HasForeignKey("InstructionId");

                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Recipe.Recipe", "Recipe")
                        .WithMany("MediaFiles")
                        .HasForeignKey("RecipeId");

                    b.Navigation("Instruction");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Recipe.Recipe", b =>
                {
                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Category.Category", "Category")
                        .WithMany("Recipes")
                        .HasForeignKey("CategoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Favorit.Favorit", "Favorite")
                        .WithMany("Recipe")
                        .HasForeignKey("FavoriteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Category");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.RecipeIngredient.RecipeIngredient", b =>
                {
                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Ingredient.Ingredient", "Ingredient")
                        .WithMany("RecipeIngredients")
                        .HasForeignKey("IngredientId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Recipe.Recipe", "Recipe")
                        .WithMany("RecipeIngredients")
                        .HasForeignKey("RecipeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Unit.Unit", "Unit")
                        .WithMany("RecipeIngredient")
                        .HasForeignKey("UnitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Ingredient");

                    b.Navigation("Recipe");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.RecipeShoppingList.RecipeShoppingList", b =>
                {
                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Recipe.Recipe", "Recipe")
                        .WithMany()
                        .HasForeignKey("RecipeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Francesco.Recipes.World.Models.BackendModels.Shoppinglist.ShoppingList", "ShoppingList")
                        .WithMany("RecipeShoppingList")
                        .HasForeignKey("ShoppingListId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Recipe");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Category.Category", b =>
                {
                    b.Navigation("Recipes");
                });

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Favorit.Favorit", b =>
                {
                    b.Navigation("Recipe");
                });

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Ingredient.Ingredient", b =>
                {
                    b.Navigation("IngredientShoppingLists");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Instruction.Instruction", b =>
                {
                    b.Navigation("MediaFiles");
                });

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Recipe.Recipe", b =>
                {
                    b.Navigation("Instructions");

                    b.Navigation("MediaFiles");

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

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.RecipeShoppingList.RecipeShoppingList", b =>
                {
                    b.Navigation("SelectedIngredients");
                });

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Shoppinglist.ShoppingList", b =>
                {
                    b.Navigation("RecipeShoppingList");
                });

            modelBuilder.Entity("Francesco.Recipes.World.Models.BackendModels.Unit.Unit", b =>
                {
                    b.Navigation("RecipeIngredient");
                });
#pragma warning restore 612, 618
        }
    }
}
