// <auto-generated />
using System;
using BLL.DAL;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BLL.Migrations
{
[DbContext(typeof(Db))]
[Migration("20241129183503_v1")]
partial class v1
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.8")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("BLL.DAL.Category", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.HasKey("Id");
b.ToTable("Categories");
});
modelBuilder.Entity("BLL.DAL.City", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int?>("CountryId")
.IsRequired()
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(125)
.HasColumnType("nvarchar(125)");
b.HasKey("Id");
b.HasIndex("CountryId");
b.ToTable("Cities");
});
modelBuilder.Entity("BLL.DAL.Country", 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("Countries");
});
modelBuilder.Entity("BLL.DAL.Product", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int?>("CategoryId")
.IsRequired()
.HasColumnType("int");
b.Property<DateTime?>("ExpirationDate")
.HasColumnType("datetime2");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<int?>("StockAmount")
.HasColumnType("int");
b.Property<decimal>("UnitPrice")
.HasColumnType("decimal(18,2)");
b.HasKey("Id");
b.HasIndex("CategoryId");
b.ToTable("Products");
});
modelBuilder.Entity("BLL.DAL.ProductStore", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int>("ProductId")
.HasColumnType("int");
b.Property<int>("StoreId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProductId");
b.HasIndex("StoreId");
b.ToTable("ProductStores");
});
modelBuilder.Entity("BLL.DAL.Role", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("RoleName")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.HasKey("Id");
b.ToTable("Roles");
});
modelBuilder.Entity("BLL.DAL.Store", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<int?>("CityId")
.HasColumnType("int");
b.Property<int?>("CountryId")
.HasColumnType("int");
b.Property<bool>("IsVirtual")
.HasColumnType("bit");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.HasKey("Id");
b.HasIndex("CityId");
b.HasIndex("CountryId");
b.ToTable("Stores");
});
modelBuilder.Entity("BLL.DAL.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<bool>("IsActive")
.HasColumnType("bit");
b.Property<string>("Password")
.IsRequired()
.HasMaxLength(8)
.HasColumnType("nvarchar(8)");
b.Property<int?>("RoleId")
.IsRequired()
.HasColumnType("int");
b.Property<string>("UserName")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.HasKey("Id");
b.HasIndex("RoleId");
b.ToTable("Users");
});
modelBuilder.Entity("BLL.DAL.City", b =>
{
b.HasOne("BLL.DAL.Country", "Country")
.WithMany("Cities")
.HasForeignKey("CountryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Country");
});
modelBuilder.Entity("BLL.DAL.Product", b =>
{
b.HasOne("BLL.DAL.Category", "Category")
.WithMany("Products")
.HasForeignKey("CategoryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Category");
});
modelBuilder.Entity("BLL.DAL.ProductStore", b =>
{
b.HasOne("BLL.DAL.Product", "Product")
.WithMany("ProductStores")
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BLL.DAL.Store", "Store")
.WithMany("ProductStores")
.HasForeignKey("StoreId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
b.Navigation("Store");
});
modelBuilder.Entity("BLL.DAL.Store", b =>
{
b.HasOne("BLL.DAL.City", "City")
.WithMany("Stores")
.HasForeignKey("CityId");
b.HasOne("BLL.DAL.Country", "Country")
.WithMany("Stores")
.HasForeignKey("CountryId");
b.Navigation("City");
b.Navigation("Country");
});
modelBuilder.Entity("BLL.DAL.User", b =>
{
b.HasOne("BLL.DAL.Role", "Role")
.WithMany("Users")
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Role");
});
modelBuilder.Entity("BLL.DAL.Category", b =>
{
b.Navigation("Products");
});
modelBuilder.Entity("BLL.DAL.City", b =>
{
b.Navigation("Stores");
});
modelBuilder.Entity("BLL.DAL.Country", b =>
{
b.Navigation("Cities");
b.Navigation("Stores");
});
modelBuilder.Entity("BLL.DAL.Product", b =>
{
b.Navigation("ProductStores");
});
modelBuilder.Entity("BLL.DAL.Role", b =>
{
b.Navigation("Users");
});
modelBuilder.Entity("BLL.DAL.Store", b =>
{
b.Navigation("ProductStores");
});
#pragma warning restore 612, 618
}
}
}