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

#nullable disable

namespace PyroFetes.Migrations
{
    [DbContext(typeof(PyroFetesDbContext))]
    [Migration("20251126193437_UpdatedDatabaseProductType")]
    partial class UpdatedDatabaseProductType
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "8.0.20")
                .HasAnnotation("Relational:MaxIdentifierLength", 128);

            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

            modelBuilder.Entity("PyroFetes.Models.Availability", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<DateOnly>("AvailabilityDate")
                        .HasColumnType("date");

                    b.Property<DateOnly>("DeliveryDate")
                        .HasColumnType("date");

                    b.Property<DateOnly>("ExpirationDate")
                        .HasColumnType("date");

                    b.Property<DateOnly>("RenewallDate")
                        .HasColumnType("date");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Brand", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

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

                    b.HasKey("Id");

                    b.HasIndex("ProductId");

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

            modelBuilder.Entity("PyroFetes.Models.City", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Classification", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Color", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Communication", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Calling")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("Meeting")
                        .IsRequired()
                        .HasMaxLength(300)
                        .HasColumnType("nvarchar(300)");

                    b.HasKey("Id");

                    b.HasIndex("ContactId");

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

            modelBuilder.Entity("PyroFetes.Models.Contact", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Address")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("PhoneNumber")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)");

                    b.Property<string>("Role")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

                    b.HasKey("Id");

                    b.HasIndex("CustomerId");

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

            modelBuilder.Entity("PyroFetes.Models.ContactServiceProvider", b =>
                {
                    b.Property<int>("ContactId")
                        .HasColumnType("int");

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

                    b.HasKey("ContactId", "ServiceProviderId");

                    b.HasIndex("ServiceProviderId");

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

            modelBuilder.Entity("PyroFetes.Models.Contract", b =>
                {
                    b.Property<int>("ShowId")
                        .HasColumnType("int");

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

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

                    b.HasKey("ShowId", "ServiceProviderId");

                    b.HasIndex("ServiceProviderId");

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

            modelBuilder.Entity("PyroFetes.Models.Customer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.HasKey("Id");

                    b.HasIndex("CustomerTypeId");

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

            modelBuilder.Entity("PyroFetes.Models.CustomerType", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Deliverer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Transporter")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.DeliveryNote", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

                    b.Property<DateOnly>("EstimateDeliveryDate")
                        .HasColumnType("date");

                    b.Property<DateOnly>("ExpeditionDate")
                        .HasColumnType("date");

                    b.Property<DateOnly?>("RealDeliveryDate")
                        .HasColumnType("date");

                    b.Property<string>("TrackingNumber")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

                    b.HasIndex("DelivererId");

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

            modelBuilder.Entity("PyroFetes.Models.Effect", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.ExperienceLevel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

                    b.HasKey("Id");

                    b.HasIndex("StaffId");

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

            modelBuilder.Entity("PyroFetes.Models.HistoryOfApproval", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<DateOnly>("DeliveryDate")
                        .HasColumnType("date");

                    b.Property<DateOnly>("ExpirationDate")
                        .HasColumnType("date");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Material", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("WarehouseId");

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

            modelBuilder.Entity("PyroFetes.Models.MaterialWarehouse", b =>
                {
                    b.Property<int>("MaterialId")
                        .HasColumnType("int");

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

                    b.HasKey("MaterialId", "WarehouseId");

                    b.HasIndex("WarehouseId");

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

            modelBuilder.Entity("PyroFetes.Models.Movement", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("DestinationWarehouseId");

                    b.HasIndex("SourceWarehouseId");

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

            modelBuilder.Entity("PyroFetes.Models.Price", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

                    b.Property<decimal>("SellingPrice")
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("ProductId", "SupplierId");

                    b.HasIndex("SupplierId");

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

            modelBuilder.Entity("PyroFetes.Models.Product", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("ApprovalNumber")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

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

                    b.Property<decimal>("Duration")
                        .HasColumnType("decimal(18,2)");

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

                    b.Property<string>("Link")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

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

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

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

                    b.Property<decimal>("Nec")
                        .HasColumnType("decimal(18,2)");

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

                    b.Property<string>("Reference")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)");

                    b.Property<decimal>("Weight")
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("Id");

                    b.HasIndex("ClassificationId");

                    b.HasIndex("MovementId");

                    b.HasIndex("ProductCategoryId");

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

            modelBuilder.Entity("PyroFetes.Models.ProductCategory", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.ProductColor", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

                    b.HasKey("ProductId", "ColorId");

                    b.HasIndex("ColorId");

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

            modelBuilder.Entity("PyroFetes.Models.ProductDelivery", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

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

                    b.HasKey("ProductId", "DeliveryNoteId");

                    b.HasIndex("DeliveryNoteId");

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

            modelBuilder.Entity("PyroFetes.Models.ProductEffect", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

                    b.HasKey("ProductId", "EffectId");

                    b.HasIndex("EffectId");

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

            modelBuilder.Entity("PyroFetes.Models.ProductTimecode", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

                    b.Property<decimal>("End")
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Start")
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("ProductId", "ShowId");

                    b.HasIndex("ShowId");

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

            modelBuilder.Entity("PyroFetes.Models.ProviderContact", b =>
                {
                    b.Property<int>("ContactId")
                        .HasColumnType("int");

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

                    b.HasKey("ContactId", "ProviderId");

                    b.HasIndex("ProviderId");

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

            modelBuilder.Entity("PyroFetes.Models.ProviderType", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.PurchaseOrder", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("PurchaseConditions")
                        .IsRequired()
                        .HasMaxLength(300)
                        .HasColumnType("nvarchar(300)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.PurchaseProduct", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

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

                    b.HasKey("ProductId", "PurchaseOrderId");

                    b.HasIndex("PurchaseOrderId");

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

            modelBuilder.Entity("PyroFetes.Models.Quotation", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("ConditionsSale")
                        .IsRequired()
                        .HasMaxLength(300)
                        .HasColumnType("nvarchar(300)");

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

                    b.Property<string>("Message")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)");

                    b.HasKey("Id");

                    b.HasIndex("CustomerId");

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

            modelBuilder.Entity("PyroFetes.Models.QuotationProduct", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

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

                    b.HasKey("ProductId", "QuotationId");

                    b.HasIndex("QuotationId");

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

            modelBuilder.Entity("PyroFetes.Models.ServiceProvider", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<decimal>("Price")
                        .HasColumnType("decimal(18,2)");

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

                    b.HasKey("Id");

                    b.HasIndex("ProviderTypeId");

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

            modelBuilder.Entity("PyroFetes.Models.Setting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Show", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

                    b.Property<DateOnly?>("Date")
                        .HasColumnType("date");

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

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

                    b.Property<string>("Place")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("nvarchar(120)");

                    b.Property<string>("PyrotechnicImplementationPlan")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("nvarchar(500)");

                    b.HasKey("Id");

                    b.HasIndex("CityId");

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

            modelBuilder.Entity("PyroFetes.Models.ShowMaterial", b =>
                {
                    b.Property<int>("ShowId")
                        .HasColumnType("int");

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

                    b.HasKey("ShowId", "MaterialId");

                    b.HasIndex("MaterialId");

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

            modelBuilder.Entity("PyroFetes.Models.ShowServiceProvider", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.ShowStaff", b =>
                {
                    b.Property<int>("StaffId")
                        .HasColumnType("int");

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

                    b.HasKey("StaffId", "ShowId");

                    b.HasIndex("ShowId");

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

            modelBuilder.Entity("PyroFetes.Models.ShowTruck", b =>
                {
                    b.Property<int>("ShowId")
                        .HasColumnType("int");

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

                    b.HasKey("ShowId", "TruckId");

                    b.HasIndex("TruckId");

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

            modelBuilder.Entity("PyroFetes.Models.Sound", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Artist")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("nvarchar(120)");

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

                    b.Property<int?>("Duration")
                        .IsRequired()
                        .HasColumnType("int");

                    b.Property<string>("Format")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)");

                    b.Property<string>("Kind")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)");

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

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

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)");

                    b.HasKey("Id");

                    b.HasIndex("SoundCategoryId");

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

            modelBuilder.Entity("PyroFetes.Models.SoundCategory", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.SoundTimecode", b =>
                {
                    b.Property<int>("ShowId")
                        .HasColumnType("int");

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

                    b.Property<decimal>("End")
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Start")
                        .HasColumnType("decimal(18,2)");

                    b.HasKey("ShowId", "SoundId");

                    b.HasIndex("SoundId");

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

            modelBuilder.Entity("PyroFetes.Models.Staff", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("nvarchar(120)");

                    b.Property<DateOnly>("F4T2ExpirationDate")
                        .HasColumnType("date");

                    b.Property<string>("F4T2NumberApproval")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)");

                    b.Property<string>("Profession")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.StaffAvailability", b =>
                {
                    b.Property<int>("AvailabilityId")
                        .HasColumnType("int");

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

                    b.HasKey("AvailabilityId", "StaffId");

                    b.HasIndex("StaffId");

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

            modelBuilder.Entity("PyroFetes.Models.StaffContact", b =>
                {
                    b.Property<int>("ContactId")
                        .HasColumnType("int");

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

                    b.HasKey("ContactId", "StaffId");

                    b.HasIndex("StaffId");

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

            modelBuilder.Entity("PyroFetes.Models.StaffHistoryOfApproval", b =>
                {
                    b.Property<int>("HistoryOfApprovalId")
                        .HasColumnType("int");

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

                    b.HasKey("HistoryOfApprovalId", "StaffId");

                    b.HasIndex("StaffId");

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

            modelBuilder.Entity("PyroFetes.Models.Supplier", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Address")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

                    b.Property<string>("Phone")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)");

                    b.Property<string>("ZipCode")
                        .IsRequired()
                        .HasMaxLength(5)
                        .HasColumnType("nvarchar(5)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Truck", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<double?>("MaxExplosiveCapacity")
                        .IsRequired()
                        .HasColumnType("float");

                    b.Property<string>("Sizes")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("nvarchar(80)");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.User", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("Fonction")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)");

                    b.Property<string>("Salt")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.Warehouse", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));

                    b.Property<string>("Address")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

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

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

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

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

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("PyroFetes.Models.WarehouseProduct", b =>
                {
                    b.Property<int>("ProductId")
                        .HasColumnType("int");

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

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

                    b.HasKey("ProductId", "WarehouseId");

                    b.HasIndex("WarehouseId");

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

            modelBuilder.Entity("PyroFetes.Models.Brand", b =>
                {
                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("Brands")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.Communication", b =>
                {
                    b.HasOne("PyroFetes.Models.Contact", "Contact")
                        .WithMany("Communications")
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.Contact", b =>
                {
                    b.HasOne("PyroFetes.Models.Customer", "Customer")
                        .WithMany("Contacts")
                        .HasForeignKey("CustomerId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.ContactServiceProvider", b =>
                {
                    b.HasOne("PyroFetes.Models.Contact", "Contact")
                        .WithMany("ContactServiceProviders")
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.ServiceProvider", "ServiceProvider")
                        .WithMany("ContactServiceProviders")
                        .HasForeignKey("ServiceProviderId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Contact");

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

            modelBuilder.Entity("PyroFetes.Models.Contract", b =>
                {
                    b.HasOne("PyroFetes.Models.ServiceProvider", "ServiceProvider")
                        .WithMany("Contracts")
                        .HasForeignKey("ServiceProviderId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Show", "Show")
                        .WithMany("Contracts")
                        .HasForeignKey("ShowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ServiceProvider");

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

            modelBuilder.Entity("PyroFetes.Models.Customer", b =>
                {
                    b.HasOne("PyroFetes.Models.CustomerType", "CustomerType")
                        .WithMany("Customers")
                        .HasForeignKey("CustomerTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.DeliveryNote", b =>
                {
                    b.HasOne("PyroFetes.Models.Deliverer", "Deliverer")
                        .WithMany("DeliveryNotes")
                        .HasForeignKey("DelivererId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.ExperienceLevel", b =>
                {
                    b.HasOne("PyroFetes.Models.Staff", "Staff")
                        .WithMany("ExperienceLevels")
                        .HasForeignKey("StaffId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.Material", b =>
                {
                    b.HasOne("PyroFetes.Models.Warehouse", "Warehouse")
                        .WithMany()
                        .HasForeignKey("WarehouseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.MaterialWarehouse", b =>
                {
                    b.HasOne("PyroFetes.Models.Material", "Material")
                        .WithMany("MaterialWarehouses")
                        .HasForeignKey("MaterialId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Warehouse", "Warehouse")
                        .WithMany("MaterialWarehouses")
                        .HasForeignKey("WarehouseId")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Material");

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

            modelBuilder.Entity("PyroFetes.Models.Movement", b =>
                {
                    b.HasOne("PyroFetes.Models.Warehouse", "DestinationWarehouse")
                        .WithMany("MovementsDestination")
                        .HasForeignKey("DestinationWarehouseId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("PyroFetes.Models.Warehouse", "SourceWarehouse")
                        .WithMany("MovementsSource")
                        .HasForeignKey("SourceWarehouseId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.Navigation("DestinationWarehouse");

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

            modelBuilder.Entity("PyroFetes.Models.Price", b =>
                {
                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("Prices")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Supplier", "Supplier")
                        .WithMany("Prices")
                        .HasForeignKey("SupplierId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Product");

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

            modelBuilder.Entity("PyroFetes.Models.Product", b =>
                {
                    b.HasOne("PyroFetes.Models.Classification", "Classification")
                        .WithMany("Products")
                        .HasForeignKey("ClassificationId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Movement", "Movement")
                        .WithMany("Products")
                        .HasForeignKey("MovementId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.ProductCategory", "ProductCategory")
                        .WithMany("Products")
                        .HasForeignKey("ProductCategoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Classification");

                    b.Navigation("Movement");

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

            modelBuilder.Entity("PyroFetes.Models.ProductColor", b =>
                {
                    b.HasOne("PyroFetes.Models.Color", "Color")
                        .WithMany("ProductColors")
                        .HasForeignKey("ColorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("ProductColors")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Color");

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

            modelBuilder.Entity("PyroFetes.Models.ProductDelivery", b =>
                {
                    b.HasOne("PyroFetes.Models.DeliveryNote", "DeliveryNote")
                        .WithMany("ProductDeliveries")
                        .HasForeignKey("DeliveryNoteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("ProductDeliveries")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("DeliveryNote");

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

            modelBuilder.Entity("PyroFetes.Models.ProductEffect", b =>
                {
                    b.HasOne("PyroFetes.Models.Effect", "Effect")
                        .WithMany("ProductEffects")
                        .HasForeignKey("EffectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("ProductEffects")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Effect");

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

            modelBuilder.Entity("PyroFetes.Models.ProductTimecode", b =>
                {
                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("ProductTimecodes")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Show", "Show")
                        .WithMany("ProductTimecodes")
                        .HasForeignKey("ShowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Product");

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

            modelBuilder.Entity("PyroFetes.Models.ProviderContact", b =>
                {
                    b.HasOne("PyroFetes.Models.Contact", "Contact")
                        .WithMany()
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.ServiceProvider", "Provider")
                        .WithMany()
                        .HasForeignKey("ProviderId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Contact");

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

            modelBuilder.Entity("PyroFetes.Models.PurchaseProduct", b =>
                {
                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("PurchaseProducts")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.PurchaseOrder", "PurchaseOrder")
                        .WithMany("PurchaseProducts")
                        .HasForeignKey("PurchaseOrderId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Product");

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

            modelBuilder.Entity("PyroFetes.Models.Quotation", b =>
                {
                    b.HasOne("PyroFetes.Models.Customer", "Customer")
                        .WithMany("Quotations")
                        .HasForeignKey("CustomerId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.QuotationProduct", b =>
                {
                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("QuotationProducts")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Quotation", "Quotation")
                        .WithMany("QuotationProducts")
                        .HasForeignKey("QuotationId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Product");

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

            modelBuilder.Entity("PyroFetes.Models.ServiceProvider", b =>
                {
                    b.HasOne("PyroFetes.Models.ProviderType", "ProviderType")
                        .WithMany("ServiceProviders")
                        .HasForeignKey("ProviderTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.Show", b =>
                {
                    b.HasOne("PyroFetes.Models.City", "City")
                        .WithMany("Shows")
                        .HasForeignKey("CityId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.ShowMaterial", b =>
                {
                    b.HasOne("PyroFetes.Models.Material", "Material")
                        .WithMany("ShowMaterials")
                        .HasForeignKey("MaterialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Show", "Show")
                        .WithMany("ShowMaterials")
                        .HasForeignKey("ShowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Material");

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

            modelBuilder.Entity("PyroFetes.Models.ShowStaff", b =>
                {
                    b.HasOne("PyroFetes.Models.Show", "Show")
                        .WithMany("ShowStaffs")
                        .HasForeignKey("ShowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Staff", "Staff")
                        .WithMany("ShowStaffs")
                        .HasForeignKey("StaffId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Show");

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

            modelBuilder.Entity("PyroFetes.Models.ShowTruck", b =>
                {
                    b.HasOne("PyroFetes.Models.Show", "Show")
                        .WithMany("ShowTrucks")
                        .HasForeignKey("ShowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Truck", "Truck")
                        .WithMany("ShowTrucks")
                        .HasForeignKey("TruckId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Show");

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

            modelBuilder.Entity("PyroFetes.Models.Sound", b =>
                {
                    b.HasOne("PyroFetes.Models.SoundCategory", "SoundCategory")
                        .WithMany("Sounds")
                        .HasForeignKey("SoundCategoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("PyroFetes.Models.SoundTimecode", b =>
                {
                    b.HasOne("PyroFetes.Models.Show", "Show")
                        .WithMany("SoundTimecodes")
                        .HasForeignKey("ShowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Sound", "Sound")
                        .WithMany("SoundTimecodes")
                        .HasForeignKey("SoundId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Show");

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

            modelBuilder.Entity("PyroFetes.Models.StaffAvailability", b =>
                {
                    b.HasOne("PyroFetes.Models.Availability", "Availability")
                        .WithMany("StaffAvailabilities")
                        .HasForeignKey("AvailabilityId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Staff", "Staff")
                        .WithMany("StaffAvailabilities")
                        .HasForeignKey("StaffId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Availability");

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

            modelBuilder.Entity("PyroFetes.Models.StaffContact", b =>
                {
                    b.HasOne("PyroFetes.Models.Contact", "Contact")
                        .WithMany("StaffContacts")
                        .HasForeignKey("ContactId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Staff", "Staff")
                        .WithMany("StaffContacts")
                        .HasForeignKey("StaffId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Contact");

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

            modelBuilder.Entity("PyroFetes.Models.StaffHistoryOfApproval", b =>
                {
                    b.HasOne("PyroFetes.Models.HistoryOfApproval", "HistoryOfApproval")
                        .WithMany("StaffHistoryOfApprovals")
                        .HasForeignKey("HistoryOfApprovalId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Staff", "Staff")
                        .WithMany("StaffHistoryOfApprovals")
                        .HasForeignKey("StaffId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("HistoryOfApproval");

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

            modelBuilder.Entity("PyroFetes.Models.WarehouseProduct", b =>
                {
                    b.HasOne("PyroFetes.Models.Product", "Product")
                        .WithMany("WarehouseProducts")
                        .HasForeignKey("ProductId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("PyroFetes.Models.Warehouse", "Warehouse")
                        .WithMany("WarehouseProducts")
                        .HasForeignKey("WarehouseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Product");

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

            modelBuilder.Entity("PyroFetes.Models.Availability", b =>
                {
                    b.Navigation("StaffAvailabilities");
                });

            modelBuilder.Entity("PyroFetes.Models.City", b =>
                {
                    b.Navigation("Shows");
                });

            modelBuilder.Entity("PyroFetes.Models.Classification", b =>
                {
                    b.Navigation("Products");
                });

            modelBuilder.Entity("PyroFetes.Models.Color", b =>
                {
                    b.Navigation("ProductColors");
                });

            modelBuilder.Entity("PyroFetes.Models.Contact", b =>
                {
                    b.Navigation("Communications");

                    b.Navigation("ContactServiceProviders");

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

            modelBuilder.Entity("PyroFetes.Models.Customer", b =>
                {
                    b.Navigation("Contacts");

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

            modelBuilder.Entity("PyroFetes.Models.CustomerType", b =>
                {
                    b.Navigation("Customers");
                });

            modelBuilder.Entity("PyroFetes.Models.Deliverer", b =>
                {
                    b.Navigation("DeliveryNotes");
                });

            modelBuilder.Entity("PyroFetes.Models.DeliveryNote", b =>
                {
                    b.Navigation("ProductDeliveries");
                });

            modelBuilder.Entity("PyroFetes.Models.Effect", b =>
                {
                    b.Navigation("ProductEffects");
                });

            modelBuilder.Entity("PyroFetes.Models.HistoryOfApproval", b =>
                {
                    b.Navigation("StaffHistoryOfApprovals");
                });

            modelBuilder.Entity("PyroFetes.Models.Material", b =>
                {
                    b.Navigation("MaterialWarehouses");

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

            modelBuilder.Entity("PyroFetes.Models.Movement", b =>
                {
                    b.Navigation("Products");
                });

            modelBuilder.Entity("PyroFetes.Models.Product", b =>
                {
                    b.Navigation("Brands");

                    b.Navigation("Prices");

                    b.Navigation("ProductColors");

                    b.Navigation("ProductDeliveries");

                    b.Navigation("ProductEffects");

                    b.Navigation("ProductTimecodes");

                    b.Navigation("PurchaseProducts");

                    b.Navigation("QuotationProducts");

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

            modelBuilder.Entity("PyroFetes.Models.ProductCategory", b =>
                {
                    b.Navigation("Products");
                });

            modelBuilder.Entity("PyroFetes.Models.ProviderType", b =>
                {
                    b.Navigation("ServiceProviders");
                });

            modelBuilder.Entity("PyroFetes.Models.PurchaseOrder", b =>
                {
                    b.Navigation("PurchaseProducts");
                });

            modelBuilder.Entity("PyroFetes.Models.Quotation", b =>
                {
                    b.Navigation("QuotationProducts");
                });

            modelBuilder.Entity("PyroFetes.Models.ServiceProvider", b =>
                {
                    b.Navigation("ContactServiceProviders");

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

            modelBuilder.Entity("PyroFetes.Models.Show", b =>
                {
                    b.Navigation("Contracts");

                    b.Navigation("ProductTimecodes");

                    b.Navigation("ShowMaterials");

                    b.Navigation("ShowStaffs");

                    b.Navigation("ShowTrucks");

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

            modelBuilder.Entity("PyroFetes.Models.Sound", b =>
                {
                    b.Navigation("SoundTimecodes");
                });

            modelBuilder.Entity("PyroFetes.Models.SoundCategory", b =>
                {
                    b.Navigation("Sounds");
                });

            modelBuilder.Entity("PyroFetes.Models.Staff", b =>
                {
                    b.Navigation("ExperienceLevels");

                    b.Navigation("ShowStaffs");

                    b.Navigation("StaffAvailabilities");

                    b.Navigation("StaffContacts");

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

            modelBuilder.Entity("PyroFetes.Models.Supplier", b =>
                {
                    b.Navigation("Prices");
                });

            modelBuilder.Entity("PyroFetes.Models.Truck", b =>
                {
                    b.Navigation("ShowTrucks");
                });

            modelBuilder.Entity("PyroFetes.Models.Warehouse", b =>
                {
                    b.Navigation("MaterialWarehouses");

                    b.Navigation("MovementsDestination");

                    b.Navigation("MovementsSource");

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