diff --git a/CarCenter/CarCenterDataModels/CarCenterDataModels.csproj b/CarCenter/CarCenterDataModels/CarCenterDataModels.csproj index 132c02c..85b0783 100644 --- a/CarCenter/CarCenterDataModels/CarCenterDataModels.csproj +++ b/CarCenter/CarCenterDataModels/CarCenterDataModels.csproj @@ -6,4 +6,11 @@ enable + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240428140324_InitialCreate.Designer.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240428140324_InitialCreate.Designer.cs new file mode 100644 index 0000000..31c6b46 --- /dev/null +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/20240428140324_InitialCreate.Designer.cs @@ -0,0 +1,501 @@ +// +using System; +using CarCenterDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace CarCenterDatabaseImplement.Migrations +{ + [DbContext(typeof(CarCenterDatabase))] + [Migration("20240428140324_InitialCreate")] + partial class InitialCreate + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.29") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EquipmentPackage") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.Property("TirePackage") + .HasColumnType("integer"); + + b.Property("ToolKit") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("Bundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CarBrand") + .HasColumnType("integer"); + + b.Property("CarClass") + .HasColumnType("integer"); + + b.Property("FeatureID") + .HasColumnType("integer"); + + b.Property("FeatureId") + .HasColumnType("integer"); + + b.Property("Model") + .IsRequired() + .HasColumnType("text"); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.Property("StorekeeperId") + .HasColumnType("integer"); + + b.Property("VINnumber") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("FeatureId"); + + b.HasIndex("OrderId"); + + b.HasIndex("StorekeeperId"); + + b.ToTable("Cars"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BundlingId") + .HasColumnType("integer"); + + b.Property("CarId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("BundlingId"); + + b.HasIndex("CarId"); + + b.ToTable("CarBundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CabinColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("DriveType") + .HasColumnType("integer"); + + b.Property("HelpDevice") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("Features"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BuyerFCS") + .IsRequired() + .HasColumnType("text"); + + b.Property("PaymentDate") + .HasColumnType("timestamp without time zone"); + + b.Property("PaymentStatus") + .HasColumnType("integer"); + + b.Property("PaymentType") + .HasColumnType("integer"); + + b.Property("Sum") + .HasColumnType("double precision"); + + b.Property("WorkerId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("WorkerId"); + + b.ToTable("Orders"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("PresaleId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("OrderId"); + + b.HasIndex("PresaleId"); + + b.ToTable("OrderPresales"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("DueTill") + .HasColumnType("timestamp without time zone"); + + b.Property("PresaleStatus") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("Presales"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BundlingId") + .HasColumnType("integer"); + + b.Property("PresaleId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("BundlingId"); + + b.HasIndex("PresaleId"); + + b.ToTable("PresaleBundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("PresaleId") + .HasColumnType("integer"); + + b.Property("RequestType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("PresaleId"); + + b.ToTable("Requests"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("Patronymic") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("bigint"); + + b.Property("Surname") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Storekeepers"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("Patronymic") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("bigint"); + + b.Property("Surname") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Workers"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Feature", "Feature") + .WithMany("Cars") + .HasForeignKey("FeatureId"); + + b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") + .WithMany("Cars") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Storekeeper", "Storekeeper") + .WithMany("Cars") + .HasForeignKey("StorekeeperId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Feature"); + + b.Navigation("Order"); + + b.Navigation("Storekeeper"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") + .WithMany("CarBundling") + .HasForeignKey("BundlingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Car", "Car") + .WithMany("Bundlings") + .HasForeignKey("CarId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bundling"); + + b.Navigation("Car"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Worker", "Worker") + .WithMany("Orders") + .HasForeignKey("WorkerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Worker"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") + .WithMany("Presales") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") + .WithMany("OrderPresales") + .HasForeignKey("PresaleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Order"); + + b.Navigation("Presale"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") + .WithMany("PresaleBundling") + .HasForeignKey("BundlingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") + .WithMany("Bundlings") + .HasForeignKey("PresaleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bundling"); + + b.Navigation("Presale"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") + .WithMany("Requests") + .HasForeignKey("PresaleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Presale"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => + { + b.Navigation("CarBundling"); + + b.Navigation("PresaleBundling"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => + { + b.Navigation("Bundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => + { + b.Navigation("Cars"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => + { + b.Navigation("Cars"); + + b.Navigation("Presales"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => + { + b.Navigation("Bundlings"); + + b.Navigation("OrderPresales"); + + b.Navigation("Requests"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => + { + b.Navigation("Cars"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => + { + b.Navigation("Orders"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240428140324_InitialCreate.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240428140324_InitialCreate.cs new file mode 100644 index 0000000..00e7294 --- /dev/null +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/20240428140324_InitialCreate.cs @@ -0,0 +1,351 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace CarCenterDatabaseImplement.Migrations +{ + public partial class InitialCreate : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Bundlings", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + EquipmentPackage = table.Column(type: "integer", nullable: false), + TirePackage = table.Column(type: "integer", nullable: false), + ToolKit = table.Column(type: "integer", nullable: false), + Price = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Bundlings", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Features", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + HelpDevice = table.Column(type: "integer", nullable: false), + CabinColor = table.Column(type: "text", nullable: false), + DriveType = table.Column(type: "integer", nullable: false), + Price = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Features", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Presales", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + PresaleStatus = table.Column(type: "integer", nullable: false), + Description = table.Column(type: "text", nullable: false), + DueTill = table.Column(type: "timestamp without time zone", nullable: false), + Price = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Presales", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Storekeepers", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + Surname = table.Column(type: "text", nullable: false), + Patronymic = table.Column(type: "text", nullable: true), + Password = table.Column(type: "text", nullable: false), + Email = table.Column(type: "text", nullable: false), + PhoneNumber = table.Column(type: "bigint", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Storekeepers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Workers", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + Surname = table.Column(type: "text", nullable: false), + Patronymic = table.Column(type: "text", nullable: true), + Password = table.Column(type: "text", nullable: false), + Email = table.Column(type: "text", nullable: false), + PhoneNumber = table.Column(type: "bigint", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Workers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "PresaleBundlings", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + PresaleId = table.Column(type: "integer", nullable: false), + BundlingId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_PresaleBundlings", x => x.Id); + table.ForeignKey( + name: "FK_PresaleBundlings_Bundlings_BundlingId", + column: x => x.BundlingId, + principalTable: "Bundlings", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PresaleBundlings_Presales_PresaleId", + column: x => x.PresaleId, + principalTable: "Presales", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Requests", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + PresaleId = table.Column(type: "integer", nullable: false), + Description = table.Column(type: "text", nullable: false), + RequestType = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Requests", x => x.Id); + table.ForeignKey( + name: "FK_Requests_Presales_PresaleId", + column: x => x.PresaleId, + principalTable: "Presales", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Orders", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + WorkerId = table.Column(type: "integer", nullable: false), + PaymentType = table.Column(type: "integer", nullable: false), + PaymentStatus = table.Column(type: "integer", nullable: false), + BuyerFCS = table.Column(type: "text", nullable: false), + PaymentDate = table.Column(type: "timestamp without time zone", nullable: false), + Sum = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Orders", x => x.Id); + table.ForeignKey( + name: "FK_Orders_Workers_WorkerId", + column: x => x.WorkerId, + principalTable: "Workers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Cars", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + StorekeeperId = table.Column(type: "integer", nullable: false), + OrderId = table.Column(type: "integer", nullable: false), + FeatureId = table.Column(type: "integer", nullable: true), + CarBrand = table.Column(type: "integer", nullable: false), + Model = table.Column(type: "text", nullable: false), + CarClass = table.Column(type: "integer", nullable: false), + Year = table.Column(type: "integer", nullable: false), + Price = table.Column(type: "double precision", nullable: false), + VINnumber = table.Column(type: "bigint", nullable: false), + FeatureID = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Cars", x => x.Id); + table.ForeignKey( + name: "FK_Cars_Features_FeatureId", + column: x => x.FeatureId, + principalTable: "Features", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Cars_Orders_OrderId", + column: x => x.OrderId, + principalTable: "Orders", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Cars_Storekeepers_StorekeeperId", + column: x => x.StorekeeperId, + principalTable: "Storekeepers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "OrderPresales", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + OrderId = table.Column(type: "integer", nullable: false), + PresaleId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OrderPresales", x => x.Id); + table.ForeignKey( + name: "FK_OrderPresales_Orders_OrderId", + column: x => x.OrderId, + principalTable: "Orders", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_OrderPresales_Presales_PresaleId", + column: x => x.PresaleId, + principalTable: "Presales", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "CarBundlings", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + CarId = table.Column(type: "integer", nullable: false), + BundlingId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_CarBundlings", x => x.Id); + table.ForeignKey( + name: "FK_CarBundlings_Bundlings_BundlingId", + column: x => x.BundlingId, + principalTable: "Bundlings", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_CarBundlings_Cars_CarId", + column: x => x.CarId, + principalTable: "Cars", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_CarBundlings_BundlingId", + table: "CarBundlings", + column: "BundlingId"); + + migrationBuilder.CreateIndex( + name: "IX_CarBundlings_CarId", + table: "CarBundlings", + column: "CarId"); + + migrationBuilder.CreateIndex( + name: "IX_Cars_FeatureId", + table: "Cars", + column: "FeatureId"); + + migrationBuilder.CreateIndex( + name: "IX_Cars_OrderId", + table: "Cars", + column: "OrderId"); + + migrationBuilder.CreateIndex( + name: "IX_Cars_StorekeeperId", + table: "Cars", + column: "StorekeeperId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderPresales_OrderId", + table: "OrderPresales", + column: "OrderId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderPresales_PresaleId", + table: "OrderPresales", + column: "PresaleId"); + + migrationBuilder.CreateIndex( + name: "IX_Orders_WorkerId", + table: "Orders", + column: "WorkerId"); + + migrationBuilder.CreateIndex( + name: "IX_PresaleBundlings_BundlingId", + table: "PresaleBundlings", + column: "BundlingId"); + + migrationBuilder.CreateIndex( + name: "IX_PresaleBundlings_PresaleId", + table: "PresaleBundlings", + column: "PresaleId"); + + migrationBuilder.CreateIndex( + name: "IX_Requests_PresaleId", + table: "Requests", + column: "PresaleId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "CarBundlings"); + + migrationBuilder.DropTable( + name: "OrderPresales"); + + migrationBuilder.DropTable( + name: "PresaleBundlings"); + + migrationBuilder.DropTable( + name: "Requests"); + + migrationBuilder.DropTable( + name: "Cars"); + + migrationBuilder.DropTable( + name: "Bundlings"); + + migrationBuilder.DropTable( + name: "Presales"); + + migrationBuilder.DropTable( + name: "Features"); + + migrationBuilder.DropTable( + name: "Orders"); + + migrationBuilder.DropTable( + name: "Storekeepers"); + + migrationBuilder.DropTable( + name: "Workers"); + } + } +} diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/CarCenterDatabaseModelSnapshot.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/CarCenterDatabaseModelSnapshot.cs new file mode 100644 index 0000000..ec96439 --- /dev/null +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/CarCenterDatabaseModelSnapshot.cs @@ -0,0 +1,499 @@ +// +using System; +using CarCenterDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace CarCenterDatabaseImplement.Migrations +{ + [DbContext(typeof(CarCenterDatabase))] + partial class CarCenterDatabaseModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.29") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EquipmentPackage") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.Property("TirePackage") + .HasColumnType("integer"); + + b.Property("ToolKit") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("Bundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CarBrand") + .HasColumnType("integer"); + + b.Property("CarClass") + .HasColumnType("integer"); + + b.Property("FeatureID") + .HasColumnType("integer"); + + b.Property("FeatureId") + .HasColumnType("integer"); + + b.Property("Model") + .IsRequired() + .HasColumnType("text"); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.Property("StorekeeperId") + .HasColumnType("integer"); + + b.Property("VINnumber") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("FeatureId"); + + b.HasIndex("OrderId"); + + b.HasIndex("StorekeeperId"); + + b.ToTable("Cars"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BundlingId") + .HasColumnType("integer"); + + b.Property("CarId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("BundlingId"); + + b.HasIndex("CarId"); + + b.ToTable("CarBundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CabinColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("DriveType") + .HasColumnType("integer"); + + b.Property("HelpDevice") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("Features"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BuyerFCS") + .IsRequired() + .HasColumnType("text"); + + b.Property("PaymentDate") + .HasColumnType("timestamp without time zone"); + + b.Property("PaymentStatus") + .HasColumnType("integer"); + + b.Property("PaymentType") + .HasColumnType("integer"); + + b.Property("Sum") + .HasColumnType("double precision"); + + b.Property("WorkerId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("WorkerId"); + + b.ToTable("Orders"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("OrderId") + .HasColumnType("integer"); + + b.Property("PresaleId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("OrderId"); + + b.HasIndex("PresaleId"); + + b.ToTable("OrderPresales"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("DueTill") + .HasColumnType("timestamp without time zone"); + + b.Property("PresaleStatus") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("Presales"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BundlingId") + .HasColumnType("integer"); + + b.Property("PresaleId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("BundlingId"); + + b.HasIndex("PresaleId"); + + b.ToTable("PresaleBundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("PresaleId") + .HasColumnType("integer"); + + b.Property("RequestType") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("PresaleId"); + + b.ToTable("Requests"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("Patronymic") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("bigint"); + + b.Property("Surname") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Storekeepers"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("Patronymic") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("bigint"); + + b.Property("Surname") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Workers"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Feature", "Feature") + .WithMany("Cars") + .HasForeignKey("FeatureId"); + + b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") + .WithMany("Cars") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Storekeeper", "Storekeeper") + .WithMany("Cars") + .HasForeignKey("StorekeeperId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Feature"); + + b.Navigation("Order"); + + b.Navigation("Storekeeper"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") + .WithMany("CarBundling") + .HasForeignKey("BundlingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Car", "Car") + .WithMany("Bundlings") + .HasForeignKey("CarId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bundling"); + + b.Navigation("Car"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Worker", "Worker") + .WithMany("Orders") + .HasForeignKey("WorkerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Worker"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") + .WithMany("Presales") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") + .WithMany("OrderPresales") + .HasForeignKey("PresaleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Order"); + + b.Navigation("Presale"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") + .WithMany("PresaleBundling") + .HasForeignKey("BundlingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") + .WithMany("Bundlings") + .HasForeignKey("PresaleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bundling"); + + b.Navigation("Presale"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => + { + b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") + .WithMany("Requests") + .HasForeignKey("PresaleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Presale"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => + { + b.Navigation("CarBundling"); + + b.Navigation("PresaleBundling"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => + { + b.Navigation("Bundlings"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => + { + b.Navigation("Cars"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => + { + b.Navigation("Cars"); + + b.Navigation("Presales"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => + { + b.Navigation("Bundlings"); + + b.Navigation("OrderPresales"); + + b.Navigation("Requests"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => + { + b.Navigation("Cars"); + }); + + modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => + { + b.Navigation("Orders"); + }); +#pragma warning restore 612, 618 + } + } +}