diff --git a/git/JurasicZoo/ZooContracts/SearchModels/ListPreservesSearchModel.cs b/git/JurasicZoo/ZooContracts/SearchModels/ListPreservesSearchModel.cs new file mode 100644 index 0000000..7d60a70 --- /dev/null +++ b/git/JurasicZoo/ZooContracts/SearchModels/ListPreservesSearchModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZooContracts.SearchModels +{ + public class ListPreservesSearchModel + { + public List? PreservesIds { get; set; } + } +} diff --git a/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240531221729_initialCreate.Designer.cs b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240531221729_initialCreate.Designer.cs new file mode 100644 index 0000000..8b0aefc --- /dev/null +++ b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240531221729_initialCreate.Designer.cs @@ -0,0 +1,260 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using ZooDataBaseImplement; + +#nullable disable + +namespace ZooDataBaseImplement.Migrations +{ + [DbContext(typeof(ZooDatabase))] + [Migration("20240531221729_initialCreate")] + partial class initialCreate + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.3") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClientFIO") + .IsRequired() + .HasColumnType("text"); + + b.Property("EMail") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Cost", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CostName") + .IsRequired() + .HasColumnType("text"); + + b.Property("CostPrice") + .HasColumnType("double precision"); + + b.Property("EmployeeId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("Costs"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EmployeeFIO") + .IsRequired() + .HasColumnType("text"); + + b.Property("Login") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Employees"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("EmployeeId") + .HasColumnType("integer"); + + b.Property("PreserveName") + .IsRequired() + .HasColumnType("text"); + + b.Property("PreservePrice") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("Preserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("integer"); + + b.Property("CostId") + .HasColumnType("integer"); + + b.Property("DateFinish") + .HasColumnType("timestamp with time zone"); + + b.Property("DateStart") + .HasColumnType("timestamp with time zone"); + + b.Property("RouteName") + .IsRequired() + .HasColumnType("text"); + + b.Property("RoutePrice") + .HasColumnType("double precision"); + + b.Property("Status") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("CostId"); + + b.ToTable("Routes"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.RoutePreserve", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("PreserveID") + .HasColumnType("integer"); + + b.Property("RouteID") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("PreserveID"); + + b.HasIndex("RouteID"); + + b.ToTable("RoutePreserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.HasOne("ZooDataBaseImplement.Models.Employee", null) + .WithMany("Preserves") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.HasOne("ZooDataBaseImplement.Models.Client", "Client") + .WithMany("Routes") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ZooDataBaseImplement.Models.Cost", null) + .WithMany("Routes") + .HasForeignKey("CostId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.RoutePreserve", b => + { + b.HasOne("ZooDataBaseImplement.Models.Preserve", "Preserve") + .WithMany("RoutePreserves") + .HasForeignKey("PreserveID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ZooDataBaseImplement.Models.Route", "Route") + .WithMany("Preserves") + .HasForeignKey("RouteID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Preserve"); + + b.Navigation("Route"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Client", b => + { + b.Navigation("Routes"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Cost", b => + { + b.Navigation("Routes"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b => + { + b.Navigation("Preserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.Navigation("RoutePreserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.Navigation("Preserves"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240531221729_initialCreate.cs b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240531221729_initialCreate.cs new file mode 100644 index 0000000..510722b --- /dev/null +++ b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240531221729_initialCreate.cs @@ -0,0 +1,186 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace ZooDataBaseImplement.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), + ClientFIO = 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: "Costs", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + EmployeeId = table.Column(type: "integer", nullable: false), + CostName = table.Column(type: "text", nullable: false), + CostPrice = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Costs", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Employees", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + EmployeeFIO = table.Column(type: "text", nullable: false), + Login = table.Column(type: "text", nullable: false), + Password = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Employees", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Routes", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ClientId = table.Column(type: "integer", nullable: false), + CostId = table.Column(type: "integer", nullable: false), + RouteName = table.Column(type: "text", nullable: false), + RoutePrice = table.Column(type: "double precision", nullable: false), + Status = table.Column(type: "integer", nullable: false), + DateStart = table.Column(type: "timestamp with time zone", nullable: false), + DateFinish = table.Column(type: "timestamp with time zone", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Routes", x => x.Id); + table.ForeignKey( + name: "FK_Routes_Clients_ClientId", + column: x => x.ClientId, + principalTable: "Clients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Routes_Costs_CostId", + column: x => x.CostId, + principalTable: "Costs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Preserves", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + EmployeeId = table.Column(type: "integer", nullable: false), + PreserveName = table.Column(type: "text", nullable: false), + PreservePrice = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Preserves", x => x.Id); + table.ForeignKey( + name: "FK_Preserves_Employees_EmployeeId", + column: x => x.EmployeeId, + principalTable: "Employees", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "RoutePreserves", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + RouteID = table.Column(type: "integer", nullable: false), + PreserveID = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_RoutePreserves", x => x.Id); + table.ForeignKey( + name: "FK_RoutePreserves_Preserves_PreserveID", + column: x => x.PreserveID, + principalTable: "Preserves", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_RoutePreserves_Routes_RouteID", + column: x => x.RouteID, + principalTable: "Routes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Preserves_EmployeeId", + table: "Preserves", + column: "EmployeeId"); + + migrationBuilder.CreateIndex( + name: "IX_RoutePreserves_PreserveID", + table: "RoutePreserves", + column: "PreserveID"); + + migrationBuilder.CreateIndex( + name: "IX_RoutePreserves_RouteID", + table: "RoutePreserves", + column: "RouteID"); + + migrationBuilder.CreateIndex( + name: "IX_Routes_ClientId", + table: "Routes", + column: "ClientId"); + + migrationBuilder.CreateIndex( + name: "IX_Routes_CostId", + table: "Routes", + column: "CostId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "RoutePreserves"); + + migrationBuilder.DropTable( + name: "Preserves"); + + migrationBuilder.DropTable( + name: "Routes"); + + migrationBuilder.DropTable( + name: "Employees"); + + migrationBuilder.DropTable( + name: "Clients"); + + migrationBuilder.DropTable( + name: "Costs"); + } + } +}