diff --git a/CarCenter/CarCenterContracts/BindingModels/CarBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/CarBindingModel.cs index 75886d6..3f1256d 100644 --- a/CarCenter/CarCenterContracts/BindingModels/CarBindingModel.cs +++ b/CarCenter/CarCenterContracts/BindingModels/CarBindingModel.cs @@ -12,7 +12,7 @@ namespace CarCenterContracts.BindingModels { public int Id { get; set; } public int StorekeeperId { get; set; } - public int OrderId { get; set; } + public int? OrderId { get; set; } public CarBrand CarBrand { get; set; } = CarBrand.Неизвестно; public string Model { get; set; } = string.Empty; public CarClass CarClass { get; set; } = CarClass.Неизвестно; diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528201628_InitFull.Designer.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.Designer.cs similarity index 98% rename from CarCenter/CarCenterDatabaseImplement/Migrations/20240528201628_InitFull.Designer.cs rename to CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.Designer.cs index b1d3881..d54bbc0 100644 --- a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528201628_InitFull.Designer.cs +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.Designer.cs @@ -12,8 +12,8 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace CarCenterDatabaseImplement.Migrations { [DbContext(typeof(CarCenterDatabase))] - [Migration("20240528201628_InitFull")] - partial class InitFull + [Migration("20240529141913_ababa4")] + partial class ababa4 { protected override void BuildTargetModel(ModelBuilder modelBuilder) { @@ -32,6 +32,9 @@ namespace CarCenterDatabaseImplement.Migrations NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + b.Property("DateCreate") + .HasColumnType("timestamp without time zone"); + b.Property("EquipmentPackage") .HasColumnType("integer"); @@ -66,6 +69,9 @@ namespace CarCenterDatabaseImplement.Migrations b.Property("CarClass") .HasColumnType("integer"); + b.Property("DateCreate") + .HasColumnType("timestamp without time zone"); + b.Property("FeatureID") .HasColumnType("integer"); diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528201628_InitFull.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.cs similarity index 98% rename from CarCenter/CarCenterDatabaseImplement/Migrations/20240528201628_InitFull.cs rename to CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.cs index bc836fd..b752746 100644 --- a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528201628_InitFull.cs +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.cs @@ -6,7 +6,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace CarCenterDatabaseImplement.Migrations { - public partial class InitFull : Migration + public partial class ababa4 : Migration { protected override void Up(MigrationBuilder migrationBuilder) { @@ -16,6 +16,7 @@ namespace CarCenterDatabaseImplement.Migrations { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + DateCreate = table.Column(type: "timestamp without time zone", nullable: false), StorekeeperId = table.Column(type: "integer", nullable: false), EquipmentPackage = table.Column(type: "integer", nullable: false), TirePackage = table.Column(type: "integer", nullable: false), @@ -182,6 +183,7 @@ namespace CarCenterDatabaseImplement.Migrations Year = table.Column(type: "integer", nullable: false), Price = table.Column(type: "double precision", nullable: false), VINnumber = table.Column(type: "bigint", nullable: false), + DateCreate = table.Column(type: "timestamp without time zone", nullable: false), FeatureID = table.Column(type: "integer", nullable: false) }, constraints: table => diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/CarCenterDatabaseModelSnapshot.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/CarCenterDatabaseModelSnapshot.cs new file mode 100644 index 0000000..aa4b0c8 --- /dev/null +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/CarCenterDatabaseModelSnapshot.cs @@ -0,0 +1,509 @@ +// +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("DateCreate") + .HasColumnType("timestamp without time zone"); + + b.Property("EquipmentPackage") + .HasColumnType("integer"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.Property("StorekeeperId") + .HasColumnType("integer"); + + 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("DateCreate") + .HasColumnType("timestamp without time zone"); + + 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.Property("StorekeeperId") + .HasColumnType("integer"); + + 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"); + + 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 + } + } +}