diff --git a/DatabaseImplement/Migrations/20240622162300_second.Designer.cs b/DatabaseImplement/Migrations/20240622162300_second.Designer.cs
new file mode 100644
index 0000000..7c32992
--- /dev/null
+++ b/DatabaseImplement/Migrations/20240622162300_second.Designer.cs
@@ -0,0 +1,326 @@
+//
+using System;
+using DatabaseImplement;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace DatabaseImplement.Migrations
+{
+ [DbContext(typeof(Database))]
+ [Migration("20240622162300_second")]
+ partial class second
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.6")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("DatabaseImplement.Models.MediaFile", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Location")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ProductId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.ToTable("MediaFiles");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Amount")
+ .HasColumnType("integer");
+
+ b.Property("IsBeingSold")
+ .HasColumnType("boolean");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Price")
+ .HasColumnType("double precision");
+
+ b.Property("Rate")
+ .HasColumnType("double precision");
+
+ b.HasKey("Id");
+
+ b.ToTable("Products");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Purchase", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DatePurchase")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Status")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.ToTable("Purchases");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Role", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Roles");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Sell", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateSell")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasKey("Id");
+
+ b.ToTable("Sells");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supplier", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Deals")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Suppliers");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.SupplierProduct", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("ProductId")
+ .HasColumnType("uuid");
+
+ b.Property("SupplierId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProductId");
+
+ b.HasIndex("SupplierId");
+
+ b.ToTable("SupplierProducts");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Date")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Price")
+ .HasColumnType("double precision");
+
+ b.Property("Status")
+ .HasColumnType("integer");
+
+ b.Property("SupplierId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SupplierId");
+
+ b.ToTable("Supplies");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.SupplyProduct", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("ProductId")
+ .HasColumnType("uuid");
+
+ b.Property("SupplyId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProductId");
+
+ b.HasIndex("SupplyId");
+
+ b.ToTable("SupplyProducts");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.User", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Birthday")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("OnlyImportantMails")
+ .HasColumnType("boolean");
+
+ b.Property("PasswordHash")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("RoleId")
+ .HasColumnType("uuid");
+
+ b.Property("SecondName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("Users");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.SupplierProduct", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Product", "Product")
+ .WithMany()
+ .HasForeignKey("ProductId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Supplier", "Supplier")
+ .WithMany("Products")
+ .HasForeignKey("SupplierId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Product");
+
+ b.Navigation("Supplier");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Supplier", "Supplier")
+ .WithMany()
+ .HasForeignKey("SupplierId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Supplier");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.SupplyProduct", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Product", "Product")
+ .WithMany()
+ .HasForeignKey("ProductId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Supply", "Supply")
+ .WithMany("Products")
+ .HasForeignKey("SupplyId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Product");
+
+ b.Navigation("Supply");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.User", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Role", "Role")
+ .WithMany()
+ .HasForeignKey("RoleId");
+
+ b.Navigation("Role");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supplier", b =>
+ {
+ b.Navigation("Products");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
+ {
+ b.Navigation("Products");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/DatabaseImplement/Migrations/20240622162300_second.cs b/DatabaseImplement/Migrations/20240622162300_second.cs
new file mode 100644
index 0000000..a0bb6ac
--- /dev/null
+++ b/DatabaseImplement/Migrations/20240622162300_second.cs
@@ -0,0 +1,221 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace DatabaseImplement.Migrations
+{
+ ///
+ public partial class second : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "OnlyImportantMails",
+ table: "Users",
+ type: "boolean",
+ nullable: false,
+ defaultValue: false);
+
+ migrationBuilder.CreateTable(
+ name: "MediaFiles",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ Name = table.Column(type: "text", nullable: false),
+ Location = table.Column(type: "text", nullable: false),
+ ProductId = table.Column(type: "uuid", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_MediaFiles", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Products",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ Name = table.Column(type: "text", nullable: false),
+ Price = table.Column(type: "double precision", nullable: false),
+ Rate = table.Column(type: "double precision", nullable: false),
+ IsBeingSold = table.Column(type: "boolean", nullable: false),
+ Amount = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Products", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Purchases",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ DatePurchase = table.Column(type: "timestamp with time zone", nullable: false),
+ Status = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Purchases", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Sells",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ DateSell = table.Column(type: "timestamp with time zone", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Sells", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Suppliers",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ Name = table.Column(type: "text", nullable: false),
+ Deals = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Suppliers", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SupplierProducts",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ SupplierId = table.Column(type: "uuid", nullable: false),
+ ProductId = table.Column(type: "uuid", nullable: false),
+ Count = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SupplierProducts", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SupplierProducts_Products_ProductId",
+ column: x => x.ProductId,
+ principalTable: "Products",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_SupplierProducts_Suppliers_SupplierId",
+ column: x => x.SupplierId,
+ principalTable: "Suppliers",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Supplies",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ Name = table.Column(type: "text", nullable: false),
+ Price = table.Column(type: "double precision", nullable: false),
+ SupplierId = table.Column(type: "uuid", nullable: false),
+ Date = table.Column(type: "timestamp with time zone", nullable: false),
+ Status = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Supplies", x => x.Id);
+ table.ForeignKey(
+ name: "FK_Supplies_Suppliers_SupplierId",
+ column: x => x.SupplierId,
+ principalTable: "Suppliers",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "SupplyProducts",
+ columns: table => new
+ {
+ Id = table.Column(type: "uuid", nullable: false),
+ SupplyId = table.Column(type: "uuid", nullable: false),
+ ProductId = table.Column(type: "uuid", nullable: false),
+ Count = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_SupplyProducts", x => x.Id);
+ table.ForeignKey(
+ name: "FK_SupplyProducts_Products_ProductId",
+ column: x => x.ProductId,
+ principalTable: "Products",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_SupplyProducts_Supplies_SupplyId",
+ column: x => x.SupplyId,
+ principalTable: "Supplies",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_SupplierProducts_ProductId",
+ table: "SupplierProducts",
+ column: "ProductId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_SupplierProducts_SupplierId",
+ table: "SupplierProducts",
+ column: "SupplierId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_Supplies_SupplierId",
+ table: "Supplies",
+ column: "SupplierId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_SupplyProducts_ProductId",
+ table: "SupplyProducts",
+ column: "ProductId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_SupplyProducts_SupplyId",
+ table: "SupplyProducts",
+ column: "SupplyId");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "MediaFiles");
+
+ migrationBuilder.DropTable(
+ name: "Purchases");
+
+ migrationBuilder.DropTable(
+ name: "Sells");
+
+ migrationBuilder.DropTable(
+ name: "SupplierProducts");
+
+ migrationBuilder.DropTable(
+ name: "SupplyProducts");
+
+ migrationBuilder.DropTable(
+ name: "Products");
+
+ migrationBuilder.DropTable(
+ name: "Supplies");
+
+ migrationBuilder.DropTable(
+ name: "Suppliers");
+
+ migrationBuilder.DropColumn(
+ name: "OnlyImportantMails",
+ table: "Users");
+ }
+ }
+}
diff --git a/DatabaseImplement/Migrations/DatabaseModelSnapshot.cs b/DatabaseImplement/Migrations/DatabaseModelSnapshot.cs
index 875158d..80c3363 100644
--- a/DatabaseImplement/Migrations/DatabaseModelSnapshot.cs
+++ b/DatabaseImplement/Migrations/DatabaseModelSnapshot.cs
@@ -22,6 +22,72 @@ namespace DatabaseImplement.Migrations
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+ modelBuilder.Entity("DatabaseImplement.Models.MediaFile", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Location")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ProductId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.ToTable("MediaFiles");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Amount")
+ .HasColumnType("integer");
+
+ b.Property("IsBeingSold")
+ .HasColumnType("boolean");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Price")
+ .HasColumnType("double precision");
+
+ b.Property("Rate")
+ .HasColumnType("double precision");
+
+ b.HasKey("Id");
+
+ b.ToTable("Products");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Purchase", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DatePurchase")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Status")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.ToTable("Purchases");
+ });
+
modelBuilder.Entity("DatabaseImplement.Models.Role", b =>
{
b.Property("Id")
@@ -37,6 +103,115 @@ namespace DatabaseImplement.Migrations
b.ToTable("Roles");
});
+ modelBuilder.Entity("DatabaseImplement.Models.Sell", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("DateSell")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasKey("Id");
+
+ b.ToTable("Sells");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supplier", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Deals")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Suppliers");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.SupplierProduct", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("ProductId")
+ .HasColumnType("uuid");
+
+ b.Property("SupplierId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProductId");
+
+ b.HasIndex("SupplierId");
+
+ b.ToTable("SupplierProducts");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Date")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Price")
+ .HasColumnType("double precision");
+
+ b.Property("Status")
+ .HasColumnType("integer");
+
+ b.Property("SupplierId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SupplierId");
+
+ b.ToTable("Supplies");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.SupplyProduct", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("ProductId")
+ .HasColumnType("uuid");
+
+ b.Property("SupplyId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProductId");
+
+ b.HasIndex("SupplyId");
+
+ b.ToTable("SupplyProducts");
+ });
+
modelBuilder.Entity("DatabaseImplement.Models.User", b =>
{
b.Property("Id")
@@ -54,6 +229,9 @@ namespace DatabaseImplement.Migrations
.IsRequired()
.HasColumnType("text");
+ b.Property("OnlyImportantMails")
+ .HasColumnType("boolean");
+
b.Property("PasswordHash")
.IsRequired()
.HasColumnType("text");
@@ -72,6 +250,55 @@ namespace DatabaseImplement.Migrations
b.ToTable("Users");
});
+ modelBuilder.Entity("DatabaseImplement.Models.SupplierProduct", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Product", "Product")
+ .WithMany()
+ .HasForeignKey("ProductId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Supplier", "Supplier")
+ .WithMany("Products")
+ .HasForeignKey("SupplierId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Product");
+
+ b.Navigation("Supplier");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Supplier", "Supplier")
+ .WithMany()
+ .HasForeignKey("SupplierId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Supplier");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.SupplyProduct", b =>
+ {
+ b.HasOne("DatabaseImplement.Models.Product", "Product")
+ .WithMany()
+ .HasForeignKey("ProductId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("DatabaseImplement.Models.Supply", "Supply")
+ .WithMany("Products")
+ .HasForeignKey("SupplyId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Product");
+
+ b.Navigation("Supply");
+ });
+
modelBuilder.Entity("DatabaseImplement.Models.User", b =>
{
b.HasOne("DatabaseImplement.Models.Role", "Role")
@@ -80,6 +307,16 @@ namespace DatabaseImplement.Migrations
b.Navigation("Role");
});
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supplier", b =>
+ {
+ b.Navigation("Products");
+ });
+
+ modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
+ {
+ b.Navigation("Products");
+ });
#pragma warning restore 612, 618
}
}