feat(dir): add InitialCreate ef migration

This commit is contained in:
Collin Barrett 2024-06-01 08:37:42 -05:00
parent cb4435f331
commit 6df32e64b0
3 changed files with 1832 additions and 0 deletions

View file

@ -0,0 +1,668 @@
// <auto-generated />
using FilterLists.Directory.Infrastructure.Persistence.Queries.Context;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace FilterLists.Directory.Infrastructure.Migrations.Migrations
{
[DbContext(typeof(QueryDbContext))]
[Migration("20240601133712_InitialCreate")]
partial class InitialCreate
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_100_CI_AS_SC")
.HasAnnotation("ProductVersion", "8.0.6")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b =>
{
b.Property<int>("DependencyFilterListId")
.HasColumnType("int");
b.Property<int>("DependentFilterListId")
.HasColumnType("int");
b.HasKey("DependencyFilterListId", "DependentFilterListId");
b.HasIndex("DependentFilterListId");
b.ToTable("Dependent");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ChatUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("DonateUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("EmailAddress")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property<string>("ForumUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("HomeUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("IssuesUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<int>("LicenseId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(5);
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property<string>("OnionUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("PolicyUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("SubmissionUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("LicenseId");
b.HasIndex("Name")
.IsUnique();
b.ToTable("FilterLists");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<short>("LanguageId")
.HasColumnType("smallint");
b.HasKey("FilterListId", "LanguageId");
b.HasIndex("LanguageId");
b.ToTable("FilterListLanguage");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<int>("MaintainerId")
.HasColumnType("int");
b.HasKey("FilterListId", "MaintainerId");
b.HasIndex("MaintainerId");
b.ToTable("FilterListMaintainer");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<short>("SyntaxId")
.HasColumnType("smallint");
b.HasKey("FilterListId", "SyntaxId");
b.HasIndex("SyntaxId");
b.ToTable("FilterListSyntax");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<int>("TagId")
.HasColumnType("int");
b.HasKey("FilterListId", "TagId");
b.HasIndex("TagId");
b.ToTable("FilterListTag");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b =>
{
b.Property<int>("UpstreamFilterListId")
.HasColumnType("int");
b.Property<int>("ForkFilterListId")
.HasColumnType("int");
b.HasKey("UpstreamFilterListId", "ForkFilterListId");
b.HasIndex("ForkFilterListId");
b.ToTable("Fork");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<short>("Id"));
b.Property<string>("Iso6391")
.IsRequired()
.HasMaxLength(2)
.HasColumnType("nchar(2)")
.IsFixedLength();
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.HasKey("Id");
b.HasIndex("Iso6391")
.IsUnique();
b.HasIndex("Name")
.IsUnique();
b.ToTable("Languages");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<bool>("PermitsCommercialUse")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.Property<bool>("PermitsDistribution")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.Property<bool>("PermitsModification")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.Property<string>("Url")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Licenses");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("EmailAddress")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<string>("TwitterHandle")
.HasMaxLength(32)
.HasColumnType("nvarchar(32)");
b.Property<string>("Url")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Maintainers");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b =>
{
b.Property<int>("IncludedInFilterListId")
.HasColumnType("int");
b.Property<int>("IncludesFilterListId")
.HasColumnType("int");
b.HasKey("IncludedInFilterListId", "IncludesFilterListId");
b.HasIndex("IncludesFilterListId");
b.ToTable("Merge");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<short>("Id"));
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("DownloadUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("HomeUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<bool>("SupportsAbpUrlScheme")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Software");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b =>
{
b.Property<short>("SoftwareId")
.HasColumnType("smallint");
b.Property<short>("SyntaxId")
.HasColumnType("smallint");
b.HasKey("SoftwareId", "SyntaxId");
b.HasIndex("SyntaxId");
b.ToTable("SoftwareSyntax");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<short>("Id"));
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<string>("Url")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Syntaxes");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("nvarchar(32)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
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.NoAction)
.IsRequired();
b.Navigation("DependencyFilterList");
b.Navigation("DependentFilterList");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b =>
{
b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", "License")
.WithMany("FilterLists")
.HasForeignKey("LicenseId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.OwnsMany("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListViewUrl", "ViewUrls", b1 =>
{
b1.Property<int>("FilterListId")
.HasColumnType("int");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<short>("Primariness")
.ValueGeneratedOnAdd()
.HasColumnType("smallint")
.HasDefaultValue((short)1);
b1.Property<short>("SegmentNumber")
.ValueGeneratedOnAdd()
.HasColumnType("smallint")
.HasDefaultValue((short)1);
b1.Property<string>("Url")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b1.HasKey("FilterListId", "Id");
b1.HasIndex("FilterListId", "SegmentNumber", "Primariness")
.IsUnique();
b1.ToTable("FilterListViewUrl");
b1.WithOwner("FilterList")
.HasForeignKey("FilterListId");
b1.Navigation("FilterList");
});
b.Navigation("License");
b.Navigation("ViewUrls");
});
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("LanguageId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("FilterList");
b.Navigation("Language");
});
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();
b.Navigation("FilterList");
b.Navigation("Maintainer");
});
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();
b.Navigation("FilterList");
b.Navigation("Syntax");
});
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();
b.Navigation("FilterList");
b.Navigation("Tag");
});
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.NoAction)
.IsRequired();
b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "UpstreamFilterList")
.WithMany("ForkFilterLists")
.HasForeignKey("UpstreamFilterListId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("ForkFilterList");
b.Navigation("UpstreamFilterList");
});
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.NoAction)
.IsRequired();
b.Navigation("IncludedInFilterList");
b.Navigation("IncludesFilterList");
});
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();
b.Navigation("Software");
b.Navigation("Syntax");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b =>
{
b.Navigation("DependencyFilterLists");
b.Navigation("DependentFilterLists");
b.Navigation("FilterListLanguages");
b.Navigation("FilterListMaintainers");
b.Navigation("FilterListSyntaxes");
b.Navigation("FilterListTags");
b.Navigation("ForkFilterLists");
b.Navigation("IncludedInFilterLists");
b.Navigation("IncludesFilterLists");
b.Navigation("UpstreamFilterLists");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b =>
{
b.Navigation("FilterListLanguages");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b =>
{
b.Navigation("FilterLists");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b =>
{
b.Navigation("FilterListMaintainers");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b =>
{
b.Navigation("SoftwareSyntaxes");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b =>
{
b.Navigation("FilterListSyntaxes");
b.Navigation("SoftwareSyntaxes");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b =>
{
b.Navigation("FilterListTags");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,499 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace FilterLists.Directory.Infrastructure.Migrations.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Languages",
columns: table => new
{
Id = table.Column<short>(type: "smallint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Iso6391 = table.Column<string>(type: "nchar(2)", fixedLength: true, maxLength: 2, nullable: false),
Name = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Languages", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Licenses",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Url = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
PermitsModification = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
PermitsDistribution = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
PermitsCommercialUse = table.Column<bool>(type: "bit", nullable: false, defaultValue: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Licenses", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Maintainers",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Url = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
EmailAddress = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
TwitterHandle = table.Column<string>(type: "nvarchar(32)", maxLength: 32, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Maintainers", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Software",
columns: table => new
{
Id = table.Column<short>(type: "smallint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
HomeUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
DownloadUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
SupportsAbpUrlScheme = table.Column<bool>(type: "bit", nullable: false, defaultValue: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Software", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Syntaxes",
columns: table => new
{
Id = table.Column<short>(type: "smallint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
Url = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Syntaxes", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Tags",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(32)", maxLength: 32, nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Tags", x => x.Id);
});
migrationBuilder.CreateTable(
name: "FilterLists",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
LicenseId = table.Column<int>(type: "int", nullable: false, defaultValue: 5),
HomeUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
OnionUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
PolicyUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
SubmissionUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
IssuesUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
ForumUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
ChatUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true),
EmailAddress = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
DonateUrl = table.Column<string>(type: "nvarchar(512)", maxLength: 512, 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: "SoftwareSyntax",
columns: table => new
{
SoftwareId = table.Column<short>(type: "smallint", nullable: false),
SyntaxId = table.Column<short>(type: "smallint", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SoftwareSyntax", x => new { x.SoftwareId, x.SyntaxId });
table.ForeignKey(
name: "FK_SoftwareSyntax_Software_SoftwareId",
column: x => x.SoftwareId,
principalTable: "Software",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_SoftwareSyntax_Syntaxes_SyntaxId",
column: x => x.SyntaxId,
principalTable: "Syntaxes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Dependent",
columns: table => new
{
DependencyFilterListId = table.Column<int>(type: "int", nullable: false),
DependentFilterListId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Dependent", x => new { x.DependencyFilterListId, x.DependentFilterListId });
table.ForeignKey(
name: "FK_Dependent_FilterLists_DependencyFilterListId",
column: x => x.DependencyFilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Dependent_FilterLists_DependentFilterListId",
column: x => x.DependentFilterListId,
principalTable: "FilterLists",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
name: "FilterListLanguage",
columns: table => new
{
FilterListId = table.Column<int>(type: "int", nullable: false),
LanguageId = table.Column<short>(type: "smallint", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FilterListLanguage", x => new { x.FilterListId, x.LanguageId });
table.ForeignKey(
name: "FK_FilterListLanguage_FilterLists_FilterListId",
column: x => x.FilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_FilterListLanguage_Languages_LanguageId",
column: x => x.LanguageId,
principalTable: "Languages",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "FilterListMaintainer",
columns: table => new
{
FilterListId = table.Column<int>(type: "int", nullable: false),
MaintainerId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FilterListMaintainer", x => new { x.FilterListId, x.MaintainerId });
table.ForeignKey(
name: "FK_FilterListMaintainer_FilterLists_FilterListId",
column: x => x.FilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_FilterListMaintainer_Maintainers_MaintainerId",
column: x => x.MaintainerId,
principalTable: "Maintainers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "FilterListSyntax",
columns: table => new
{
FilterListId = table.Column<int>(type: "int", nullable: false),
SyntaxId = table.Column<short>(type: "smallint", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FilterListSyntax", x => new { x.FilterListId, x.SyntaxId });
table.ForeignKey(
name: "FK_FilterListSyntax_FilterLists_FilterListId",
column: x => x.FilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_FilterListSyntax_Syntaxes_SyntaxId",
column: x => x.SyntaxId,
principalTable: "Syntaxes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "FilterListTag",
columns: table => new
{
FilterListId = table.Column<int>(type: "int", nullable: false),
TagId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FilterListTag", x => new { x.FilterListId, x.TagId });
table.ForeignKey(
name: "FK_FilterListTag_FilterLists_FilterListId",
column: x => x.FilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_FilterListTag_Tags_TagId",
column: x => x.TagId,
principalTable: "Tags",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "FilterListViewUrl",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
FilterListId = table.Column<int>(type: "int", nullable: false),
SegmentNumber = table.Column<short>(type: "smallint", nullable: false, defaultValue: (short)1),
Primariness = table.Column<short>(type: "smallint", nullable: false, defaultValue: (short)1),
Url = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FilterListViewUrl", x => new { x.FilterListId, x.Id });
table.ForeignKey(
name: "FK_FilterListViewUrl_FilterLists_FilterListId",
column: x => x.FilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Fork",
columns: table => new
{
UpstreamFilterListId = table.Column<int>(type: "int", nullable: false),
ForkFilterListId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Fork", x => new { x.UpstreamFilterListId, x.ForkFilterListId });
table.ForeignKey(
name: "FK_Fork_FilterLists_ForkFilterListId",
column: x => x.ForkFilterListId,
principalTable: "FilterLists",
principalColumn: "Id");
table.ForeignKey(
name: "FK_Fork_FilterLists_UpstreamFilterListId",
column: x => x.UpstreamFilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Merge",
columns: table => new
{
IncludedInFilterListId = table.Column<int>(type: "int", nullable: false),
IncludesFilterListId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Merge", x => new { x.IncludedInFilterListId, x.IncludesFilterListId });
table.ForeignKey(
name: "FK_Merge_FilterLists_IncludedInFilterListId",
column: x => x.IncludedInFilterListId,
principalTable: "FilterLists",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Merge_FilterLists_IncludesFilterListId",
column: x => x.IncludesFilterListId,
principalTable: "FilterLists",
principalColumn: "Id");
});
migrationBuilder.CreateIndex(
name: "IX_Dependent_DependentFilterListId",
table: "Dependent",
column: "DependentFilterListId");
migrationBuilder.CreateIndex(
name: "IX_FilterListLanguage_LanguageId",
table: "FilterListLanguage",
column: "LanguageId");
migrationBuilder.CreateIndex(
name: "IX_FilterListMaintainer_MaintainerId",
table: "FilterListMaintainer",
column: "MaintainerId");
migrationBuilder.CreateIndex(
name: "IX_FilterLists_LicenseId",
table: "FilterLists",
column: "LicenseId");
migrationBuilder.CreateIndex(
name: "IX_FilterLists_Name",
table: "FilterLists",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_FilterListSyntax_SyntaxId",
table: "FilterListSyntax",
column: "SyntaxId");
migrationBuilder.CreateIndex(
name: "IX_FilterListTag_TagId",
table: "FilterListTag",
column: "TagId");
migrationBuilder.CreateIndex(
name: "IX_FilterListViewUrl_FilterListId_SegmentNumber_Primariness",
table: "FilterListViewUrl",
columns: new[] { "FilterListId", "SegmentNumber", "Primariness" },
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Fork_ForkFilterListId",
table: "Fork",
column: "ForkFilterListId");
migrationBuilder.CreateIndex(
name: "IX_Languages_Iso6391",
table: "Languages",
column: "Iso6391",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Languages_Name",
table: "Languages",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Licenses_Name",
table: "Licenses",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Maintainers_Name",
table: "Maintainers",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Merge_IncludesFilterListId",
table: "Merge",
column: "IncludesFilterListId");
migrationBuilder.CreateIndex(
name: "IX_Software_Name",
table: "Software",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_SoftwareSyntax_SyntaxId",
table: "SoftwareSyntax",
column: "SyntaxId");
migrationBuilder.CreateIndex(
name: "IX_Syntaxes_Name",
table: "Syntaxes",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Tags_Name",
table: "Tags",
column: "Name",
unique: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Dependent");
migrationBuilder.DropTable(
name: "FilterListLanguage");
migrationBuilder.DropTable(
name: "FilterListMaintainer");
migrationBuilder.DropTable(
name: "FilterListSyntax");
migrationBuilder.DropTable(
name: "FilterListTag");
migrationBuilder.DropTable(
name: "FilterListViewUrl");
migrationBuilder.DropTable(
name: "Fork");
migrationBuilder.DropTable(
name: "Merge");
migrationBuilder.DropTable(
name: "SoftwareSyntax");
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");
}
}
}

View file

@ -0,0 +1,665 @@
// <auto-generated />
using FilterLists.Directory.Infrastructure.Persistence.Queries.Context;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
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
.UseCollation("Latin1_General_100_CI_AS_SC")
.HasAnnotation("ProductVersion", "8.0.6")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Dependent", b =>
{
b.Property<int>("DependencyFilterListId")
.HasColumnType("int");
b.Property<int>("DependentFilterListId")
.HasColumnType("int");
b.HasKey("DependencyFilterListId", "DependentFilterListId");
b.HasIndex("DependentFilterListId");
b.ToTable("Dependent");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ChatUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("DonateUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("EmailAddress")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property<string>("ForumUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("HomeUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("IssuesUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<int>("LicenseId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(5);
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property<string>("OnionUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("PolicyUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("SubmissionUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("LicenseId");
b.HasIndex("Name")
.IsUnique();
b.ToTable("FilterLists");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListLanguage", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<short>("LanguageId")
.HasColumnType("smallint");
b.HasKey("FilterListId", "LanguageId");
b.HasIndex("LanguageId");
b.ToTable("FilterListLanguage");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListMaintainer", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<int>("MaintainerId")
.HasColumnType("int");
b.HasKey("FilterListId", "MaintainerId");
b.HasIndex("MaintainerId");
b.ToTable("FilterListMaintainer");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListSyntax", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<short>("SyntaxId")
.HasColumnType("smallint");
b.HasKey("FilterListId", "SyntaxId");
b.HasIndex("SyntaxId");
b.ToTable("FilterListSyntax");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListTag", b =>
{
b.Property<int>("FilterListId")
.HasColumnType("int");
b.Property<int>("TagId")
.HasColumnType("int");
b.HasKey("FilterListId", "TagId");
b.HasIndex("TagId");
b.ToTable("FilterListTag");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Fork", b =>
{
b.Property<int>("UpstreamFilterListId")
.HasColumnType("int");
b.Property<int>("ForkFilterListId")
.HasColumnType("int");
b.HasKey("UpstreamFilterListId", "ForkFilterListId");
b.HasIndex("ForkFilterListId");
b.ToTable("Fork");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<short>("Id"));
b.Property<string>("Iso6391")
.IsRequired()
.HasMaxLength(2)
.HasColumnType("nchar(2)")
.IsFixedLength();
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.HasKey("Id");
b.HasIndex("Iso6391")
.IsUnique();
b.HasIndex("Name")
.IsUnique();
b.ToTable("Languages");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<bool>("PermitsCommercialUse")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.Property<bool>("PermitsDistribution")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.Property<bool>("PermitsModification")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.Property<string>("Url")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Licenses");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("EmailAddress")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<string>("TwitterHandle")
.HasMaxLength(32)
.HasColumnType("nvarchar(32)");
b.Property<string>("Url")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Maintainers");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Merge", b =>
{
b.Property<int>("IncludedInFilterListId")
.HasColumnType("int");
b.Property<int>("IncludesFilterListId")
.HasColumnType("int");
b.HasKey("IncludedInFilterListId", "IncludesFilterListId");
b.HasIndex("IncludesFilterListId");
b.ToTable("Merge");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<short>("Id"));
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("DownloadUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("HomeUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<bool>("SupportsAbpUrlScheme")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false);
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Software");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.SoftwareSyntax", b =>
{
b.Property<short>("SoftwareId")
.HasColumnType("smallint");
b.Property<short>("SyntaxId")
.HasColumnType("smallint");
b.HasKey("SoftwareId", "SyntaxId");
b.HasIndex("SyntaxId");
b.ToTable("SoftwareSyntax");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<short>("Id"));
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property<string>("Url")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("Syntaxes");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("nvarchar(32)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
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.NoAction)
.IsRequired();
b.Navigation("DependencyFilterList");
b.Navigation("DependentFilterList");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b =>
{
b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", "License")
.WithMany("FilterLists")
.HasForeignKey("LicenseId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.OwnsMany("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterListViewUrl", "ViewUrls", b1 =>
{
b1.Property<int>("FilterListId")
.HasColumnType("int");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<short>("Primariness")
.ValueGeneratedOnAdd()
.HasColumnType("smallint")
.HasDefaultValue((short)1);
b1.Property<short>("SegmentNumber")
.ValueGeneratedOnAdd()
.HasColumnType("smallint")
.HasDefaultValue((short)1);
b1.Property<string>("Url")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b1.HasKey("FilterListId", "Id");
b1.HasIndex("FilterListId", "SegmentNumber", "Primariness")
.IsUnique();
b1.ToTable("FilterListViewUrl");
b1.WithOwner("FilterList")
.HasForeignKey("FilterListId");
b1.Navigation("FilterList");
});
b.Navigation("License");
b.Navigation("ViewUrls");
});
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("LanguageId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("FilterList");
b.Navigation("Language");
});
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();
b.Navigation("FilterList");
b.Navigation("Maintainer");
});
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();
b.Navigation("FilterList");
b.Navigation("Syntax");
});
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();
b.Navigation("FilterList");
b.Navigation("Tag");
});
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.NoAction)
.IsRequired();
b.HasOne("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", "UpstreamFilterList")
.WithMany("ForkFilterLists")
.HasForeignKey("UpstreamFilterListId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("ForkFilterList");
b.Navigation("UpstreamFilterList");
});
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.NoAction)
.IsRequired();
b.Navigation("IncludedInFilterList");
b.Navigation("IncludesFilterList");
});
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();
b.Navigation("Software");
b.Navigation("Syntax");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.FilterList", b =>
{
b.Navigation("DependencyFilterLists");
b.Navigation("DependentFilterLists");
b.Navigation("FilterListLanguages");
b.Navigation("FilterListMaintainers");
b.Navigation("FilterListSyntaxes");
b.Navigation("FilterListTags");
b.Navigation("ForkFilterLists");
b.Navigation("IncludedInFilterLists");
b.Navigation("IncludesFilterLists");
b.Navigation("UpstreamFilterLists");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Language", b =>
{
b.Navigation("FilterListLanguages");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.License", b =>
{
b.Navigation("FilterLists");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Maintainer", b =>
{
b.Navigation("FilterListMaintainers");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Software", b =>
{
b.Navigation("SoftwareSyntaxes");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Syntax", b =>
{
b.Navigation("FilterListSyntaxes");
b.Navigation("SoftwareSyntaxes");
});
modelBuilder.Entity("FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Tag", b =>
{
b.Navigation("FilterListTags");
});
#pragma warning restore 612, 618
}
}
}