From aa08035ab4abdac588168db9b8c934d37def8768 Mon Sep 17 00:00:00 2001 From: MaxKarme <91691525+MaxKarme@users.noreply.github.com> Date: Sun, 9 Apr 2023 01:20:49 +0400 Subject: [PATCH] make migration --- .../20230408211938_Init.Designer.cs | 497 ++++++++++++++++++ .../Migrations/20230408211938_Init.cs | 384 ++++++++++++++ .../UniversityDatabaseModelSnapshot.cs | 494 +++++++++++++++++ University/University/University.csproj | 11 + 4 files changed, 1386 insertions(+) create mode 100644 University/DatabaseImplement/Migrations/20230408211938_Init.Designer.cs create mode 100644 University/DatabaseImplement/Migrations/20230408211938_Init.cs create mode 100644 University/DatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs diff --git a/University/DatabaseImplement/Migrations/20230408211938_Init.Designer.cs b/University/DatabaseImplement/Migrations/20230408211938_Init.Designer.cs new file mode 100644 index 0000000..ccfeb13 --- /dev/null +++ b/University/DatabaseImplement/Migrations/20230408211938_Init.Designer.cs @@ -0,0 +1,497 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using UniversityDatabaseImplement; + +#nullable disable + +namespace UniversityDatabaseImplement.Migrations +{ + [DbContext(typeof(UniversityDatabase))] + [Migration("20230408211938_Init")] + partial class Init + { + /// + 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("UniversityDatabaseImplement.Models.Activity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("timestamp with time zone"); + + b.Property("ExaminationResultId") + .HasColumnType("integer"); + + b.Property("Number") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ExaminationResultId"); + + b.ToTable("Activities"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Department") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Disciplines"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ExaminationResult", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("timestamp with time zone"); + + b.Property("ExaminationForm") + .IsRequired() + .HasColumnType("text"); + + b.Property("Mark") + .HasColumnType("integer"); + + b.Property("StatementId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("StatementId"); + + b.ToTable("ExaminationResults"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("ReportTypes"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeActivity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ActivityId") + .HasColumnType("integer"); + + b.Property("ReportTypeId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ActivityId"); + + b.HasIndex("ReportTypeId"); + + b.ToTable("ReportTypeActivities"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeDiscipline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DisciplineId") + .HasColumnType("integer"); + + b.Property("ReportTypeId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("DisciplineId"); + + b.HasIndex("ReportTypeId"); + + b.ToTable("ReportTypeDisciplines"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Statement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("timestamp with time zone"); + + b.Property("DisciplineId") + .HasColumnType("integer"); + + b.Property("HoursCount") + .HasColumnType("integer"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("DisciplineId"); + + b.HasIndex("UserId"); + + b.ToTable("Statements"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StatementStudent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("StatementId") + .HasColumnType("integer"); + + b.Property("StudentId") + .HasColumnType("integer"); + + b.Property("StudentTypeId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("StatementId"); + + b.HasIndex("StudentId"); + + b.ToTable("StatementStudents"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Student", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("RecordCardNumber") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Students"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StudentExaminationResult", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ExaminationResultId") + .HasColumnType("integer"); + + b.Property("StudentId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ExaminationResultId"); + + b.HasIndex("StudentId"); + + b.ToTable("StudentExaminationResults"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Login") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("text"); + + b.Property("Position") + .IsRequired() + .HasColumnType("text"); + + b.Property("Surname") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.UserStudent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("StudentId") + .HasColumnType("integer"); + + b.Property("StudentTypeId") + .HasColumnType("integer"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("StudentId"); + + b.HasIndex("UserId"); + + b.ToTable("UserStudents"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Activity", b => + { + b.HasOne("UniversityDatabaseImplement.Models.ExaminationResult", null) + .WithMany("Activities") + .HasForeignKey("ExaminationResultId"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ExaminationResult", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Statement", null) + .WithMany("ExaminationResults") + .HasForeignKey("StatementId"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeActivity", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Activity", "Activity") + .WithMany("ReportTypeActivities") + .HasForeignKey("ActivityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.ReportType", "ReportType") + .WithMany("ReportTypeActivities") + .HasForeignKey("ReportTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Activity"); + + b.Navigation("ReportType"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeDiscipline", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Discipline", "Discipline") + .WithMany("ReportTypeDisciplines") + .HasForeignKey("DisciplineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.ReportType", "ReportType") + .WithMany("ReportTypeDisciplines") + .HasForeignKey("ReportTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Discipline"); + + b.Navigation("ReportType"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Statement", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Discipline", null) + .WithMany("Statements") + .HasForeignKey("DisciplineId"); + + b.HasOne("UniversityDatabaseImplement.Models.User", null) + .WithMany("Statements") + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StatementStudent", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Statement", "Statement") + .WithMany("StatementStudents") + .HasForeignKey("StatementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.Student", "Student") + .WithMany("StatementStudents") + .HasForeignKey("StudentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Statement"); + + b.Navigation("Student"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StudentExaminationResult", b => + { + b.HasOne("UniversityDatabaseImplement.Models.ExaminationResult", "ExaminationResult") + .WithMany("StudentExaminationResults") + .HasForeignKey("ExaminationResultId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.Student", "Student") + .WithMany("StudentExaminationResults") + .HasForeignKey("StudentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ExaminationResult"); + + b.Navigation("Student"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.UserStudent", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Student", "Student") + .WithMany("StudentUsers") + .HasForeignKey("StudentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.User", "User") + .WithMany("StudentUsers") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Student"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Activity", b => + { + b.Navigation("ReportTypeActivities"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => + { + b.Navigation("ReportTypeDisciplines"); + + b.Navigation("Statements"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ExaminationResult", b => + { + b.Navigation("Activities"); + + b.Navigation("StudentExaminationResults"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportType", b => + { + b.Navigation("ReportTypeActivities"); + + b.Navigation("ReportTypeDisciplines"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Statement", b => + { + b.Navigation("ExaminationResults"); + + b.Navigation("StatementStudents"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Student", b => + { + b.Navigation("StatementStudents"); + + b.Navigation("StudentExaminationResults"); + + b.Navigation("StudentUsers"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.User", b => + { + b.Navigation("Statements"); + + b.Navigation("StudentUsers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/University/DatabaseImplement/Migrations/20230408211938_Init.cs b/University/DatabaseImplement/Migrations/20230408211938_Init.cs new file mode 100644 index 0000000..31afc6e --- /dev/null +++ b/University/DatabaseImplement/Migrations/20230408211938_Init.cs @@ -0,0 +1,384 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace UniversityDatabaseImplement.Migrations +{ + /// + public partial class Init : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Disciplines", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + Department = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Disciplines", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "ReportTypes", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ReportTypes", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Students", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + RecordCardNumber = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Students", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Users", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + Surname = table.Column(type: "text", nullable: false), + PhoneNumber = table.Column(type: "text", nullable: false), + Position = 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_Users", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "ReportTypeDisciplines", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ReportTypeId = table.Column(type: "integer", nullable: false), + DisciplineId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ReportTypeDisciplines", x => x.Id); + table.ForeignKey( + name: "FK_ReportTypeDisciplines_Disciplines_DisciplineId", + column: x => x.DisciplineId, + principalTable: "Disciplines", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ReportTypeDisciplines_ReportTypes_ReportTypeId", + column: x => x.ReportTypeId, + principalTable: "ReportTypes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Statements", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Date = table.Column(type: "timestamp with time zone", nullable: false), + HoursCount = table.Column(type: "integer", nullable: false), + DisciplineId = table.Column(type: "integer", nullable: true), + UserId = table.Column(type: "integer", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Statements", x => x.Id); + table.ForeignKey( + name: "FK_Statements_Disciplines_DisciplineId", + column: x => x.DisciplineId, + principalTable: "Disciplines", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Statements_Users_UserId", + column: x => x.UserId, + principalTable: "Users", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "UserStudents", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + StudentTypeId = table.Column(type: "integer", nullable: false), + UserId = table.Column(type: "integer", nullable: false), + StudentId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_UserStudents", x => x.Id); + table.ForeignKey( + name: "FK_UserStudents_Students_StudentId", + column: x => x.StudentId, + principalTable: "Students", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_UserStudents_Users_UserId", + column: x => x.UserId, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ExaminationResults", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ExaminationForm = table.Column(type: "text", nullable: false), + Mark = table.Column(type: "integer", nullable: false), + Date = table.Column(type: "timestamp with time zone", nullable: false), + StatementId = table.Column(type: "integer", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_ExaminationResults", x => x.Id); + table.ForeignKey( + name: "FK_ExaminationResults_Statements_StatementId", + column: x => x.StatementId, + principalTable: "Statements", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "StatementStudents", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + StudentTypeId = table.Column(type: "integer", nullable: false), + StatementId = table.Column(type: "integer", nullable: false), + StudentId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_StatementStudents", x => x.Id); + table.ForeignKey( + name: "FK_StatementStudents_Statements_StatementId", + column: x => x.StatementId, + principalTable: "Statements", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_StatementStudents_Students_StudentId", + column: x => x.StudentId, + principalTable: "Students", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Activities", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Date = table.Column(type: "timestamp with time zone", nullable: false), + Number = table.Column(type: "integer", nullable: false), + ExaminationResultId = table.Column(type: "integer", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Activities", x => x.Id); + table.ForeignKey( + name: "FK_Activities_ExaminationResults_ExaminationResultId", + column: x => x.ExaminationResultId, + principalTable: "ExaminationResults", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "StudentExaminationResults", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ExaminationResultId = table.Column(type: "integer", nullable: false), + StudentId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_StudentExaminationResults", x => x.Id); + table.ForeignKey( + name: "FK_StudentExaminationResults_ExaminationResults_ExaminationRes~", + column: x => x.ExaminationResultId, + principalTable: "ExaminationResults", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_StudentExaminationResults_Students_StudentId", + column: x => x.StudentId, + principalTable: "Students", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ReportTypeActivities", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ReportTypeId = table.Column(type: "integer", nullable: false), + ActivityId = table.Column(type: "integer", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ReportTypeActivities", x => x.Id); + table.ForeignKey( + name: "FK_ReportTypeActivities_Activities_ActivityId", + column: x => x.ActivityId, + principalTable: "Activities", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ReportTypeActivities_ReportTypes_ReportTypeId", + column: x => x.ReportTypeId, + principalTable: "ReportTypes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Activities_ExaminationResultId", + table: "Activities", + column: "ExaminationResultId"); + + migrationBuilder.CreateIndex( + name: "IX_ExaminationResults_StatementId", + table: "ExaminationResults", + column: "StatementId"); + + migrationBuilder.CreateIndex( + name: "IX_ReportTypeActivities_ActivityId", + table: "ReportTypeActivities", + column: "ActivityId"); + + migrationBuilder.CreateIndex( + name: "IX_ReportTypeActivities_ReportTypeId", + table: "ReportTypeActivities", + column: "ReportTypeId"); + + migrationBuilder.CreateIndex( + name: "IX_ReportTypeDisciplines_DisciplineId", + table: "ReportTypeDisciplines", + column: "DisciplineId"); + + migrationBuilder.CreateIndex( + name: "IX_ReportTypeDisciplines_ReportTypeId", + table: "ReportTypeDisciplines", + column: "ReportTypeId"); + + migrationBuilder.CreateIndex( + name: "IX_Statements_DisciplineId", + table: "Statements", + column: "DisciplineId"); + + migrationBuilder.CreateIndex( + name: "IX_Statements_UserId", + table: "Statements", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_StatementStudents_StatementId", + table: "StatementStudents", + column: "StatementId"); + + migrationBuilder.CreateIndex( + name: "IX_StatementStudents_StudentId", + table: "StatementStudents", + column: "StudentId"); + + migrationBuilder.CreateIndex( + name: "IX_StudentExaminationResults_ExaminationResultId", + table: "StudentExaminationResults", + column: "ExaminationResultId"); + + migrationBuilder.CreateIndex( + name: "IX_StudentExaminationResults_StudentId", + table: "StudentExaminationResults", + column: "StudentId"); + + migrationBuilder.CreateIndex( + name: "IX_UserStudents_StudentId", + table: "UserStudents", + column: "StudentId"); + + migrationBuilder.CreateIndex( + name: "IX_UserStudents_UserId", + table: "UserStudents", + column: "UserId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ReportTypeActivities"); + + migrationBuilder.DropTable( + name: "ReportTypeDisciplines"); + + migrationBuilder.DropTable( + name: "StatementStudents"); + + migrationBuilder.DropTable( + name: "StudentExaminationResults"); + + migrationBuilder.DropTable( + name: "UserStudents"); + + migrationBuilder.DropTable( + name: "Activities"); + + migrationBuilder.DropTable( + name: "ReportTypes"); + + migrationBuilder.DropTable( + name: "Students"); + + migrationBuilder.DropTable( + name: "ExaminationResults"); + + migrationBuilder.DropTable( + name: "Statements"); + + migrationBuilder.DropTable( + name: "Disciplines"); + + migrationBuilder.DropTable( + name: "Users"); + } + } +} diff --git a/University/DatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs b/University/DatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs new file mode 100644 index 0000000..78b5f46 --- /dev/null +++ b/University/DatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs @@ -0,0 +1,494 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using UniversityDatabaseImplement; + +#nullable disable + +namespace UniversityDatabaseImplement.Migrations +{ + [DbContext(typeof(UniversityDatabase))] + partial class UniversityDatabaseModelSnapshot : 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("UniversityDatabaseImplement.Models.Activity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("timestamp with time zone"); + + b.Property("ExaminationResultId") + .HasColumnType("integer"); + + b.Property("Number") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ExaminationResultId"); + + b.ToTable("Activities"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Department") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Disciplines"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ExaminationResult", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("timestamp with time zone"); + + b.Property("ExaminationForm") + .IsRequired() + .HasColumnType("text"); + + b.Property("Mark") + .HasColumnType("integer"); + + b.Property("StatementId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("StatementId"); + + b.ToTable("ExaminationResults"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("ReportTypes"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeActivity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ActivityId") + .HasColumnType("integer"); + + b.Property("ReportTypeId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ActivityId"); + + b.HasIndex("ReportTypeId"); + + b.ToTable("ReportTypeActivities"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeDiscipline", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DisciplineId") + .HasColumnType("integer"); + + b.Property("ReportTypeId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("DisciplineId"); + + b.HasIndex("ReportTypeId"); + + b.ToTable("ReportTypeDisciplines"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Statement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Date") + .HasColumnType("timestamp with time zone"); + + b.Property("DisciplineId") + .HasColumnType("integer"); + + b.Property("HoursCount") + .HasColumnType("integer"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("DisciplineId"); + + b.HasIndex("UserId"); + + b.ToTable("Statements"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StatementStudent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("StatementId") + .HasColumnType("integer"); + + b.Property("StudentId") + .HasColumnType("integer"); + + b.Property("StudentTypeId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("StatementId"); + + b.HasIndex("StudentId"); + + b.ToTable("StatementStudents"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Student", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("RecordCardNumber") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Students"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StudentExaminationResult", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ExaminationResultId") + .HasColumnType("integer"); + + b.Property("StudentId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ExaminationResultId"); + + b.HasIndex("StudentId"); + + b.ToTable("StudentExaminationResults"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Login") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Password") + .IsRequired() + .HasColumnType("text"); + + b.Property("PhoneNumber") + .IsRequired() + .HasColumnType("text"); + + b.Property("Position") + .IsRequired() + .HasColumnType("text"); + + b.Property("Surname") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.UserStudent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("StudentId") + .HasColumnType("integer"); + + b.Property("StudentTypeId") + .HasColumnType("integer"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("StudentId"); + + b.HasIndex("UserId"); + + b.ToTable("UserStudents"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Activity", b => + { + b.HasOne("UniversityDatabaseImplement.Models.ExaminationResult", null) + .WithMany("Activities") + .HasForeignKey("ExaminationResultId"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ExaminationResult", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Statement", null) + .WithMany("ExaminationResults") + .HasForeignKey("StatementId"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeActivity", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Activity", "Activity") + .WithMany("ReportTypeActivities") + .HasForeignKey("ActivityId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.ReportType", "ReportType") + .WithMany("ReportTypeActivities") + .HasForeignKey("ReportTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Activity"); + + b.Navigation("ReportType"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportTypeDiscipline", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Discipline", "Discipline") + .WithMany("ReportTypeDisciplines") + .HasForeignKey("DisciplineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.ReportType", "ReportType") + .WithMany("ReportTypeDisciplines") + .HasForeignKey("ReportTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Discipline"); + + b.Navigation("ReportType"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Statement", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Discipline", null) + .WithMany("Statements") + .HasForeignKey("DisciplineId"); + + b.HasOne("UniversityDatabaseImplement.Models.User", null) + .WithMany("Statements") + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StatementStudent", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Statement", "Statement") + .WithMany("StatementStudents") + .HasForeignKey("StatementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.Student", "Student") + .WithMany("StatementStudents") + .HasForeignKey("StudentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Statement"); + + b.Navigation("Student"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.StudentExaminationResult", b => + { + b.HasOne("UniversityDatabaseImplement.Models.ExaminationResult", "ExaminationResult") + .WithMany("StudentExaminationResults") + .HasForeignKey("ExaminationResultId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.Student", "Student") + .WithMany("StudentExaminationResults") + .HasForeignKey("StudentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ExaminationResult"); + + b.Navigation("Student"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.UserStudent", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Student", "Student") + .WithMany("StudentUsers") + .HasForeignKey("StudentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.User", "User") + .WithMany("StudentUsers") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Student"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Activity", b => + { + b.Navigation("ReportTypeActivities"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => + { + b.Navigation("ReportTypeDisciplines"); + + b.Navigation("Statements"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ExaminationResult", b => + { + b.Navigation("Activities"); + + b.Navigation("StudentExaminationResults"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.ReportType", b => + { + b.Navigation("ReportTypeActivities"); + + b.Navigation("ReportTypeDisciplines"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Statement", b => + { + b.Navigation("ExaminationResults"); + + b.Navigation("StatementStudents"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.Student", b => + { + b.Navigation("StatementStudents"); + + b.Navigation("StudentExaminationResults"); + + b.Navigation("StudentUsers"); + }); + + modelBuilder.Entity("UniversityDatabaseImplement.Models.User", b => + { + b.Navigation("Statements"); + + b.Navigation("StudentUsers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/University/University/University.csproj b/University/University/University.csproj index b57c89e..b00e6c7 100644 --- a/University/University/University.csproj +++ b/University/University/University.csproj @@ -8,4 +8,15 @@ enable + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + \ No newline at end of file