< Summary

Line coverage
0%
Covered lines: 0
Uncovered lines: 719
Coverable lines: 719
Total lines: 788
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: Up(...)100%210%
File 1: Down(...)100%210%
File 2: BuildTargetModel(...)100%210%

File(s)

/home/runner/work/chronicis/chronicis/src/Chronicis.Api/Migrations/20260101033026_AddPublicWorldSupport.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace Chronicis.Api.Migrations
 6{
 7    /// <inheritdoc />
 8    public partial class AddPublicWorldSupport : Migration
 9    {
 10        /// <inheritdoc />
 11        protected override void Up(MigrationBuilder migrationBuilder)
 12        {
 013            migrationBuilder.AddColumn<bool>(
 014                name: "IsPublic",
 015                table: "Worlds",
 016                type: "bit",
 017                nullable: false,
 018                defaultValue: false);
 19
 020            migrationBuilder.AddColumn<string>(
 021                name: "PublicSlug",
 022                table: "Worlds",
 023                type: "nvarchar(100)",
 024                maxLength: 100,
 025                nullable: true);
 26
 027            migrationBuilder.CreateIndex(
 028                name: "IX_Worlds_PublicSlug",
 029                table: "Worlds",
 030                column: "PublicSlug",
 031                unique: true,
 032                filter: "[PublicSlug] IS NOT NULL");
 033        }
 34
 35        /// <inheritdoc />
 36        protected override void Down(MigrationBuilder migrationBuilder)
 37        {
 038            migrationBuilder.DropIndex(
 039                name: "IX_Worlds_PublicSlug",
 040                table: "Worlds");
 41
 042            migrationBuilder.DropColumn(
 043                name: "IsPublic",
 044                table: "Worlds");
 45
 046            migrationBuilder.DropColumn(
 047                name: "PublicSlug",
 048                table: "Worlds");
 049        }
 50    }
 51}

/home/runner/work/chronicis/chronicis/src/Chronicis.Api/Migrations/20260101033026_AddPublicWorldSupport.Designer.cs

#LineLine coverage
 1// <auto-generated />
 2using System;
 3using Chronicis.Api.Data;
 4using Microsoft.EntityFrameworkCore;
 5using Microsoft.EntityFrameworkCore.Infrastructure;
 6using Microsoft.EntityFrameworkCore.Metadata;
 7using Microsoft.EntityFrameworkCore.Migrations;
 8using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 9
 10#nullable disable
 11
 12namespace Chronicis.Api.Migrations
 13{
 14    [DbContext(typeof(ChronicisDbContext))]
 15    [Migration("20260101033026_AddPublicWorldSupport")]
 16    partial class AddPublicWorldSupport
 17    {
 18        /// <inheritdoc />
 19        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 20        {
 21#pragma warning disable 612, 618
 022            modelBuilder
 023                .HasAnnotation("ProductVersion", "9.0.0")
 024                .HasAnnotation("Relational:MaxIdentifierLength", 128);
 25
 026            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
 27
 028            modelBuilder.Entity("Chronicis.Shared.Models.Arc", b =>
 029                {
 030                    b.Property<Guid>("Id")
 031                        .ValueGeneratedOnAdd()
 032                        .HasColumnType("uniqueidentifier");
 033
 034                    b.Property<string>("AISummary")
 035                        .HasColumnType("nvarchar(max)");
 036
 037                    b.Property<DateTime?>("AISummaryGeneratedAt")
 038                        .HasColumnType("datetime2");
 039
 040                    b.Property<Guid>("CampaignId")
 041                        .HasColumnType("uniqueidentifier");
 042
 043                    b.Property<DateTime>("CreatedAt")
 044                        .HasColumnType("datetime2");
 045
 046                    b.Property<Guid>("CreatedBy")
 047                        .HasColumnType("uniqueidentifier");
 048
 049                    b.Property<string>("Description")
 050                        .HasMaxLength(1000)
 051                        .HasColumnType("nvarchar(1000)");
 052
 053                    b.Property<bool>("IsActive")
 054                        .HasColumnType("bit");
 055
 056                    b.Property<string>("Name")
 057                        .IsRequired()
 058                        .HasMaxLength(200)
 059                        .HasColumnType("nvarchar(200)");
 060
 061                    b.Property<int>("SortOrder")
 062                        .HasColumnType("int");
 063
 064                    b.Property<string>("SummaryCustomPrompt")
 065                        .HasColumnType("nvarchar(max)");
 066
 067                    b.Property<bool>("SummaryIncludeWebSources")
 068                        .HasColumnType("bit");
 069
 070                    b.Property<Guid?>("SummaryTemplateId")
 071                        .HasColumnType("uniqueidentifier");
 072
 073                    b.HasKey("Id");
 074
 075                    b.HasIndex("CampaignId");
 076
 077                    b.HasIndex("CreatedBy");
 078
 079                    b.HasIndex("SummaryTemplateId");
 080
 081                    b.HasIndex("CampaignId", "SortOrder");
 082
 083                    b.ToTable("Arcs");
 084                });
 85
 086            modelBuilder.Entity("Chronicis.Shared.Models.Article", b =>
 087                {
 088                    b.Property<Guid>("Id")
 089                        .ValueGeneratedOnAdd()
 090                        .HasColumnType("uniqueidentifier");
 091
 092                    b.Property<string>("AISummary")
 093                        .HasColumnType("nvarchar(max)");
 094
 095                    b.Property<DateTime?>("AISummaryGeneratedAt")
 096                        .HasColumnType("datetime2");
 097
 098                    b.Property<Guid?>("ArcId")
 099                        .HasColumnType("uniqueidentifier");
 0100
 0101                    b.Property<string>("Body")
 0102                        .HasColumnType("nvarchar(max)");
 0103
 0104                    b.Property<Guid?>("CampaignId")
 0105                        .HasColumnType("uniqueidentifier");
 0106
 0107                    b.Property<DateTime>("CreatedAt")
 0108                        .HasColumnType("datetime2");
 0109
 0110                    b.Property<Guid>("CreatedBy")
 0111                        .HasColumnType("uniqueidentifier");
 0112
 0113                    b.Property<DateTime>("EffectiveDate")
 0114                        .HasColumnType("datetime2");
 0115
 0116                    b.Property<string>("IconEmoji")
 0117                        .HasMaxLength(50)
 0118                        .HasColumnType("nvarchar(50)");
 0119
 0120                    b.Property<string>("InGameDate")
 0121                        .HasMaxLength(100)
 0122                        .HasColumnType("nvarchar(100)");
 0123
 0124                    b.Property<Guid?>("LastModifiedBy")
 0125                        .HasColumnType("uniqueidentifier");
 0126
 0127                    b.Property<DateTime?>("ModifiedAt")
 0128                        .HasColumnType("datetime2");
 0129
 0130                    b.Property<Guid?>("ParentId")
 0131                        .HasColumnType("uniqueidentifier");
 0132
 0133                    b.Property<Guid?>("PlayerId")
 0134                        .HasColumnType("uniqueidentifier");
 0135
 0136                    b.Property<DateTime?>("SessionDate")
 0137                        .HasColumnType("datetime2");
 0138
 0139                    b.Property<string>("Slug")
 0140                        .IsRequired()
 0141                        .HasMaxLength(200)
 0142                        .HasColumnType("nvarchar(200)");
 0143
 0144                    b.Property<string>("SummaryCustomPrompt")
 0145                        .HasColumnType("nvarchar(max)");
 0146
 0147                    b.Property<bool>("SummaryIncludeWebSources")
 0148                        .HasColumnType("bit");
 0149
 0150                    b.Property<Guid?>("SummaryTemplateId")
 0151                        .HasColumnType("uniqueidentifier");
 0152
 0153                    b.Property<string>("Title")
 0154                        .IsRequired()
 0155                        .HasMaxLength(500)
 0156                        .HasColumnType("nvarchar(500)");
 0157
 0158                    b.Property<int>("Type")
 0159                        .HasColumnType("int");
 0160
 0161                    b.Property<int>("Visibility")
 0162                        .HasColumnType("int");
 0163
 0164                    b.Property<Guid?>("WorldId")
 0165                        .HasColumnType("uniqueidentifier");
 0166
 0167                    b.HasKey("Id");
 0168
 0169                    b.HasIndex("ArcId");
 0170
 0171                    b.HasIndex("CampaignId");
 0172
 0173                    b.HasIndex("CreatedBy");
 0174
 0175                    b.HasIndex("LastModifiedBy");
 0176
 0177                    b.HasIndex("ParentId");
 0178
 0179                    b.HasIndex("PlayerId");
 0180
 0181                    b.HasIndex("SummaryTemplateId");
 0182
 0183                    b.HasIndex("Title");
 0184
 0185                    b.HasIndex("Type");
 0186
 0187                    b.HasIndex("WorldId");
 0188
 0189                    b.HasIndex("ParentId", "Slug")
 0190                        .IsUnique()
 0191                        .HasDatabaseName("IX_Articles_ParentId_Slug")
 0192                        .HasFilter("[ParentId] IS NOT NULL");
 0193
 0194                    b.HasIndex("WorldId", "Slug")
 0195                        .IsUnique()
 0196                        .HasDatabaseName("IX_Articles_WorldId_Slug_Root")
 0197                        .HasFilter("[ParentId] IS NULL");
 0198
 0199                    b.ToTable("Articles");
 0200                });
 201
 0202            modelBuilder.Entity("Chronicis.Shared.Models.ArticleLink", b =>
 0203                {
 0204                    b.Property<Guid>("Id")
 0205                        .ValueGeneratedOnAdd()
 0206                        .HasColumnType("uniqueidentifier");
 0207
 0208                    b.Property<DateTime>("CreatedAt")
 0209                        .HasColumnType("datetime2");
 0210
 0211                    b.Property<string>("DisplayText")
 0212                        .HasMaxLength(500)
 0213                        .HasColumnType("nvarchar(500)");
 0214
 0215                    b.Property<int>("Position")
 0216                        .HasColumnType("int");
 0217
 0218                    b.Property<Guid>("SourceArticleId")
 0219                        .HasColumnType("uniqueidentifier");
 0220
 0221                    b.Property<Guid>("TargetArticleId")
 0222                        .HasColumnType("uniqueidentifier");
 0223
 0224                    b.HasKey("Id");
 0225
 0226                    b.HasIndex("SourceArticleId");
 0227
 0228                    b.HasIndex("TargetArticleId");
 0229
 0230                    b.HasIndex("SourceArticleId", "TargetArticleId", "Position")
 0231                        .IsUnique();
 0232
 0233                    b.ToTable("ArticleLinks");
 0234                });
 235
 0236            modelBuilder.Entity("Chronicis.Shared.Models.Campaign", b =>
 0237                {
 0238                    b.Property<Guid>("Id")
 0239                        .ValueGeneratedOnAdd()
 0240                        .HasColumnType("uniqueidentifier");
 0241
 0242                    b.Property<string>("AISummary")
 0243                        .HasColumnType("nvarchar(max)");
 0244
 0245                    b.Property<DateTime?>("AISummaryGeneratedAt")
 0246                        .HasColumnType("datetime2");
 0247
 0248                    b.Property<DateTime>("CreatedAt")
 0249                        .HasColumnType("datetime2");
 0250
 0251                    b.Property<string>("Description")
 0252                        .HasMaxLength(1000)
 0253                        .HasColumnType("nvarchar(1000)");
 0254
 0255                    b.Property<DateTime?>("EndedAt")
 0256                        .HasColumnType("datetime2");
 0257
 0258                    b.Property<bool>("IsActive")
 0259                        .HasColumnType("bit");
 0260
 0261                    b.Property<string>("Name")
 0262                        .IsRequired()
 0263                        .HasMaxLength(200)
 0264                        .HasColumnType("nvarchar(200)");
 0265
 0266                    b.Property<Guid>("OwnerId")
 0267                        .HasColumnType("uniqueidentifier");
 0268
 0269                    b.Property<DateTime?>("StartedAt")
 0270                        .HasColumnType("datetime2");
 0271
 0272                    b.Property<string>("SummaryCustomPrompt")
 0273                        .HasColumnType("nvarchar(max)");
 0274
 0275                    b.Property<bool>("SummaryIncludeWebSources")
 0276                        .HasColumnType("bit");
 0277
 0278                    b.Property<Guid?>("SummaryTemplateId")
 0279                        .HasColumnType("uniqueidentifier");
 0280
 0281                    b.Property<Guid>("WorldId")
 0282                        .HasColumnType("uniqueidentifier");
 0283
 0284                    b.HasKey("Id");
 0285
 0286                    b.HasIndex("OwnerId");
 0287
 0288                    b.HasIndex("SummaryTemplateId");
 0289
 0290                    b.HasIndex("WorldId");
 0291
 0292                    b.ToTable("Campaigns");
 0293                });
 294
 0295            modelBuilder.Entity("Chronicis.Shared.Models.CampaignMember", b =>
 0296                {
 0297                    b.Property<Guid>("Id")
 0298                        .ValueGeneratedOnAdd()
 0299                        .HasColumnType("uniqueidentifier");
 0300
 0301                    b.Property<Guid>("CampaignId")
 0302                        .HasColumnType("uniqueidentifier");
 0303
 0304                    b.Property<string>("CharacterName")
 0305                        .HasMaxLength(100)
 0306                        .HasColumnType("nvarchar(100)");
 0307
 0308                    b.Property<DateTime>("JoinedAt")
 0309                        .HasColumnType("datetime2");
 0310
 0311                    b.Property<int>("Role")
 0312                        .HasColumnType("int");
 0313
 0314                    b.Property<Guid>("UserId")
 0315                        .HasColumnType("uniqueidentifier");
 0316
 0317                    b.HasKey("Id");
 0318
 0319                    b.HasIndex("UserId");
 0320
 0321                    b.HasIndex("CampaignId", "UserId")
 0322                        .IsUnique();
 0323
 0324                    b.ToTable("CampaignMembers");
 0325                });
 326
 0327            modelBuilder.Entity("Chronicis.Shared.Models.SummaryTemplate", b =>
 0328                {
 0329                    b.Property<Guid>("Id")
 0330                        .ValueGeneratedOnAdd()
 0331                        .HasColumnType("uniqueidentifier");
 0332
 0333                    b.Property<DateTime>("CreatedAt")
 0334                        .HasColumnType("datetime2");
 0335
 0336                    b.Property<Guid?>("CreatedBy")
 0337                        .HasColumnType("uniqueidentifier");
 0338
 0339                    b.Property<string>("Description")
 0340                        .HasMaxLength(500)
 0341                        .HasColumnType("nvarchar(500)");
 0342
 0343                    b.Property<bool>("IsSystem")
 0344                        .HasColumnType("bit");
 0345
 0346                    b.Property<string>("Name")
 0347                        .IsRequired()
 0348                        .HasMaxLength(200)
 0349                        .HasColumnType("nvarchar(200)");
 0350
 0351                    b.Property<string>("PromptTemplate")
 0352                        .IsRequired()
 0353                        .HasColumnType("nvarchar(max)");
 0354
 0355                    b.Property<Guid?>("WorldId")
 0356                        .HasColumnType("uniqueidentifier");
 0357
 0358                    b.HasKey("Id");
 0359
 0360                    b.HasIndex("CreatedBy");
 0361
 0362                    b.HasIndex("IsSystem");
 0363
 0364                    b.HasIndex("WorldId");
 0365
 0366                    b.ToTable("SummaryTemplates");
 0367                });
 368
 0369            modelBuilder.Entity("Chronicis.Shared.Models.User", b =>
 0370                {
 0371                    b.Property<Guid>("Id")
 0372                        .ValueGeneratedOnAdd()
 0373                        .HasColumnType("uniqueidentifier");
 0374
 0375                    b.Property<string>("Auth0UserId")
 0376                        .IsRequired()
 0377                        .HasMaxLength(256)
 0378                        .HasColumnType("nvarchar(256)");
 0379
 0380                    b.Property<string>("AvatarUrl")
 0381                        .HasMaxLength(500)
 0382                        .HasColumnType("nvarchar(500)");
 0383
 0384                    b.Property<DateTime>("CreatedAt")
 0385                        .HasColumnType("datetime2");
 0386
 0387                    b.Property<string>("DisplayName")
 0388                        .IsRequired()
 0389                        .HasMaxLength(100)
 0390                        .HasColumnType("nvarchar(100)");
 0391
 0392                    b.Property<string>("Email")
 0393                        .IsRequired()
 0394                        .HasMaxLength(256)
 0395                        .HasColumnType("nvarchar(256)");
 0396
 0397                    b.Property<bool>("HasCompletedOnboarding")
 0398                        .HasColumnType("bit");
 0399
 0400                    b.Property<DateTime>("LastLoginAt")
 0401                        .HasColumnType("datetime2");
 0402
 0403                    b.HasKey("Id");
 0404
 0405                    b.HasIndex("Auth0UserId")
 0406                        .IsUnique();
 0407
 0408                    b.HasIndex("Email");
 0409
 0410                    b.ToTable("Users");
 0411                });
 412
 0413            modelBuilder.Entity("Chronicis.Shared.Models.World", b =>
 0414                {
 0415                    b.Property<Guid>("Id")
 0416                        .ValueGeneratedOnAdd()
 0417                        .HasColumnType("uniqueidentifier");
 0418
 0419                    b.Property<DateTime>("CreatedAt")
 0420                        .HasColumnType("datetime2");
 0421
 0422                    b.Property<string>("Description")
 0423                        .HasMaxLength(1000)
 0424                        .HasColumnType("nvarchar(1000)");
 0425
 0426                    b.Property<bool>("IsPublic")
 0427                        .ValueGeneratedOnAdd()
 0428                        .HasColumnType("bit")
 0429                        .HasDefaultValue(false);
 0430
 0431                    b.Property<string>("Name")
 0432                        .IsRequired()
 0433                        .HasMaxLength(200)
 0434                        .HasColumnType("nvarchar(200)");
 0435
 0436                    b.Property<Guid>("OwnerId")
 0437                        .HasColumnType("uniqueidentifier");
 0438
 0439                    b.Property<string>("PublicSlug")
 0440                        .HasMaxLength(100)
 0441                        .HasColumnType("nvarchar(100)");
 0442
 0443                    b.Property<string>("Slug")
 0444                        .IsRequired()
 0445                        .HasMaxLength(200)
 0446                        .HasColumnType("nvarchar(200)");
 0447
 0448                    b.HasKey("Id");
 0449
 0450                    b.HasIndex("OwnerId");
 0451
 0452                    b.HasIndex("PublicSlug")
 0453                        .IsUnique()
 0454                        .HasDatabaseName("IX_Worlds_PublicSlug")
 0455                        .HasFilter("[PublicSlug] IS NOT NULL");
 0456
 0457                    b.HasIndex("OwnerId", "Slug")
 0458                        .IsUnique()
 0459                        .HasDatabaseName("IX_Worlds_OwnerId_Slug");
 0460
 0461                    b.ToTable("Worlds");
 0462                });
 463
 0464            modelBuilder.Entity("Chronicis.Shared.Models.WorldLink", b =>
 0465                {
 0466                    b.Property<Guid>("Id")
 0467                        .ValueGeneratedOnAdd()
 0468                        .HasColumnType("uniqueidentifier");
 0469
 0470                    b.Property<DateTime>("CreatedAt")
 0471                        .HasColumnType("datetime2");
 0472
 0473                    b.Property<string>("Description")
 0474                        .HasMaxLength(500)
 0475                        .HasColumnType("nvarchar(500)");
 0476
 0477                    b.Property<string>("Title")
 0478                        .IsRequired()
 0479                        .HasMaxLength(200)
 0480                        .HasColumnType("nvarchar(200)");
 0481
 0482                    b.Property<string>("Url")
 0483                        .IsRequired()
 0484                        .HasMaxLength(2048)
 0485                        .HasColumnType("nvarchar(2048)");
 0486
 0487                    b.Property<Guid>("WorldId")
 0488                        .HasColumnType("uniqueidentifier");
 0489
 0490                    b.HasKey("Id");
 0491
 0492                    b.HasIndex("WorldId");
 0493
 0494                    b.ToTable("WorldLinks");
 0495                });
 496
 0497            modelBuilder.Entity("Chronicis.Shared.Models.Arc", b =>
 0498                {
 0499                    b.HasOne("Chronicis.Shared.Models.Campaign", "Campaign")
 0500                        .WithMany("Arcs")
 0501                        .HasForeignKey("CampaignId")
 0502                        .OnDelete(DeleteBehavior.Cascade)
 0503                        .IsRequired();
 0504
 0505                    b.HasOne("Chronicis.Shared.Models.User", "Creator")
 0506                        .WithMany("CreatedArcs")
 0507                        .HasForeignKey("CreatedBy")
 0508                        .OnDelete(DeleteBehavior.Restrict)
 0509                        .IsRequired();
 0510
 0511                    b.HasOne("Chronicis.Shared.Models.SummaryTemplate", "SummaryTemplate")
 0512                        .WithMany()
 0513                        .HasForeignKey("SummaryTemplateId")
 0514                        .OnDelete(DeleteBehavior.SetNull);
 0515
 0516                    b.Navigation("Campaign");
 0517
 0518                    b.Navigation("Creator");
 0519
 0520                    b.Navigation("SummaryTemplate");
 0521                });
 522
 0523            modelBuilder.Entity("Chronicis.Shared.Models.Article", b =>
 0524                {
 0525                    b.HasOne("Chronicis.Shared.Models.Arc", "Arc")
 0526                        .WithMany("Sessions")
 0527                        .HasForeignKey("ArcId")
 0528                        .OnDelete(DeleteBehavior.Restrict);
 0529
 0530                    b.HasOne("Chronicis.Shared.Models.Campaign", "Campaign")
 0531                        .WithMany("Articles")
 0532                        .HasForeignKey("CampaignId")
 0533                        .OnDelete(DeleteBehavior.Restrict);
 0534
 0535                    b.HasOne("Chronicis.Shared.Models.User", "Creator")
 0536                        .WithMany("CreatedArticles")
 0537                        .HasForeignKey("CreatedBy")
 0538                        .OnDelete(DeleteBehavior.Restrict)
 0539                        .IsRequired();
 0540
 0541                    b.HasOne("Chronicis.Shared.Models.User", "Modifier")
 0542                        .WithMany("ModifiedArticles")
 0543                        .HasForeignKey("LastModifiedBy")
 0544                        .OnDelete(DeleteBehavior.Restrict);
 0545
 0546                    b.HasOne("Chronicis.Shared.Models.Article", "Parent")
 0547                        .WithMany("Children")
 0548                        .HasForeignKey("ParentId")
 0549                        .OnDelete(DeleteBehavior.Restrict);
 0550
 0551                    b.HasOne("Chronicis.Shared.Models.User", "Player")
 0552                        .WithMany("OwnedCharacters")
 0553                        .HasForeignKey("PlayerId")
 0554                        .OnDelete(DeleteBehavior.Restrict);
 0555
 0556                    b.HasOne("Chronicis.Shared.Models.SummaryTemplate", "SummaryTemplate")
 0557                        .WithMany()
 0558                        .HasForeignKey("SummaryTemplateId")
 0559                        .OnDelete(DeleteBehavior.SetNull);
 0560
 0561                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0562                        .WithMany("Articles")
 0563                        .HasForeignKey("WorldId")
 0564                        .OnDelete(DeleteBehavior.Restrict);
 0565
 0566                    b.Navigation("Arc");
 0567
 0568                    b.Navigation("Campaign");
 0569
 0570                    b.Navigation("Creator");
 0571
 0572                    b.Navigation("Modifier");
 0573
 0574                    b.Navigation("Parent");
 0575
 0576                    b.Navigation("Player");
 0577
 0578                    b.Navigation("SummaryTemplate");
 0579
 0580                    b.Navigation("World");
 0581                });
 582
 0583            modelBuilder.Entity("Chronicis.Shared.Models.ArticleLink", b =>
 0584                {
 0585                    b.HasOne("Chronicis.Shared.Models.Article", "SourceArticle")
 0586                        .WithMany("OutgoingLinks")
 0587                        .HasForeignKey("SourceArticleId")
 0588                        .OnDelete(DeleteBehavior.Cascade)
 0589                        .IsRequired();
 0590
 0591                    b.HasOne("Chronicis.Shared.Models.Article", "TargetArticle")
 0592                        .WithMany("IncomingLinks")
 0593                        .HasForeignKey("TargetArticleId")
 0594                        .OnDelete(DeleteBehavior.NoAction)
 0595                        .IsRequired();
 0596
 0597                    b.Navigation("SourceArticle");
 0598
 0599                    b.Navigation("TargetArticle");
 0600                });
 601
 0602            modelBuilder.Entity("Chronicis.Shared.Models.Campaign", b =>
 0603                {
 0604                    b.HasOne("Chronicis.Shared.Models.User", "Owner")
 0605                        .WithMany("OwnedCampaigns")
 0606                        .HasForeignKey("OwnerId")
 0607                        .OnDelete(DeleteBehavior.Restrict)
 0608                        .IsRequired();
 0609
 0610                    b.HasOne("Chronicis.Shared.Models.SummaryTemplate", "SummaryTemplate")
 0611                        .WithMany()
 0612                        .HasForeignKey("SummaryTemplateId")
 0613                        .OnDelete(DeleteBehavior.SetNull);
 0614
 0615                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0616                        .WithMany("Campaigns")
 0617                        .HasForeignKey("WorldId")
 0618                        .OnDelete(DeleteBehavior.Restrict)
 0619                        .IsRequired();
 0620
 0621                    b.Navigation("Owner");
 0622
 0623                    b.Navigation("SummaryTemplate");
 0624
 0625                    b.Navigation("World");
 0626                });
 627
 0628            modelBuilder.Entity("Chronicis.Shared.Models.CampaignMember", b =>
 0629                {
 0630                    b.HasOne("Chronicis.Shared.Models.Campaign", "Campaign")
 0631                        .WithMany("Members")
 0632                        .HasForeignKey("CampaignId")
 0633                        .OnDelete(DeleteBehavior.Cascade)
 0634                        .IsRequired();
 0635
 0636                    b.HasOne("Chronicis.Shared.Models.User", "User")
 0637                        .WithMany("CampaignMemberships")
 0638                        .HasForeignKey("UserId")
 0639                        .OnDelete(DeleteBehavior.Cascade)
 0640                        .IsRequired();
 0641
 0642                    b.Navigation("Campaign");
 0643
 0644                    b.Navigation("User");
 0645                });
 646
 0647            modelBuilder.Entity("Chronicis.Shared.Models.SummaryTemplate", b =>
 0648                {
 0649                    b.HasOne("Chronicis.Shared.Models.User", "Creator")
 0650                        .WithMany()
 0651                        .HasForeignKey("CreatedBy")
 0652                        .OnDelete(DeleteBehavior.Restrict);
 0653
 0654                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0655                        .WithMany()
 0656                        .HasForeignKey("WorldId")
 0657                        .OnDelete(DeleteBehavior.Cascade);
 0658
 0659                    b.Navigation("Creator");
 0660
 0661                    b.Navigation("World");
 0662                });
 663
 0664            modelBuilder.Entity("Chronicis.Shared.Models.World", b =>
 0665                {
 0666                    b.HasOne("Chronicis.Shared.Models.User", "Owner")
 0667                        .WithMany("OwnedWorlds")
 0668                        .HasForeignKey("OwnerId")
 0669                        .OnDelete(DeleteBehavior.Restrict)
 0670                        .IsRequired();
 0671
 0672                    b.Navigation("Owner");
 0673                });
 674
 0675            modelBuilder.Entity("Chronicis.Shared.Models.WorldLink", b =>
 0676                {
 0677                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0678                        .WithMany("Links")
 0679                        .HasForeignKey("WorldId")
 0680                        .OnDelete(DeleteBehavior.Cascade)
 0681                        .IsRequired();
 0682
 0683                    b.Navigation("World");
 0684                });
 685
 0686            modelBuilder.Entity("Chronicis.Shared.Models.Arc", b =>
 0687                {
 0688                    b.Navigation("Sessions");
 0689                });
 690
 0691            modelBuilder.Entity("Chronicis.Shared.Models.Article", b =>
 0692                {
 0693                    b.Navigation("Children");
 0694
 0695                    b.Navigation("IncomingLinks");
 0696
 0697                    b.Navigation("OutgoingLinks");
 0698                });
 699
 0700            modelBuilder.Entity("Chronicis.Shared.Models.Campaign", b =>
 0701                {
 0702                    b.Navigation("Arcs");
 0703
 0704                    b.Navigation("Articles");
 0705
 0706                    b.Navigation("Members");
 0707                });
 708
 0709            modelBuilder.Entity("Chronicis.Shared.Models.User", b =>
 0710                {
 0711                    b.Navigation("CampaignMemberships");
 0712
 0713                    b.Navigation("CreatedArcs");
 0714
 0715                    b.Navigation("CreatedArticles");
 0716
 0717                    b.Navigation("ModifiedArticles");
 0718
 0719                    b.Navigation("OwnedCampaigns");
 0720
 0721                    b.Navigation("OwnedCharacters");
 0722
 0723                    b.Navigation("OwnedWorlds");
 0724                });
 725
 0726            modelBuilder.Entity("Chronicis.Shared.Models.World", b =>
 0727                {
 0728                    b.Navigation("Articles");
 0729
 0730                    b.Navigation("Campaigns");
 0731
 0732                    b.Navigation("Links");
 0733                });
 734#pragma warning restore 612, 618
 0735        }
 736    }
 737}