From eb1c9328bfddecbf24da44dd5eae7f46676e1d32 Mon Sep 17 00:00:00 2001 From: "trofimova.05" Date: Tue, 30 Apr 2024 22:49:20 +0300 Subject: [PATCH] / --- .../20240430191018_InitialCreate.Designer.cs | 377 ++++++++++++++++++ .../20240430191018_InitialCreate.cs | 260 ++++++++++++ .../Migrations/BankDBModelSnapshot.cs | 374 +++++++++++++++++ 3 files changed, 1011 insertions(+) create mode 100644 Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.Designer.cs create mode 100644 Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.cs create mode 100644 Bank/BankDatabaseImplement/Migrations/BankDBModelSnapshot.cs diff --git a/Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.Designer.cs b/Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.Designer.cs new file mode 100644 index 0000000..1060fd0 --- /dev/null +++ b/Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.Designer.cs @@ -0,0 +1,377 @@ +// +using System; +using BankDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace BankDatabaseImplement.Migrations +{ + [DbContext(typeof(BankDB))] + [Migration("20240430191018_InitialCreate")] + partial class InitialCreate + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("BankDatabaseImplement.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .IsRequired() + .HasColumnType("text"); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("text"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("text"); + + b.Property("MiddleName") + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Cost", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EmployeeId") + .HasColumnType("integer"); + + b.Property("NameOfCost") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("Costs"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.CostByPurchase", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CostId") + .HasColumnType("integer"); + + b.Property("Count") + .HasColumnType("integer"); + + b.Property("PurchaseId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("CostId"); + + b.HasIndex("PurchaseId"); + + b.ToTable("CostByPurchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Employee", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("text"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("text"); + + b.Property("MiddleName") + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("text"); + + b.Property("Post") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Employees"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Operation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EmployeeId") + .HasColumnType("integer"); + + b.Property("Mark") + .IsRequired() + .HasColumnType("text"); + + b.Property("Model") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("Operations"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.OperationByPurchase", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CountOperations") + .HasColumnType("integer"); + + b.Property("OperationId") + .HasColumnType("integer"); + + b.Property("PurchaseId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("OperationId"); + + b.HasIndex("PurchaseId"); + + b.ToTable("OperationByPurchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Payment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("date"); + + b.Property("OperationByPurchaseId") + .HasColumnType("integer"); + + b.Property("PaidPrice") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("OperationByPurchaseId"); + + b.ToTable("Payments"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Purchase", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("integer"); + + b.Property("DatePurchase") + .HasColumnType("date"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Cost", b => + { + b.HasOne("BankDatabaseImplement.Models.Employee", "Employee") + .WithMany("Costs") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.CostByPurchase", b => + { + b.HasOne("BankDatabaseImplement.Models.Cost", "Cost") + .WithMany("Purchases") + .HasForeignKey("CostId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BankDatabaseImplement.Models.Purchase", "Purchase") + .WithMany("Costs") + .HasForeignKey("PurchaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cost"); + + b.Navigation("Purchase"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Operation", b => + { + b.HasOne("BankDatabaseImplement.Models.Employee", "Employee") + .WithMany("Operations") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.OperationByPurchase", b => + { + b.HasOne("BankDatabaseImplement.Models.Operation", "Operation") + .WithMany("Purchases") + .HasForeignKey("OperationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BankDatabaseImplement.Models.Purchase", "Purchase") + .WithMany("Operations") + .HasForeignKey("PurchaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Operation"); + + b.Navigation("Purchase"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Payment", b => + { + b.HasOne("BankDatabaseImplement.Models.OperationByPurchase", "OperationByPurchase") + .WithMany("Payments") + .HasForeignKey("OperationByPurchaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationByPurchase"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Purchase", b => + { + b.HasOne("BankDatabaseImplement.Models.Client", "Client") + .WithMany("Purchases") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Client", b => + { + b.Navigation("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Cost", b => + { + b.Navigation("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Employee", b => + { + b.Navigation("Costs"); + + b.Navigation("Operations"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Operation", b => + { + b.Navigation("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.OperationByPurchase", b => + { + b.Navigation("Payments"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Purchase", b => + { + b.Navigation("Costs"); + + b.Navigation("Operations"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.cs b/Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.cs new file mode 100644 index 0000000..8d19f14 --- /dev/null +++ b/Bank/BankDatabaseImplement/Migrations/20240430191018_InitialCreate.cs @@ -0,0 +1,260 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace BankDatabaseImplement.Migrations +{ + /// + public partial class InitialCreate : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Clients", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + FirstName = table.Column(type: "text", nullable: false), + LastName = table.Column(type: "text", nullable: false), + MiddleName = table.Column(type: "text", nullable: true), + Address = table.Column(type: "text", nullable: false), + PhoneNumber = table.Column(type: "text", nullable: false), + Email = table.Column(type: "text", nullable: false), + Password = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Clients", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Employees", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + FirstName = table.Column(type: "text", nullable: false), + LastName = table.Column(type: "text", nullable: false), + MiddleName = table.Column(type: "text", nullable: true), + Post = table.Column(type: "text", nullable: false), + PhoneNumber = table.Column(type: "text", nullable: false), + Password = table.Column(type: "text", nullable: false), + Email = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Employees", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Purchases", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ClientId = table.Column(type: "integer", nullable: false), + DatePurchase = table.Column(type: "date", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Purchases", x => x.Id); + table.ForeignKey( + name: "FK_Purchases_Clients_ClientId", + column: x => x.ClientId, + principalTable: "Clients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Costs", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + EmployeeId = table.Column(type: "integer", nullable: false), + NameOfCost = table.Column(type: "text", nullable: false), + Price = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Costs", x => x.Id); + table.ForeignKey( + name: "FK_Costs_Employees_EmployeeId", + column: x => x.EmployeeId, + principalTable: "Employees", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Operations", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + EmployeeId = table.Column(type: "integer", nullable: false), + Model = table.Column(type: "text", nullable: false), + Price = table.Column(type: "double precision", nullable: false), + Mark = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Operations", x => x.Id); + table.ForeignKey( + name: "FK_Operations_Employees_EmployeeId", + column: x => x.EmployeeId, + principalTable: "Employees", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "CostByPurchases", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + CostId = table.Column(type: "integer", nullable: false), + PurchaseId = table.Column(type: "integer", nullable: false), + Count = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_CostByPurchases", x => x.Id); + table.ForeignKey( + name: "FK_CostByPurchases_Costs_CostId", + column: x => x.CostId, + principalTable: "Costs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_CostByPurchases_Purchases_PurchaseId", + column: x => x.PurchaseId, + principalTable: "Purchases", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "OperationByPurchases", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + OperationId = table.Column(type: "integer", nullable: false), + PurchaseId = table.Column(type: "integer", nullable: false), + CountOperations = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OperationByPurchases", x => x.Id); + table.ForeignKey( + name: "FK_OperationByPurchases_Operations_OperationId", + column: x => x.OperationId, + principalTable: "Operations", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_OperationByPurchases_Purchases_PurchaseId", + column: x => x.PurchaseId, + principalTable: "Purchases", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Payments", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + OperationByPurchaseId = table.Column(type: "integer", nullable: false), + Date = table.Column(type: "date", nullable: false), + PaidPrice = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Payments", x => x.Id); + table.ForeignKey( + name: "FK_Payments_OperationByPurchases_OperationByPurchaseId", + column: x => x.OperationByPurchaseId, + principalTable: "OperationByPurchases", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_CostByPurchases_CostId", + table: "CostByPurchases", + column: "CostId"); + + migrationBuilder.CreateIndex( + name: "IX_CostByPurchases_PurchaseId", + table: "CostByPurchases", + column: "PurchaseId"); + + migrationBuilder.CreateIndex( + name: "IX_Costs_EmployeeId", + table: "Costs", + column: "EmployeeId"); + + migrationBuilder.CreateIndex( + name: "IX_OperationByPurchases_OperationId", + table: "OperationByPurchases", + column: "OperationId"); + + migrationBuilder.CreateIndex( + name: "IX_OperationByPurchases_PurchaseId", + table: "OperationByPurchases", + column: "PurchaseId"); + + migrationBuilder.CreateIndex( + name: "IX_Operations_EmployeeId", + table: "Operations", + column: "EmployeeId"); + + migrationBuilder.CreateIndex( + name: "IX_Payments_OperationByPurchaseId", + table: "Payments", + column: "OperationByPurchaseId"); + + migrationBuilder.CreateIndex( + name: "IX_Purchases_ClientId", + table: "Purchases", + column: "ClientId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "CostByPurchases"); + + migrationBuilder.DropTable( + name: "Payments"); + + migrationBuilder.DropTable( + name: "Costs"); + + migrationBuilder.DropTable( + name: "OperationByPurchases"); + + migrationBuilder.DropTable( + name: "Operations"); + + migrationBuilder.DropTable( + name: "Purchases"); + + migrationBuilder.DropTable( + name: "Employees"); + + migrationBuilder.DropTable( + name: "Clients"); + } + } +} diff --git a/Bank/BankDatabaseImplement/Migrations/BankDBModelSnapshot.cs b/Bank/BankDatabaseImplement/Migrations/BankDBModelSnapshot.cs new file mode 100644 index 0000000..b0ca920 --- /dev/null +++ b/Bank/BankDatabaseImplement/Migrations/BankDBModelSnapshot.cs @@ -0,0 +1,374 @@ +// +using System; +using BankDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace BankDatabaseImplement.Migrations +{ + [DbContext(typeof(BankDB))] + partial class BankDBModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("BankDatabaseImplement.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .IsRequired() + .HasColumnType("text"); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("text"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("text"); + + b.Property("MiddleName") + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Cost", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EmployeeId") + .HasColumnType("integer"); + + b.Property("NameOfCost") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("Costs"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.CostByPurchase", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CostId") + .HasColumnType("integer"); + + b.Property("Count") + .HasColumnType("integer"); + + b.Property("PurchaseId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("CostId"); + + b.HasIndex("PurchaseId"); + + b.ToTable("CostByPurchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Employee", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("text"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("text"); + + b.Property("MiddleName") + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("text"); + + b.Property("Post") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Employees"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Operation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EmployeeId") + .HasColumnType("integer"); + + b.Property("Mark") + .IsRequired() + .HasColumnType("text"); + + b.Property("Model") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("Operations"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.OperationByPurchase", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CountOperations") + .HasColumnType("integer"); + + b.Property("OperationId") + .HasColumnType("integer"); + + b.Property("PurchaseId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("OperationId"); + + b.HasIndex("PurchaseId"); + + b.ToTable("OperationByPurchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Payment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("date"); + + b.Property("OperationByPurchaseId") + .HasColumnType("integer"); + + b.Property("PaidPrice") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("OperationByPurchaseId"); + + b.ToTable("Payments"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Purchase", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("integer"); + + b.Property("DatePurchase") + .HasColumnType("date"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Cost", b => + { + b.HasOne("BankDatabaseImplement.Models.Employee", "Employee") + .WithMany("Costs") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.CostByPurchase", b => + { + b.HasOne("BankDatabaseImplement.Models.Cost", "Cost") + .WithMany("Purchases") + .HasForeignKey("CostId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BankDatabaseImplement.Models.Purchase", "Purchase") + .WithMany("Costs") + .HasForeignKey("PurchaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cost"); + + b.Navigation("Purchase"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Operation", b => + { + b.HasOne("BankDatabaseImplement.Models.Employee", "Employee") + .WithMany("Operations") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.OperationByPurchase", b => + { + b.HasOne("BankDatabaseImplement.Models.Operation", "Operation") + .WithMany("Purchases") + .HasForeignKey("OperationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BankDatabaseImplement.Models.Purchase", "Purchase") + .WithMany("Operations") + .HasForeignKey("PurchaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Operation"); + + b.Navigation("Purchase"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Payment", b => + { + b.HasOne("BankDatabaseImplement.Models.OperationByPurchase", "OperationByPurchase") + .WithMany("Payments") + .HasForeignKey("OperationByPurchaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OperationByPurchase"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Purchase", b => + { + b.HasOne("BankDatabaseImplement.Models.Client", "Client") + .WithMany("Purchases") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Client", b => + { + b.Navigation("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Cost", b => + { + b.Navigation("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Employee", b => + { + b.Navigation("Costs"); + + b.Navigation("Operations"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Operation", b => + { + b.Navigation("Purchases"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.OperationByPurchase", b => + { + b.Navigation("Payments"); + }); + + modelBuilder.Entity("BankDatabaseImplement.Models.Purchase", b => + { + b.Navigation("Costs"); + + b.Navigation("Operations"); + }); +#pragma warning restore 612, 618 + } + } +}