From 8779ee3e4671fdbc0ccdf80c014e989bf9f9573f Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sat, 14 Nov 2020 07:54:06 -0600 Subject: [PATCH] =?UTF-8?q?fix(directory):=20=F0=9F=90=9B=F0=9F=9A=A7=20re?= =?UTF-8?q?-gen=20Initial=20(schema)=20migration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20201114135306_Initial.Designer.cs | 503 ++++++++++++++++++ .../Migrations/20201114135306_Initial.cs | 448 ++++++++++++++++ .../Migrations/QueryDbContextModelSnapshot.cs | 501 +++++++++++++++++ 3 files changed, 1452 insertions(+) create mode 100644 services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.Designer.cs create mode 100644 services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.cs create mode 100644 services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/QueryDbContextModelSnapshot.cs diff --git a/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.Designer.cs b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.Designer.cs new file mode 100644 index 000000000..033bdb757 --- /dev/null +++ b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.Designer.cs @@ -0,0 +1,503 @@ +// +using System; +using FilterLists.Directory.Infrastructure.Persistence.Queries.Context; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace FilterLists.Directory.Infrastructure.Migrations.Migrations +{ + [DbContext(typeof(QueryDbContext))] + [Migration("20201114135306_Initial")] + partial class Initial + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + .HasAnnotation("ProductVersion", "3.1.9") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b => + { + b.Property("DependencyFilterListId") + .HasColumnType("integer"); + + b.Property("DependentFilterListId") + .HasColumnType("integer"); + + b.HasKey("DependencyFilterListId", "DependentFilterListId"); + + b.HasIndex("DependentFilterListId"); + + b.ToTable("Dependents"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("ChatUrl") + .HasColumnType("text"); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("DonateUrl") + .HasColumnType("text"); + + b.Property("EmailAddress") + .HasColumnType("text"); + + b.Property("ForumUrl") + .HasColumnType("text"); + + b.Property("HomeUrl") + .HasColumnType("text"); + + b.Property("IssuesUrl") + .HasColumnType("text"); + + b.Property("LicenseId") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("OnionUrl") + .HasColumnType("text"); + + b.Property("PolicyUrl") + .HasColumnType("text"); + + b.Property("SubmissionUrl") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("LicenseId"); + + b.ToTable("FilterLists"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("Iso6391") + .HasColumnType("character varying(2)"); + + b.HasKey("FilterListId", "Iso6391"); + + b.HasIndex("Iso6391"); + + b.ToTable("FilterListLanguages"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("MaintainerId") + .HasColumnType("integer"); + + b.HasKey("FilterListId", "MaintainerId"); + + b.HasIndex("MaintainerId"); + + b.ToTable("FilterListMaintainers"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("SyntaxId") + .HasColumnType("integer"); + + b.HasKey("FilterListId", "SyntaxId"); + + b.HasIndex("SyntaxId"); + + b.ToTable("FilterListSyntaxes"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("TagId") + .HasColumnType("integer"); + + b.HasKey("FilterListId", "TagId"); + + b.HasIndex("TagId"); + + b.ToTable("FilterListTags"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListViewUrl", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("Primariness") + .ValueGeneratedOnAdd() + .HasColumnType("smallint") + .HasDefaultValue((short)1); + + b.Property("SegmentNumber") + .ValueGeneratedOnAdd() + .HasColumnType("smallint") + .HasDefaultValue((short)1); + + b.Property("Url") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("FilterListId", "SegmentNumber", "Primariness") + .IsUnique(); + + b.ToTable("FilterListViewUrls"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b => + { + b.Property("UpstreamFilterListId") + .HasColumnType("integer"); + + b.Property("ForkFilterListId") + .HasColumnType("integer"); + + b.HasKey("UpstreamFilterListId", "ForkFilterListId"); + + b.HasIndex("ForkFilterListId"); + + b.ToTable("Forks"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b => + { + b.Property("Iso6391") + .HasColumnType("character(2)") + .IsFixedLength(true) + .HasMaxLength(2); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Iso6391"); + + b.ToTable("Languages"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("PermitsCommercialUse") + .HasColumnType("boolean"); + + b.Property("PermitsDistribution") + .HasColumnType("boolean"); + + b.Property("PermitsModification") + .HasColumnType("boolean"); + + b.Property("Url") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Licenses"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("EmailAddress") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("TwitterHandle") + .HasColumnType("text"); + + b.Property("Url") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Maintainers"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b => + { + b.Property("IncludedInFilterListId") + .HasColumnType("integer"); + + b.Property("IncludesFilterListId") + .HasColumnType("integer"); + + b.HasKey("IncludedInFilterListId", "IncludesFilterListId"); + + b.HasIndex("IncludesFilterListId"); + + b.ToTable("Merges"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("DownloadUrl") + .HasColumnType("text"); + + b.Property("HomeUrl") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("SupportsAbpUrlScheme") + .HasColumnType("boolean"); + + b.HasKey("Id"); + + b.ToTable("Software"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b => + { + b.Property("SoftwareId") + .HasColumnType("integer"); + + b.Property("SyntaxId") + .HasColumnType("integer"); + + b.HasKey("SoftwareId", "SyntaxId"); + + b.HasIndex("SyntaxId"); + + b.ToTable("SoftwareSyntaxes"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Url") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Syntaxes"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Tags"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "DependencyFilterList") + .WithMany("DependentFilterLists") + .HasForeignKey("DependencyFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "DependentFilterList") + .WithMany("DependencyFilterLists") + .HasForeignKey("DependentFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", "License") + .WithMany("FilterLists") + .HasForeignKey("LicenseId"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListLanguages") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", "Language") + .WithMany("FilterListLanguages") + .HasForeignKey("Iso6391") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListMaintainers") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", "Maintainer") + .WithMany("FilterListMaintainers") + .HasForeignKey("MaintainerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListSyntaxes") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", "Syntax") + .WithMany("FilterListSyntaxes") + .HasForeignKey("SyntaxId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListTags") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", "Tag") + .WithMany("FilterListTags") + .HasForeignKey("TagId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListViewUrl", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("ViewUrls") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "ForkFilterList") + .WithMany("UpstreamFilterLists") + .HasForeignKey("ForkFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "UpstreamFilterList") + .WithMany("ForkFilterLists") + .HasForeignKey("UpstreamFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "IncludedInFilterList") + .WithMany("IncludesFilterLists") + .HasForeignKey("IncludedInFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "IncludesFilterList") + .WithMany("IncludedInFilterLists") + .HasForeignKey("IncludesFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", "Software") + .WithMany("SoftwareSyntaxes") + .HasForeignKey("SoftwareId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", "Syntax") + .WithMany("SoftwareSyntaxes") + .HasForeignKey("SyntaxId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.cs b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.cs new file mode 100644 index 000000000..32c0eb68c --- /dev/null +++ b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/20201114135306_Initial.cs @@ -0,0 +1,448 @@ +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace FilterLists.Directory.Infrastructure.Migrations.Migrations +{ + public partial class Initial : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Languages", + columns: table => new + { + Iso6391 = table.Column(fixedLength: true, maxLength: 2, nullable: false), + Name = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Languages", x => x.Iso6391); + }); + + migrationBuilder.CreateTable( + name: "Licenses", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(nullable: false), + Url = table.Column(nullable: true), + PermitsModification = table.Column(nullable: false), + PermitsDistribution = table.Column(nullable: false), + PermitsCommercialUse = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Licenses", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Maintainers", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(nullable: false), + Url = table.Column(nullable: true), + EmailAddress = table.Column(nullable: true), + TwitterHandle = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Maintainers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Software", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(nullable: false), + Description = table.Column(nullable: true), + HomeUrl = table.Column(nullable: true), + DownloadUrl = table.Column(nullable: true), + SupportsAbpUrlScheme = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Software", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Syntaxes", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(nullable: false), + Description = table.Column(nullable: true), + Url = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Syntaxes", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Tags", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(nullable: false), + Description = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Tags", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "FilterLists", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(nullable: false), + Description = table.Column(nullable: true), + LicenseId = table.Column(nullable: true), + HomeUrl = table.Column(nullable: true), + OnionUrl = table.Column(nullable: true), + PolicyUrl = table.Column(nullable: true), + SubmissionUrl = table.Column(nullable: true), + IssuesUrl = table.Column(nullable: true), + ForumUrl = table.Column(nullable: true), + ChatUrl = table.Column(nullable: true), + EmailAddress = table.Column(nullable: true), + DonateUrl = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_FilterLists", x => x.Id); + table.ForeignKey( + name: "FK_FilterLists_Licenses_LicenseId", + column: x => x.LicenseId, + principalTable: "Licenses", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "SoftwareSyntaxes", + columns: table => new + { + SoftwareId = table.Column(nullable: false), + SyntaxId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_SoftwareSyntaxes", x => new { x.SoftwareId, x.SyntaxId }); + table.ForeignKey( + name: "FK_SoftwareSyntaxes_Software_SoftwareId", + column: x => x.SoftwareId, + principalTable: "Software", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_SoftwareSyntaxes_Syntaxes_SyntaxId", + column: x => x.SyntaxId, + principalTable: "Syntaxes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Dependents", + columns: table => new + { + DependencyFilterListId = table.Column(nullable: false), + DependentFilterListId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Dependents", x => new { x.DependencyFilterListId, x.DependentFilterListId }); + table.ForeignKey( + name: "FK_Dependents_FilterLists_DependencyFilterListId", + column: x => x.DependencyFilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Dependents_FilterLists_DependentFilterListId", + column: x => x.DependentFilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "FilterListLanguages", + columns: table => new + { + FilterListId = table.Column(nullable: false), + Iso6391 = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_FilterListLanguages", x => new { x.FilterListId, x.Iso6391 }); + table.ForeignKey( + name: "FK_FilterListLanguages_FilterLists_FilterListId", + column: x => x.FilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_FilterListLanguages_Languages_Iso6391", + column: x => x.Iso6391, + principalTable: "Languages", + principalColumn: "Iso6391", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "FilterListMaintainers", + columns: table => new + { + FilterListId = table.Column(nullable: false), + MaintainerId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_FilterListMaintainers", x => new { x.FilterListId, x.MaintainerId }); + table.ForeignKey( + name: "FK_FilterListMaintainers_FilterLists_FilterListId", + column: x => x.FilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_FilterListMaintainers_Maintainers_MaintainerId", + column: x => x.MaintainerId, + principalTable: "Maintainers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "FilterListSyntaxes", + columns: table => new + { + FilterListId = table.Column(nullable: false), + SyntaxId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_FilterListSyntaxes", x => new { x.FilterListId, x.SyntaxId }); + table.ForeignKey( + name: "FK_FilterListSyntaxes_FilterLists_FilterListId", + column: x => x.FilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_FilterListSyntaxes_Syntaxes_SyntaxId", + column: x => x.SyntaxId, + principalTable: "Syntaxes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "FilterListTags", + columns: table => new + { + FilterListId = table.Column(nullable: false), + TagId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_FilterListTags", x => new { x.FilterListId, x.TagId }); + table.ForeignKey( + name: "FK_FilterListTags_FilterLists_FilterListId", + column: x => x.FilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_FilterListTags_Tags_TagId", + column: x => x.TagId, + principalTable: "Tags", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "FilterListViewUrls", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + FilterListId = table.Column(nullable: false), + SegmentNumber = table.Column(nullable: false, defaultValue: (short)1), + Primariness = table.Column(nullable: false, defaultValue: (short)1), + Url = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_FilterListViewUrls", x => x.Id); + table.ForeignKey( + name: "FK_FilterListViewUrls_FilterLists_FilterListId", + column: x => x.FilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Forks", + columns: table => new + { + UpstreamFilterListId = table.Column(nullable: false), + ForkFilterListId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Forks", x => new { x.UpstreamFilterListId, x.ForkFilterListId }); + table.ForeignKey( + name: "FK_Forks_FilterLists_ForkFilterListId", + column: x => x.ForkFilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Forks_FilterLists_UpstreamFilterListId", + column: x => x.UpstreamFilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Merges", + columns: table => new + { + IncludedInFilterListId = table.Column(nullable: false), + IncludesFilterListId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Merges", x => new { x.IncludedInFilterListId, x.IncludesFilterListId }); + table.ForeignKey( + name: "FK_Merges_FilterLists_IncludedInFilterListId", + column: x => x.IncludedInFilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Merges_FilterLists_IncludesFilterListId", + column: x => x.IncludesFilterListId, + principalTable: "FilterLists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Dependents_DependentFilterListId", + table: "Dependents", + column: "DependentFilterListId"); + + migrationBuilder.CreateIndex( + name: "IX_FilterListLanguages_Iso6391", + table: "FilterListLanguages", + column: "Iso6391"); + + migrationBuilder.CreateIndex( + name: "IX_FilterListMaintainers_MaintainerId", + table: "FilterListMaintainers", + column: "MaintainerId"); + + migrationBuilder.CreateIndex( + name: "IX_FilterListSyntaxes_SyntaxId", + table: "FilterListSyntaxes", + column: "SyntaxId"); + + migrationBuilder.CreateIndex( + name: "IX_FilterListTags_TagId", + table: "FilterListTags", + column: "TagId"); + + migrationBuilder.CreateIndex( + name: "IX_FilterListViewUrls_FilterListId_SegmentNumber_Primariness", + table: "FilterListViewUrls", + columns: new[] { "FilterListId", "SegmentNumber", "Primariness" }, + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_FilterLists_LicenseId", + table: "FilterLists", + column: "LicenseId"); + + migrationBuilder.CreateIndex( + name: "IX_Forks_ForkFilterListId", + table: "Forks", + column: "ForkFilterListId"); + + migrationBuilder.CreateIndex( + name: "IX_Merges_IncludesFilterListId", + table: "Merges", + column: "IncludesFilterListId"); + + migrationBuilder.CreateIndex( + name: "IX_SoftwareSyntaxes_SyntaxId", + table: "SoftwareSyntaxes", + column: "SyntaxId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Dependents"); + + migrationBuilder.DropTable( + name: "FilterListLanguages"); + + migrationBuilder.DropTable( + name: "FilterListMaintainers"); + + migrationBuilder.DropTable( + name: "FilterListSyntaxes"); + + migrationBuilder.DropTable( + name: "FilterListTags"); + + migrationBuilder.DropTable( + name: "FilterListViewUrls"); + + migrationBuilder.DropTable( + name: "Forks"); + + migrationBuilder.DropTable( + name: "Merges"); + + migrationBuilder.DropTable( + name: "SoftwareSyntaxes"); + + migrationBuilder.DropTable( + name: "Languages"); + + migrationBuilder.DropTable( + name: "Maintainers"); + + migrationBuilder.DropTable( + name: "Tags"); + + migrationBuilder.DropTable( + name: "FilterLists"); + + migrationBuilder.DropTable( + name: "Software"); + + migrationBuilder.DropTable( + name: "Syntaxes"); + + migrationBuilder.DropTable( + name: "Licenses"); + } + } +} diff --git a/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/QueryDbContextModelSnapshot.cs b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/QueryDbContextModelSnapshot.cs new file mode 100644 index 000000000..771faedc9 --- /dev/null +++ b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/Migrations/QueryDbContextModelSnapshot.cs @@ -0,0 +1,501 @@ +// +using System; +using FilterLists.Directory.Infrastructure.Persistence.Queries.Context; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +namespace FilterLists.Directory.Infrastructure.Migrations.Migrations +{ + [DbContext(typeof(QueryDbContext))] + partial class QueryDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn) + .HasAnnotation("ProductVersion", "3.1.9") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b => + { + b.Property("DependencyFilterListId") + .HasColumnType("integer"); + + b.Property("DependentFilterListId") + .HasColumnType("integer"); + + b.HasKey("DependencyFilterListId", "DependentFilterListId"); + + b.HasIndex("DependentFilterListId"); + + b.ToTable("Dependents"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("ChatUrl") + .HasColumnType("text"); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("DonateUrl") + .HasColumnType("text"); + + b.Property("EmailAddress") + .HasColumnType("text"); + + b.Property("ForumUrl") + .HasColumnType("text"); + + b.Property("HomeUrl") + .HasColumnType("text"); + + b.Property("IssuesUrl") + .HasColumnType("text"); + + b.Property("LicenseId") + .HasColumnType("integer"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("OnionUrl") + .HasColumnType("text"); + + b.Property("PolicyUrl") + .HasColumnType("text"); + + b.Property("SubmissionUrl") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("LicenseId"); + + b.ToTable("FilterLists"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("Iso6391") + .HasColumnType("character varying(2)"); + + b.HasKey("FilterListId", "Iso6391"); + + b.HasIndex("Iso6391"); + + b.ToTable("FilterListLanguages"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("MaintainerId") + .HasColumnType("integer"); + + b.HasKey("FilterListId", "MaintainerId"); + + b.HasIndex("MaintainerId"); + + b.ToTable("FilterListMaintainers"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("SyntaxId") + .HasColumnType("integer"); + + b.HasKey("FilterListId", "SyntaxId"); + + b.HasIndex("SyntaxId"); + + b.ToTable("FilterListSyntaxes"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b => + { + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("TagId") + .HasColumnType("integer"); + + b.HasKey("FilterListId", "TagId"); + + b.HasIndex("TagId"); + + b.ToTable("FilterListTags"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListViewUrl", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("FilterListId") + .HasColumnType("integer"); + + b.Property("Primariness") + .ValueGeneratedOnAdd() + .HasColumnType("smallint") + .HasDefaultValue((short)1); + + b.Property("SegmentNumber") + .ValueGeneratedOnAdd() + .HasColumnType("smallint") + .HasDefaultValue((short)1); + + b.Property("Url") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("FilterListId", "SegmentNumber", "Primariness") + .IsUnique(); + + b.ToTable("FilterListViewUrls"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b => + { + b.Property("UpstreamFilterListId") + .HasColumnType("integer"); + + b.Property("ForkFilterListId") + .HasColumnType("integer"); + + b.HasKey("UpstreamFilterListId", "ForkFilterListId"); + + b.HasIndex("ForkFilterListId"); + + b.ToTable("Forks"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b => + { + b.Property("Iso6391") + .HasColumnType("character(2)") + .IsFixedLength(true) + .HasMaxLength(2); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Iso6391"); + + b.ToTable("Languages"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("PermitsCommercialUse") + .HasColumnType("boolean"); + + b.Property("PermitsDistribution") + .HasColumnType("boolean"); + + b.Property("PermitsModification") + .HasColumnType("boolean"); + + b.Property("Url") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Licenses"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("EmailAddress") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("TwitterHandle") + .HasColumnType("text"); + + b.Property("Url") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Maintainers"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b => + { + b.Property("IncludedInFilterListId") + .HasColumnType("integer"); + + b.Property("IncludesFilterListId") + .HasColumnType("integer"); + + b.HasKey("IncludedInFilterListId", "IncludesFilterListId"); + + b.HasIndex("IncludesFilterListId"); + + b.ToTable("Merges"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("DownloadUrl") + .HasColumnType("text"); + + b.Property("HomeUrl") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("SupportsAbpUrlScheme") + .HasColumnType("boolean"); + + b.HasKey("Id"); + + b.ToTable("Software"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b => + { + b.Property("SoftwareId") + .HasColumnType("integer"); + + b.Property("SyntaxId") + .HasColumnType("integer"); + + b.HasKey("SoftwareId", "SyntaxId"); + + b.HasIndex("SyntaxId"); + + b.ToTable("SoftwareSyntaxes"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Url") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Syntaxes"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); + + b.Property("Description") + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Tags"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "DependencyFilterList") + .WithMany("DependentFilterLists") + .HasForeignKey("DependencyFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "DependentFilterList") + .WithMany("DependencyFilterLists") + .HasForeignKey("DependentFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", "License") + .WithMany("FilterLists") + .HasForeignKey("LicenseId"); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListLanguages") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", "Language") + .WithMany("FilterListLanguages") + .HasForeignKey("Iso6391") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListMaintainers") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", "Maintainer") + .WithMany("FilterListMaintainers") + .HasForeignKey("MaintainerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListSyntaxes") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", "Syntax") + .WithMany("FilterListSyntaxes") + .HasForeignKey("SyntaxId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("FilterListTags") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", "Tag") + .WithMany("FilterListTags") + .HasForeignKey("TagId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListViewUrl", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "FilterList") + .WithMany("ViewUrls") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "ForkFilterList") + .WithMany("UpstreamFilterLists") + .HasForeignKey("ForkFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "UpstreamFilterList") + .WithMany("ForkFilterLists") + .HasForeignKey("UpstreamFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "IncludedInFilterList") + .WithMany("IncludesFilterLists") + .HasForeignKey("IncludedInFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "IncludesFilterList") + .WithMany("IncludedInFilterLists") + .HasForeignKey("IncludesFilterListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b => + { + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", "Software") + .WithMany("SoftwareSyntaxes") + .HasForeignKey("SoftwareId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", "Syntax") + .WithMany("SoftwareSyntaxes") + .HasForeignKey("SyntaxId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +}