diff --git a/Course/DatabaseImplement/Migrations/20240501121257_addtimeforguarantor.Designer.cs b/Course/DatabaseImplement/Migrations/20240501121257_addtimeforguarantor.Designer.cs
new file mode 100644
index 0000000..a85a7bc
--- /dev/null
+++ b/Course/DatabaseImplement/Migrations/20240501121257_addtimeforguarantor.Designer.cs
@@ -0,0 +1,572 @@
+//
+using System;
+using DatabaseImplement;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace DatabaseImplement.Migrations
+{
+ [DbContext(typeof(FactoryGoWorkDatabase))]
+ [Migration("20240501121257_addtimeforguarantor")]
+ partial class addtimeforguarantor
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "6.0.29")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
+
+ modelBuilder.Entity("DatabaseImplement.Models.Detail", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Cost")
+ .HasColumnType("float");
+
+ b.Property("DateCreate")
+ .HasColumnType("datetime2");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Details");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.DetailProduct", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Count")
+ .HasColumnType("int");
+
+ b.Property("DetailId")
+ .HasColumnType("int");
+
+ b.Property("ProductId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DetailId");
+
+ b.HasIndex("ProductId");
+
+ b.ToTable("DetailProducts");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.DetailProduction", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("DetailId")
+ .HasColumnType("int");
+
+ b.Property("ProductionId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DetailId");
+
+ b.HasIndex("ProductionId");
+
+ b.ToTable("DetailProductions");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Guarantor", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Login")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Guarantors");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Implementer", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Login")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Implementers");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Machine", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Country")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DateCreate")
+ .HasColumnType("datetime2");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Machines");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Cost")
+ .HasColumnType("float");
+
+ b.Property("MachineId")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MachineId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Products");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Production", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Cost")
+ .HasColumnType("float");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Productions");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Worker", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Birthday")
+ .HasColumnType("datetime2");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Salary")
+ .HasColumnType("float");
+
+ b.Property("Specialization")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Workers");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.WorkerMachine", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("MachineId")
+ .HasColumnType("int");
+
+ b.Property("WorkerId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MachineId");
+
+ b.HasIndex("WorkerId");
+
+ b.ToTable("WorkerMachines");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.WorkerWorkshop", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("WorkerId")
+ .HasColumnType("int");
+
+ b.Property("WorkshopId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("WorkerId");
+
+ b.HasIndex("WorkshopId");
+
+ b.ToTable("WorkerWorkshops");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Workshop", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1);
+
+ b.Property("Address")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DateCreate")
+ .HasColumnType("datetime2");
+
+ b.Property("Director")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProductionId")
+ .HasColumnType("int");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProductionId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Workshops");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Detail", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Implementer", "User")
+ .WithMany("Details")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.DetailProduct", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Detail", "Detail")
+ .WithMany("DetailProducts")
+ .HasForeignKey("DetailId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Product", "Product")
+ .WithMany("Details")
+ .HasForeignKey("ProductId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Detail");
+
+ b.Navigation("Product");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.DetailProduction", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Detail", "Detail")
+ .WithMany("DetailProductions")
+ .HasForeignKey("DetailId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Production", "Production")
+ .WithMany("Details")
+ .HasForeignKey("ProductionId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Detail");
+
+ b.Navigation("Production");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Machine", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Guarantor", "Guarantor")
+ .WithMany("Machines")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Guarantor");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Machine", "Machine")
+ .WithMany("Products")
+ .HasForeignKey("MachineId");
+
+ b.HasOne("DatabaseImplement.Models.Implementer", "User")
+ .WithMany("Products")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Machine");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Production", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Implementer", "User")
+ .WithMany("Productions")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Worker", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Guarantor", "Guarantor")
+ .WithMany("Workers")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Guarantor");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.WorkerMachine", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Machine", "Machine")
+ .WithMany("Workers")
+ .HasForeignKey("MachineId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Worker", "Worker")
+ .WithMany("WorkerMachines")
+ .HasForeignKey("WorkerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Machine");
+
+ b.Navigation("Worker");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.WorkerWorkshop", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Worker", "Worker")
+ .WithMany("WorkerWorkshops")
+ .HasForeignKey("WorkerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Workshop", "Workshop")
+ .WithMany("Workers")
+ .HasForeignKey("WorkshopId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Worker");
+
+ b.Navigation("Workshop");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Workshop", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Production", "Production")
+ .WithMany("Workshops")
+ .HasForeignKey("ProductionId");
+
+ b.HasOne("DatabaseImplement.Models.Guarantor", null)
+ .WithMany("Workshops")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Production");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Detail", b =>
+ {
+ b.Navigation("DetailProductions");
+
+ b.Navigation("DetailProducts");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Guarantor", b =>
+ {
+ b.Navigation("Machines");
+
+ b.Navigation("Workers");
+
+ b.Navigation("Workshops");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Implementer", b =>
+ {
+ b.Navigation("Details");
+
+ b.Navigation("Productions");
+
+ b.Navigation("Products");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Machine", b =>
+ {
+ b.Navigation("Products");
+
+ b.Navigation("Workers");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
+ {
+ b.Navigation("Details");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Production", b =>
+ {
+ b.Navigation("Details");
+
+ b.Navigation("Workshops");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Worker", b =>
+ {
+ b.Navigation("WorkerMachines");
+
+ b.Navigation("WorkerWorkshops");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Workshop", b =>
+ {
+ b.Navigation("Workers");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Course/DatabaseImplement/Migrations/20240501121257_addtimeforguarantor.cs b/Course/DatabaseImplement/Migrations/20240501121257_addtimeforguarantor.cs
new file mode 100644
index 0000000..5e3ba9f
--- /dev/null
+++ b/Course/DatabaseImplement/Migrations/20240501121257_addtimeforguarantor.cs
@@ -0,0 +1,71 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace DatabaseImplement.Migrations
+{
+ public partial class addtimeforguarantor : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "FK_WorkerMachines_Machines_WorkerId",
+ table: "WorkerMachines");
+
+ migrationBuilder.AddColumn(
+ name: "DateCreate",
+ table: "Workshops",
+ type: "datetime2",
+ nullable: false,
+ defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
+
+ migrationBuilder.AddColumn(
+ name: "DateCreate",
+ table: "Machines",
+ type: "datetime2",
+ nullable: false,
+ defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
+
+ migrationBuilder.CreateIndex(
+ name: "IX_WorkerMachines_MachineId",
+ table: "WorkerMachines",
+ column: "MachineId");
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_WorkerMachines_Machines_MachineId",
+ table: "WorkerMachines",
+ column: "MachineId",
+ principalTable: "Machines",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Restrict);
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "FK_WorkerMachines_Machines_MachineId",
+ table: "WorkerMachines");
+
+ migrationBuilder.DropIndex(
+ name: "IX_WorkerMachines_MachineId",
+ table: "WorkerMachines");
+
+ migrationBuilder.DropColumn(
+ name: "DateCreate",
+ table: "Workshops");
+
+ migrationBuilder.DropColumn(
+ name: "DateCreate",
+ table: "Machines");
+
+ migrationBuilder.AddForeignKey(
+ name: "FK_WorkerMachines_Machines_WorkerId",
+ table: "WorkerMachines",
+ column: "WorkerId",
+ principalTable: "Machines",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Restrict);
+ }
+ }
+}
diff --git a/Course/DatabaseImplement/Migrations/FactoryGoWorkDatabaseModelSnapshot.cs b/Course/DatabaseImplement/Migrations/FactoryGoWorkDatabaseModelSnapshot.cs
index cd7adcf..cbaa247 100644
--- a/Course/DatabaseImplement/Migrations/FactoryGoWorkDatabaseModelSnapshot.cs
+++ b/Course/DatabaseImplement/Migrations/FactoryGoWorkDatabaseModelSnapshot.cs
@@ -169,6 +169,9 @@ namespace DatabaseImplement.Migrations
.IsRequired()
.HasColumnType("nvarchar(max)");
+ b.Property("DateCreate")
+ .HasColumnType("datetime2");
+
b.Property("Title")
.IsRequired()
.HasColumnType("nvarchar(max)");
@@ -286,6 +289,8 @@ namespace DatabaseImplement.Migrations
b.HasKey("Id");
+ b.HasIndex("MachineId");
+
b.HasIndex("WorkerId");
b.ToTable("WorkerMachines");
@@ -326,6 +331,9 @@ namespace DatabaseImplement.Migrations
.IsRequired()
.HasColumnType("nvarchar(max)");
+ b.Property("DateCreate")
+ .HasColumnType("datetime2");
+
b.Property("Director")
.IsRequired()
.HasColumnType("nvarchar(max)");
@@ -412,7 +420,7 @@ namespace DatabaseImplement.Migrations
modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
{
b.HasOne("DatabaseImplement.Models.Machine", "Machine")
- .WithMany()
+ .WithMany("Products")
.HasForeignKey("MachineId");
b.HasOne("DatabaseImplement.Models.Implementer", "User")
@@ -452,7 +460,7 @@ namespace DatabaseImplement.Migrations
{
b.HasOne("DatabaseImplement.Models.Machine", "Machine")
.WithMany("Workers")
- .HasForeignKey("WorkerId")
+ .HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
@@ -492,15 +500,13 @@ namespace DatabaseImplement.Migrations
.WithMany("Workshops")
.HasForeignKey("ProductionId");
- b.HasOne("DatabaseImplement.Models.Guarantor", "User")
+ b.HasOne("DatabaseImplement.Models.Guarantor", null)
.WithMany("Workshops")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Production");
-
- b.Navigation("User");
});
modelBuilder.Entity("DatabaseImplement.Models.Detail", b =>
@@ -530,6 +536,8 @@ namespace DatabaseImplement.Migrations
modelBuilder.Entity("DatabaseImplement.Models.Machine", b =>
{
+ b.Navigation("Products");
+
b.Navigation("Workers");
});