From e3aa1687dc4ba6947d8824897d0fe0a201627714 Mon Sep 17 00:00:00 2001 From: Maxchil Date: Fri, 12 Jun 2020 16:16:59 +0200 Subject: [PATCH] setup ef core repository & posgre, init migration --- src/Internship.Api/.dockerignore | 24 + src/Internship.Api/Internship.Api.csproj | 1 + .../Internship.Repository.csproj | 12 +- .../InternshipDbContext.cs | 39 ++ .../20200612141652_InitialCreate.Designer.cs | 428 ++++++++++++++++++ .../20200612141652_InitialCreate.cs | 271 +++++++++++ .../InternshipDbContextModelSnapshot.cs | 426 +++++++++++++++++ 7 files changed, 1200 insertions(+), 1 deletion(-) create mode 100644 src/Internship.Api/.dockerignore create mode 100644 src/Internship.Repository/InternshipDbContext.cs create mode 100644 src/Internship.Repository/Migrations/20200612141652_InitialCreate.Designer.cs create mode 100644 src/Internship.Repository/Migrations/20200612141652_InitialCreate.cs create mode 100644 src/Internship.Repository/Migrations/InternshipDbContextModelSnapshot.cs diff --git a/src/Internship.Api/.dockerignore b/src/Internship.Api/.dockerignore new file mode 100644 index 0000000..257cb48 --- /dev/null +++ b/src/Internship.Api/.dockerignore @@ -0,0 +1,24 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +README.md \ No newline at end of file diff --git a/src/Internship.Api/Internship.Api.csproj b/src/Internship.Api/Internship.Api.csproj index 720285f..cb39023 100644 --- a/src/Internship.Api/Internship.Api.csproj +++ b/src/Internship.Api/Internship.Api.csproj @@ -6,6 +6,7 @@ + diff --git a/src/Internship.Repository/Internship.Repository.csproj b/src/Internship.Repository/Internship.Repository.csproj index e137f83..00bc49b 100644 --- a/src/Internship.Repository/Internship.Repository.csproj +++ b/src/Internship.Repository/Internship.Repository.csproj @@ -1,12 +1,22 @@  - netstandard2.0 + netcoreapp3.1 + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + diff --git a/src/Internship.Repository/InternshipDbContext.cs b/src/Internship.Repository/InternshipDbContext.cs new file mode 100644 index 0000000..7b5bfe8 --- /dev/null +++ b/src/Internship.Repository/InternshipDbContext.cs @@ -0,0 +1,39 @@ +using Microsoft.EntityFrameworkCore; +using Internship.Core; + +namespace Internship.Repository +{ + public class InternshipDbContext : DbContext + { + public DbSet Internships { get; set; } + public DbSet Companies { get; set; } + public DbSet Editions { get; set; } + public DbSet Reports { get; set; } + public DbSet Interns { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => + optionsBuilder + .UseNpgsql("Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=szwoniu") + .UseSnakeCaseNamingConvention(); + + protected override void OnModelCreating(ModelBuilder modelBuilder) { + modelBuilder + .Entity(ie => { + ie.OwnsOne(i => i.DeanAcceptance); + ie.OwnsOne(i => i.Insurance); + }); + + modelBuilder + .Entity() + .HasKey(c => c.Nip); + + modelBuilder + .Entity() + .OwnsOne(b => b.Address); + + modelBuilder + .Entity() + .HasKey(i => i.AlbumNumber); + } + } +} \ No newline at end of file diff --git a/src/Internship.Repository/Migrations/20200612141652_InitialCreate.Designer.cs b/src/Internship.Repository/Migrations/20200612141652_InitialCreate.Designer.cs new file mode 100644 index 0000000..919d734 --- /dev/null +++ b/src/Internship.Repository/Migrations/20200612141652_InitialCreate.Designer.cs @@ -0,0 +1,428 @@ +// +using System; +using Internship.Repository; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace Internship.Repository.Migrations +{ + [DbContext(typeof(InternshipDbContext))] + [Migration("20200612141652_InitialCreate")] + partial class InitialCreate + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + .HasAnnotation("ProductVersion", "3.1.5") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("Internship.Core.BranchOffice", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CompanyNip") + .HasColumnName("company_nip") + .HasColumnType("text"); + + b.Property("Provider") + .HasColumnName("provider") + .HasColumnType("integer"); + + b.HasKey("Id") + .HasName("pk_branch_office"); + + b.HasIndex("CompanyNip") + .HasName("ix_branch_office_company_nip"); + + b.ToTable("branch_office"); + }); + + modelBuilder.Entity("Internship.Core.Company", b => + { + b.Property("Nip") + .HasColumnName("nip") + .HasColumnType("text"); + + b.Property("Name") + .HasColumnName("name") + .HasColumnType("text"); + + b.Property("Provider") + .HasColumnName("provider") + .HasColumnType("integer"); + + b.Property("Range") + .HasColumnName("range") + .HasColumnType("integer"); + + b.Property("SiteAddress") + .HasColumnName("site_address") + .HasColumnType("text"); + + b.HasKey("Nip") + .HasName("pk_companies"); + + b.ToTable("companies"); + }); + + modelBuilder.Entity("Internship.Core.Course", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Name") + .HasColumnName("name") + .HasColumnType("text"); + + b.HasKey("Id") + .HasName("pk_course"); + + b.ToTable("course"); + }); + + modelBuilder.Entity("Internship.Core.Edition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("EndDate") + .HasColumnName("end_date") + .HasColumnType("timestamp without time zone"); + + b.Property("IPPDeadlineDate") + .HasColumnName("ipp_deadline_date") + .HasColumnType("timestamp without time zone"); + + b.Property("StartDate") + .HasColumnName("start_date") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id") + .HasName("pk_editions"); + + b.ToTable("editions"); + }); + + modelBuilder.Entity("Internship.Core.Intern", b => + { + b.Property("AlbumNumber") + .HasColumnName("album_number") + .HasColumnType("text"); + + b.Property("CourseId") + .HasColumnName("course_id") + .HasColumnType("integer"); + + b.Property("Email") + .HasColumnName("email") + .HasColumnType("text"); + + b.Property("Name") + .HasColumnName("name") + .HasColumnType("text"); + + b.Property("Semester") + .HasColumnName("semester") + .HasColumnType("integer"); + + b.Property("Surname") + .HasColumnName("surname") + .HasColumnType("text"); + + b.HasKey("AlbumNumber") + .HasName("pk_interns"); + + b.HasIndex("CourseId") + .HasName("ix_interns_course_id"); + + b.ToTable("interns"); + }); + + modelBuilder.Entity("Internship.Core.InternshipEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BranchOfficeId") + .HasColumnName("branch_office_id") + .HasColumnType("integer"); + + b.Property("EditionId") + .HasColumnName("edition_id") + .HasColumnType("integer"); + + b.Property("EndDate") + .HasColumnName("end_date") + .HasColumnType("timestamp without time zone"); + + b.Property("Grade") + .HasColumnName("grade") + .HasColumnType("real"); + + b.Property("InternAlbumNumber") + .HasColumnName("intern_album_number") + .HasColumnType("text"); + + b.Property("InternshipLengthInWeeks") + .HasColumnName("internship_length_in_weeks") + .HasColumnType("integer"); + + b.Property("IsAccepted") + .HasColumnName("is_accepted") + .HasColumnType("boolean"); + + b.Property("ReportId") + .HasColumnName("report_id") + .HasColumnType("integer"); + + b.Property("StartDate") + .HasColumnName("start_date") + .HasColumnType("timestamp without time zone"); + + b.Property("Type") + .HasColumnName("type") + .HasColumnType("integer"); + + b.HasKey("Id") + .HasName("pk_internships"); + + b.HasIndex("BranchOfficeId") + .HasName("ix_internships_branch_office_id"); + + b.HasIndex("EditionId") + .HasName("ix_internships_edition_id"); + + b.HasIndex("InternAlbumNumber") + .HasName("ix_internships_intern_album_number"); + + b.HasIndex("ReportId") + .HasName("ix_internships_report_id"); + + b.ToTable("internships"); + }); + + modelBuilder.Entity("Internship.Core.InternshipProgramSubject", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CourseId") + .HasColumnName("course_id") + .HasColumnType("integer"); + + b.Property("Description") + .HasColumnName("description") + .HasColumnType("text"); + + b.Property("EditionId") + .HasColumnName("edition_id") + .HasColumnType("integer"); + + b.Property("InternshipEntityId") + .HasColumnName("internship_entity_id") + .HasColumnType("integer"); + + b.HasKey("Id") + .HasName("pk_internship_program_subject"); + + b.HasIndex("CourseId") + .HasName("ix_internship_program_subject_course_id"); + + b.HasIndex("EditionId") + .HasName("ix_internship_program_subject_edition_id"); + + b.HasIndex("InternshipEntityId") + .HasName("ix_internship_program_subject_internship_entity_id"); + + b.ToTable("internship_program_subject"); + }); + + modelBuilder.Entity("Internship.Core.Report", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.HasKey("Id") + .HasName("pk_reports"); + + b.ToTable("reports"); + }); + + modelBuilder.Entity("Internship.Core.BranchOffice", b => + { + b.HasOne("Internship.Core.Company", "Company") + .WithMany("Branches") + .HasForeignKey("CompanyNip") + .HasConstraintName("fk_branch_office_companies_company_nip"); + + b.OwnsOne("Internship.Core.Address", "Address", b1 => + { + b1.Property("BranchOfficeId") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b1.Property("Building") + .HasColumnName("building") + .HasColumnType("text"); + + b1.Property("City") + .HasColumnName("city") + .HasColumnType("text"); + + b1.Property("Country") + .HasColumnName("country") + .HasColumnType("text"); + + b1.Property("PostalCode") + .HasColumnName("postal_code") + .HasColumnType("text"); + + b1.Property("Street") + .HasColumnName("street") + .HasColumnType("text"); + + b1.HasKey("BranchOfficeId") + .HasName("pk_branch_office"); + + b1.ToTable("branch_office"); + + b1.WithOwner() + .HasForeignKey("BranchOfficeId") + .HasConstraintName("fk_address_branch_office_branch_office_id"); + }); + }); + + modelBuilder.Entity("Internship.Core.Intern", b => + { + b.HasOne("Internship.Core.Course", "Course") + .WithMany() + .HasForeignKey("CourseId") + .HasConstraintName("fk_interns_course_course_id"); + }); + + modelBuilder.Entity("Internship.Core.InternshipEntity", b => + { + b.HasOne("Internship.Core.BranchOffice", "BranchOffice") + .WithMany() + .HasForeignKey("BranchOfficeId") + .HasConstraintName("fk_internships_branch_office_branch_office_id"); + + b.HasOne("Internship.Core.Edition", "Edition") + .WithMany() + .HasForeignKey("EditionId") + .HasConstraintName("fk_internships_editions_edition_id"); + + b.HasOne("Internship.Core.Intern", "Intern") + .WithMany() + .HasForeignKey("InternAlbumNumber") + .HasConstraintName("fk_internships_interns_intern_album_number"); + + b.HasOne("Internship.Core.Report", "Report") + .WithMany() + .HasForeignKey("ReportId") + .HasConstraintName("fk_internships_reports_report_id"); + + b.OwnsOne("Internship.Core.DeanAcceptance", "DeanAcceptance", b1 => + { + b1.Property("InternshipEntityId") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b1.Property("AcceptanceDate") + .HasColumnName("acceptance_date") + .HasColumnType("timestamp without time zone"); + + b1.Property("IsDeansAcceptanceRequired") + .HasColumnName("is_deans_acceptance_required") + .HasColumnType("boolean"); + + b1.Property("Reason") + .HasColumnName("reason") + .HasColumnType("integer"); + + b1.HasKey("InternshipEntityId") + .HasName("pk_internships"); + + b1.ToTable("internships"); + + b1.WithOwner() + .HasForeignKey("InternshipEntityId") + .HasConstraintName("fk_dean_acceptance_internships_internship_entity_id"); + }); + + b.OwnsOne("Internship.Core.Insurance", "Insurance", b1 => + { + b1.Property("InternshipEntityId") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b1.Property("InsuranceDeliveryDate") + .HasColumnName("insurance_delivery_date") + .HasColumnType("timestamp without time zone"); + + b1.Property("IsInsuranceRequired") + .HasColumnName("is_insurance_required") + .HasColumnType("boolean"); + + b1.HasKey("InternshipEntityId") + .HasName("pk_internships"); + + b1.ToTable("internships"); + + b1.WithOwner() + .HasForeignKey("InternshipEntityId") + .HasConstraintName("fk_insurance_internships_internship_entity_id"); + }); + }); + + modelBuilder.Entity("Internship.Core.InternshipProgramSubject", b => + { + b.HasOne("Internship.Core.Course", "Course") + .WithMany() + .HasForeignKey("CourseId") + .HasConstraintName("fk_internship_program_subject_course_course_id"); + + b.HasOne("Internship.Core.Edition", null) + .WithMany("Subjects") + .HasForeignKey("EditionId") + .HasConstraintName("fk_internship_program_subject_editions_edition_id"); + + b.HasOne("Internship.Core.InternshipEntity", null) + .WithMany("Program") + .HasForeignKey("InternshipEntityId") + .HasConstraintName("fk_internship_program_subject_internships_internship_entity_id"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Internship.Repository/Migrations/20200612141652_InitialCreate.cs b/src/Internship.Repository/Migrations/20200612141652_InitialCreate.cs new file mode 100644 index 0000000..3c21540 --- /dev/null +++ b/src/Internship.Repository/Migrations/20200612141652_InitialCreate.cs @@ -0,0 +1,271 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace Internship.Repository.Migrations +{ + public partial class InitialCreate : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "companies", + columns: table => new + { + nip = table.Column(nullable: false), + name = table.Column(nullable: true), + range = table.Column(nullable: false), + site_address = table.Column(nullable: true), + provider = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pk_companies", x => x.nip); + }); + + migrationBuilder.CreateTable( + name: "course", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + name = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("pk_course", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "editions", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + start_date = table.Column(nullable: false), + end_date = table.Column(nullable: false), + ipp_deadline_date = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pk_editions", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "reports", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + }, + constraints: table => + { + table.PrimaryKey("pk_reports", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "branch_office", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + street = table.Column(nullable: true), + building = table.Column(nullable: true), + city = table.Column(nullable: true), + postal_code = table.Column(nullable: true), + country = table.Column(nullable: true), + company_nip = table.Column(nullable: true), + provider = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pk_branch_office", x => x.id); + table.ForeignKey( + name: "fk_branch_office_companies_company_nip", + column: x => x.company_nip, + principalTable: "companies", + principalColumn: "nip", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "interns", + columns: table => new + { + album_number = table.Column(nullable: false), + name = table.Column(nullable: true), + surname = table.Column(nullable: true), + email = table.Column(nullable: true), + course_id = table.Column(nullable: true), + semester = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pk_interns", x => x.album_number); + table.ForeignKey( + name: "fk_interns_course_course_id", + column: x => x.course_id, + principalTable: "course", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "internships", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + intern_album_number = table.Column(nullable: true), + edition_id = table.Column(nullable: true), + report_id = table.Column(nullable: true), + branch_office_id = table.Column(nullable: true), + type = table.Column(nullable: false), + start_date = table.Column(nullable: false), + end_date = table.Column(nullable: false), + is_accepted = table.Column(nullable: false), + acceptance_date = table.Column(nullable: true), + is_deans_acceptance_required = table.Column(nullable: true), + reason = table.Column(nullable: true), + insurance_delivery_date = table.Column(nullable: true), + is_insurance_required = table.Column(nullable: true), + internship_length_in_weeks = table.Column(nullable: false), + grade = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pk_internships", x => x.id); + table.ForeignKey( + name: "fk_internships_branch_office_branch_office_id", + column: x => x.branch_office_id, + principalTable: "branch_office", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "fk_internships_editions_edition_id", + column: x => x.edition_id, + principalTable: "editions", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "fk_internships_interns_intern_album_number", + column: x => x.intern_album_number, + principalTable: "interns", + principalColumn: "album_number", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "fk_internships_reports_report_id", + column: x => x.report_id, + principalTable: "reports", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "internship_program_subject", + columns: table => new + { + id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + course_id = table.Column(nullable: true), + description = table.Column(nullable: true), + edition_id = table.Column(nullable: true), + internship_entity_id = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("pk_internship_program_subject", x => x.id); + table.ForeignKey( + name: "fk_internship_program_subject_course_course_id", + column: x => x.course_id, + principalTable: "course", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "fk_internship_program_subject_editions_edition_id", + column: x => x.edition_id, + principalTable: "editions", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "fk_internship_program_subject_internships_internship_entity_id", + column: x => x.internship_entity_id, + principalTable: "internships", + principalColumn: "id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateIndex( + name: "ix_branch_office_company_nip", + table: "branch_office", + column: "company_nip"); + + migrationBuilder.CreateIndex( + name: "ix_interns_course_id", + table: "interns", + column: "course_id"); + + migrationBuilder.CreateIndex( + name: "ix_internship_program_subject_course_id", + table: "internship_program_subject", + column: "course_id"); + + migrationBuilder.CreateIndex( + name: "ix_internship_program_subject_edition_id", + table: "internship_program_subject", + column: "edition_id"); + + migrationBuilder.CreateIndex( + name: "ix_internship_program_subject_internship_entity_id", + table: "internship_program_subject", + column: "internship_entity_id"); + + migrationBuilder.CreateIndex( + name: "ix_internships_branch_office_id", + table: "internships", + column: "branch_office_id"); + + migrationBuilder.CreateIndex( + name: "ix_internships_edition_id", + table: "internships", + column: "edition_id"); + + migrationBuilder.CreateIndex( + name: "ix_internships_intern_album_number", + table: "internships", + column: "intern_album_number"); + + migrationBuilder.CreateIndex( + name: "ix_internships_report_id", + table: "internships", + column: "report_id"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "internship_program_subject"); + + migrationBuilder.DropTable( + name: "internships"); + + migrationBuilder.DropTable( + name: "branch_office"); + + migrationBuilder.DropTable( + name: "editions"); + + migrationBuilder.DropTable( + name: "interns"); + + migrationBuilder.DropTable( + name: "reports"); + + migrationBuilder.DropTable( + name: "companies"); + + migrationBuilder.DropTable( + name: "course"); + } + } +} diff --git a/src/Internship.Repository/Migrations/InternshipDbContextModelSnapshot.cs b/src/Internship.Repository/Migrations/InternshipDbContextModelSnapshot.cs new file mode 100644 index 0000000..ef5df0a --- /dev/null +++ b/src/Internship.Repository/Migrations/InternshipDbContextModelSnapshot.cs @@ -0,0 +1,426 @@ +// +using System; +using Internship.Repository; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace Internship.Repository.Migrations +{ + [DbContext(typeof(InternshipDbContext))] + partial class InternshipDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + .HasAnnotation("ProductVersion", "3.1.5") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("Internship.Core.BranchOffice", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CompanyNip") + .HasColumnName("company_nip") + .HasColumnType("text"); + + b.Property("Provider") + .HasColumnName("provider") + .HasColumnType("integer"); + + b.HasKey("Id") + .HasName("pk_branch_office"); + + b.HasIndex("CompanyNip") + .HasName("ix_branch_office_company_nip"); + + b.ToTable("branch_office"); + }); + + modelBuilder.Entity("Internship.Core.Company", b => + { + b.Property("Nip") + .HasColumnName("nip") + .HasColumnType("text"); + + b.Property("Name") + .HasColumnName("name") + .HasColumnType("text"); + + b.Property("Provider") + .HasColumnName("provider") + .HasColumnType("integer"); + + b.Property("Range") + .HasColumnName("range") + .HasColumnType("integer"); + + b.Property("SiteAddress") + .HasColumnName("site_address") + .HasColumnType("text"); + + b.HasKey("Nip") + .HasName("pk_companies"); + + b.ToTable("companies"); + }); + + modelBuilder.Entity("Internship.Core.Course", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Name") + .HasColumnName("name") + .HasColumnType("text"); + + b.HasKey("Id") + .HasName("pk_course"); + + b.ToTable("course"); + }); + + modelBuilder.Entity("Internship.Core.Edition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("EndDate") + .HasColumnName("end_date") + .HasColumnType("timestamp without time zone"); + + b.Property("IPPDeadlineDate") + .HasColumnName("ipp_deadline_date") + .HasColumnType("timestamp without time zone"); + + b.Property("StartDate") + .HasColumnName("start_date") + .HasColumnType("timestamp without time zone"); + + b.HasKey("Id") + .HasName("pk_editions"); + + b.ToTable("editions"); + }); + + modelBuilder.Entity("Internship.Core.Intern", b => + { + b.Property("AlbumNumber") + .HasColumnName("album_number") + .HasColumnType("text"); + + b.Property("CourseId") + .HasColumnName("course_id") + .HasColumnType("integer"); + + b.Property("Email") + .HasColumnName("email") + .HasColumnType("text"); + + b.Property("Name") + .HasColumnName("name") + .HasColumnType("text"); + + b.Property("Semester") + .HasColumnName("semester") + .HasColumnType("integer"); + + b.Property("Surname") + .HasColumnName("surname") + .HasColumnType("text"); + + b.HasKey("AlbumNumber") + .HasName("pk_interns"); + + b.HasIndex("CourseId") + .HasName("ix_interns_course_id"); + + b.ToTable("interns"); + }); + + modelBuilder.Entity("Internship.Core.InternshipEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("BranchOfficeId") + .HasColumnName("branch_office_id") + .HasColumnType("integer"); + + b.Property("EditionId") + .HasColumnName("edition_id") + .HasColumnType("integer"); + + b.Property("EndDate") + .HasColumnName("end_date") + .HasColumnType("timestamp without time zone"); + + b.Property("Grade") + .HasColumnName("grade") + .HasColumnType("real"); + + b.Property("InternAlbumNumber") + .HasColumnName("intern_album_number") + .HasColumnType("text"); + + b.Property("InternshipLengthInWeeks") + .HasColumnName("internship_length_in_weeks") + .HasColumnType("integer"); + + b.Property("IsAccepted") + .HasColumnName("is_accepted") + .HasColumnType("boolean"); + + b.Property("ReportId") + .HasColumnName("report_id") + .HasColumnType("integer"); + + b.Property("StartDate") + .HasColumnName("start_date") + .HasColumnType("timestamp without time zone"); + + b.Property("Type") + .HasColumnName("type") + .HasColumnType("integer"); + + b.HasKey("Id") + .HasName("pk_internships"); + + b.HasIndex("BranchOfficeId") + .HasName("ix_internships_branch_office_id"); + + b.HasIndex("EditionId") + .HasName("ix_internships_edition_id"); + + b.HasIndex("InternAlbumNumber") + .HasName("ix_internships_intern_album_number"); + + b.HasIndex("ReportId") + .HasName("ix_internships_report_id"); + + b.ToTable("internships"); + }); + + modelBuilder.Entity("Internship.Core.InternshipProgramSubject", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("CourseId") + .HasColumnName("course_id") + .HasColumnType("integer"); + + b.Property("Description") + .HasColumnName("description") + .HasColumnType("text"); + + b.Property("EditionId") + .HasColumnName("edition_id") + .HasColumnType("integer"); + + b.Property("InternshipEntityId") + .HasColumnName("internship_entity_id") + .HasColumnType("integer"); + + b.HasKey("Id") + .HasName("pk_internship_program_subject"); + + b.HasIndex("CourseId") + .HasName("ix_internship_program_subject_course_id"); + + b.HasIndex("EditionId") + .HasName("ix_internship_program_subject_edition_id"); + + b.HasIndex("InternshipEntityId") + .HasName("ix_internship_program_subject_internship_entity_id"); + + b.ToTable("internship_program_subject"); + }); + + modelBuilder.Entity("Internship.Core.Report", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.HasKey("Id") + .HasName("pk_reports"); + + b.ToTable("reports"); + }); + + modelBuilder.Entity("Internship.Core.BranchOffice", b => + { + b.HasOne("Internship.Core.Company", "Company") + .WithMany("Branches") + .HasForeignKey("CompanyNip") + .HasConstraintName("fk_branch_office_companies_company_nip"); + + b.OwnsOne("Internship.Core.Address", "Address", b1 => + { + b1.Property("BranchOfficeId") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b1.Property("Building") + .HasColumnName("building") + .HasColumnType("text"); + + b1.Property("City") + .HasColumnName("city") + .HasColumnType("text"); + + b1.Property("Country") + .HasColumnName("country") + .HasColumnType("text"); + + b1.Property("PostalCode") + .HasColumnName("postal_code") + .HasColumnType("text"); + + b1.Property("Street") + .HasColumnName("street") + .HasColumnType("text"); + + b1.HasKey("BranchOfficeId") + .HasName("pk_branch_office"); + + b1.ToTable("branch_office"); + + b1.WithOwner() + .HasForeignKey("BranchOfficeId") + .HasConstraintName("fk_address_branch_office_branch_office_id"); + }); + }); + + modelBuilder.Entity("Internship.Core.Intern", b => + { + b.HasOne("Internship.Core.Course", "Course") + .WithMany() + .HasForeignKey("CourseId") + .HasConstraintName("fk_interns_course_course_id"); + }); + + modelBuilder.Entity("Internship.Core.InternshipEntity", b => + { + b.HasOne("Internship.Core.BranchOffice", "BranchOffice") + .WithMany() + .HasForeignKey("BranchOfficeId") + .HasConstraintName("fk_internships_branch_office_branch_office_id"); + + b.HasOne("Internship.Core.Edition", "Edition") + .WithMany() + .HasForeignKey("EditionId") + .HasConstraintName("fk_internships_editions_edition_id"); + + b.HasOne("Internship.Core.Intern", "Intern") + .WithMany() + .HasForeignKey("InternAlbumNumber") + .HasConstraintName("fk_internships_interns_intern_album_number"); + + b.HasOne("Internship.Core.Report", "Report") + .WithMany() + .HasForeignKey("ReportId") + .HasConstraintName("fk_internships_reports_report_id"); + + b.OwnsOne("Internship.Core.DeanAcceptance", "DeanAcceptance", b1 => + { + b1.Property("InternshipEntityId") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b1.Property("AcceptanceDate") + .HasColumnName("acceptance_date") + .HasColumnType("timestamp without time zone"); + + b1.Property("IsDeansAcceptanceRequired") + .HasColumnName("is_deans_acceptance_required") + .HasColumnType("boolean"); + + b1.Property("Reason") + .HasColumnName("reason") + .HasColumnType("integer"); + + b1.HasKey("InternshipEntityId") + .HasName("pk_internships"); + + b1.ToTable("internships"); + + b1.WithOwner() + .HasForeignKey("InternshipEntityId") + .HasConstraintName("fk_dean_acceptance_internships_internship_entity_id"); + }); + + b.OwnsOne("Internship.Core.Insurance", "Insurance", b1 => + { + b1.Property("InternshipEntityId") + .ValueGeneratedOnAdd() + .HasColumnName("id") + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b1.Property("InsuranceDeliveryDate") + .HasColumnName("insurance_delivery_date") + .HasColumnType("timestamp without time zone"); + + b1.Property("IsInsuranceRequired") + .HasColumnName("is_insurance_required") + .HasColumnType("boolean"); + + b1.HasKey("InternshipEntityId") + .HasName("pk_internships"); + + b1.ToTable("internships"); + + b1.WithOwner() + .HasForeignKey("InternshipEntityId") + .HasConstraintName("fk_insurance_internships_internship_entity_id"); + }); + }); + + modelBuilder.Entity("Internship.Core.InternshipProgramSubject", b => + { + b.HasOne("Internship.Core.Course", "Course") + .WithMany() + .HasForeignKey("CourseId") + .HasConstraintName("fk_internship_program_subject_course_course_id"); + + b.HasOne("Internship.Core.Edition", null) + .WithMany("Subjects") + .HasForeignKey("EditionId") + .HasConstraintName("fk_internship_program_subject_editions_edition_id"); + + b.HasOne("Internship.Core.InternshipEntity", null) + .WithMany("Program") + .HasForeignKey("InternshipEntityId") + .HasConstraintName("fk_internship_program_subject_internships_internship_entity_id"); + }); +#pragma warning restore 612, 618 + } + } +}