< Summary

Line coverage
0%
Covered lines: 0
Uncovered lines: 687
Coverable lines: 687
Total lines: 752
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/20251230200922_AddUserOnboardingFlag.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace Chronicis.Api.Migrations
 6{
 7    /// <inheritdoc />
 8    public partial class AddUserOnboardingFlag : Migration
 9    {
 10        /// <inheritdoc />
 11        protected override void Up(MigrationBuilder migrationBuilder)
 12        {
 013            migrationBuilder.AddColumn<bool>(
 014                name: "HasCompletedOnboarding",
 015                table: "Users",
 016                type: "bit",
 017                nullable: false,
 018                defaultValue: false);
 019        }
 20
 21        /// <inheritdoc />
 22        protected override void Down(MigrationBuilder migrationBuilder)
 23        {
 024            migrationBuilder.DropColumn(
 025                name: "HasCompletedOnboarding",
 026                table: "Users");
 027        }
 28    }
 29}

/home/runner/work/chronicis/chronicis/src/Chronicis.Api/Migrations/20251230200922_AddUserOnboardingFlag.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("20251230200922_AddUserOnboardingFlag")]
 16    partial class AddUserOnboardingFlag
 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<string>("Name")
 0427                        .IsRequired()
 0428                        .HasMaxLength(200)
 0429                        .HasColumnType("nvarchar(200)");
 0430
 0431                    b.Property<Guid>("OwnerId")
 0432                        .HasColumnType("uniqueidentifier");
 0433
 0434                    b.Property<string>("Slug")
 0435                        .IsRequired()
 0436                        .HasMaxLength(200)
 0437                        .HasColumnType("nvarchar(200)");
 0438
 0439                    b.HasKey("Id");
 0440
 0441                    b.HasIndex("OwnerId");
 0442
 0443                    b.HasIndex("OwnerId", "Slug")
 0444                        .IsUnique()
 0445                        .HasDatabaseName("IX_Worlds_OwnerId_Slug");
 0446
 0447                    b.ToTable("Worlds");
 0448                });
 449
 0450            modelBuilder.Entity("Chronicis.Shared.Models.WorldLink", b =>
 0451                {
 0452                    b.Property<Guid>("Id")
 0453                        .ValueGeneratedOnAdd()
 0454                        .HasColumnType("uniqueidentifier");
 0455
 0456                    b.Property<DateTime>("CreatedAt")
 0457                        .HasColumnType("datetime2");
 0458
 0459                    b.Property<string>("Description")
 0460                        .HasMaxLength(500)
 0461                        .HasColumnType("nvarchar(500)");
 0462
 0463                    b.Property<string>("Title")
 0464                        .IsRequired()
 0465                        .HasMaxLength(200)
 0466                        .HasColumnType("nvarchar(200)");
 0467
 0468                    b.Property<string>("Url")
 0469                        .IsRequired()
 0470                        .HasMaxLength(2048)
 0471                        .HasColumnType("nvarchar(2048)");
 0472
 0473                    b.Property<Guid>("WorldId")
 0474                        .HasColumnType("uniqueidentifier");
 0475
 0476                    b.HasKey("Id");
 0477
 0478                    b.HasIndex("WorldId");
 0479
 0480                    b.ToTable("WorldLinks");
 0481                });
 482
 0483            modelBuilder.Entity("Chronicis.Shared.Models.Arc", b =>
 0484                {
 0485                    b.HasOne("Chronicis.Shared.Models.Campaign", "Campaign")
 0486                        .WithMany("Arcs")
 0487                        .HasForeignKey("CampaignId")
 0488                        .OnDelete(DeleteBehavior.Cascade)
 0489                        .IsRequired();
 0490
 0491                    b.HasOne("Chronicis.Shared.Models.User", "Creator")
 0492                        .WithMany("CreatedArcs")
 0493                        .HasForeignKey("CreatedBy")
 0494                        .OnDelete(DeleteBehavior.Restrict)
 0495                        .IsRequired();
 0496
 0497                    b.HasOne("Chronicis.Shared.Models.SummaryTemplate", "SummaryTemplate")
 0498                        .WithMany()
 0499                        .HasForeignKey("SummaryTemplateId")
 0500                        .OnDelete(DeleteBehavior.SetNull);
 0501
 0502                    b.Navigation("Campaign");
 0503
 0504                    b.Navigation("Creator");
 0505
 0506                    b.Navigation("SummaryTemplate");
 0507                });
 508
 0509            modelBuilder.Entity("Chronicis.Shared.Models.Article", b =>
 0510                {
 0511                    b.HasOne("Chronicis.Shared.Models.Arc", "Arc")
 0512                        .WithMany("Sessions")
 0513                        .HasForeignKey("ArcId")
 0514                        .OnDelete(DeleteBehavior.Restrict);
 0515
 0516                    b.HasOne("Chronicis.Shared.Models.Campaign", "Campaign")
 0517                        .WithMany("Articles")
 0518                        .HasForeignKey("CampaignId")
 0519                        .OnDelete(DeleteBehavior.Restrict);
 0520
 0521                    b.HasOne("Chronicis.Shared.Models.User", "Creator")
 0522                        .WithMany("CreatedArticles")
 0523                        .HasForeignKey("CreatedBy")
 0524                        .OnDelete(DeleteBehavior.Restrict)
 0525                        .IsRequired();
 0526
 0527                    b.HasOne("Chronicis.Shared.Models.User", "Modifier")
 0528                        .WithMany("ModifiedArticles")
 0529                        .HasForeignKey("LastModifiedBy")
 0530                        .OnDelete(DeleteBehavior.Restrict);
 0531
 0532                    b.HasOne("Chronicis.Shared.Models.Article", "Parent")
 0533                        .WithMany("Children")
 0534                        .HasForeignKey("ParentId")
 0535                        .OnDelete(DeleteBehavior.Restrict);
 0536
 0537                    b.HasOne("Chronicis.Shared.Models.User", "Player")
 0538                        .WithMany("OwnedCharacters")
 0539                        .HasForeignKey("PlayerId")
 0540                        .OnDelete(DeleteBehavior.Restrict);
 0541
 0542                    b.HasOne("Chronicis.Shared.Models.SummaryTemplate", "SummaryTemplate")
 0543                        .WithMany()
 0544                        .HasForeignKey("SummaryTemplateId")
 0545                        .OnDelete(DeleteBehavior.SetNull);
 0546
 0547                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0548                        .WithMany("Articles")
 0549                        .HasForeignKey("WorldId")
 0550                        .OnDelete(DeleteBehavior.Restrict);
 0551
 0552                    b.Navigation("Arc");
 0553
 0554                    b.Navigation("Campaign");
 0555
 0556                    b.Navigation("Creator");
 0557
 0558                    b.Navigation("Modifier");
 0559
 0560                    b.Navigation("Parent");
 0561
 0562                    b.Navigation("Player");
 0563
 0564                    b.Navigation("SummaryTemplate");
 0565
 0566                    b.Navigation("World");
 0567                });
 568
 0569            modelBuilder.Entity("Chronicis.Shared.Models.ArticleLink", b =>
 0570                {
 0571                    b.HasOne("Chronicis.Shared.Models.Article", "SourceArticle")
 0572                        .WithMany("OutgoingLinks")
 0573                        .HasForeignKey("SourceArticleId")
 0574                        .OnDelete(DeleteBehavior.Cascade)
 0575                        .IsRequired();
 0576
 0577                    b.HasOne("Chronicis.Shared.Models.Article", "TargetArticle")
 0578                        .WithMany("IncomingLinks")
 0579                        .HasForeignKey("TargetArticleId")
 0580                        .OnDelete(DeleteBehavior.NoAction)
 0581                        .IsRequired();
 0582
 0583                    b.Navigation("SourceArticle");
 0584
 0585                    b.Navigation("TargetArticle");
 0586                });
 587
 0588            modelBuilder.Entity("Chronicis.Shared.Models.Campaign", b =>
 0589                {
 0590                    b.HasOne("Chronicis.Shared.Models.User", "Owner")
 0591                        .WithMany("OwnedCampaigns")
 0592                        .HasForeignKey("OwnerId")
 0593                        .OnDelete(DeleteBehavior.Restrict)
 0594                        .IsRequired();
 0595
 0596                    b.HasOne("Chronicis.Shared.Models.SummaryTemplate", "SummaryTemplate")
 0597                        .WithMany()
 0598                        .HasForeignKey("SummaryTemplateId")
 0599                        .OnDelete(DeleteBehavior.SetNull);
 0600
 0601                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0602                        .WithMany("Campaigns")
 0603                        .HasForeignKey("WorldId")
 0604                        .OnDelete(DeleteBehavior.Restrict)
 0605                        .IsRequired();
 0606
 0607                    b.Navigation("Owner");
 0608
 0609                    b.Navigation("SummaryTemplate");
 0610
 0611                    b.Navigation("World");
 0612                });
 613
 0614            modelBuilder.Entity("Chronicis.Shared.Models.CampaignMember", b =>
 0615                {
 0616                    b.HasOne("Chronicis.Shared.Models.Campaign", "Campaign")
 0617                        .WithMany("Members")
 0618                        .HasForeignKey("CampaignId")
 0619                        .OnDelete(DeleteBehavior.Cascade)
 0620                        .IsRequired();
 0621
 0622                    b.HasOne("Chronicis.Shared.Models.User", "User")
 0623                        .WithMany("CampaignMemberships")
 0624                        .HasForeignKey("UserId")
 0625                        .OnDelete(DeleteBehavior.Cascade)
 0626                        .IsRequired();
 0627
 0628                    b.Navigation("Campaign");
 0629
 0630                    b.Navigation("User");
 0631                });
 632
 0633            modelBuilder.Entity("Chronicis.Shared.Models.SummaryTemplate", b =>
 0634                {
 0635                    b.HasOne("Chronicis.Shared.Models.User", "Creator")
 0636                        .WithMany()
 0637                        .HasForeignKey("CreatedBy")
 0638                        .OnDelete(DeleteBehavior.Restrict);
 0639
 0640                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0641                        .WithMany()
 0642                        .HasForeignKey("WorldId")
 0643                        .OnDelete(DeleteBehavior.Cascade);
 0644
 0645                    b.Navigation("Creator");
 0646
 0647                    b.Navigation("World");
 0648                });
 649
 0650            modelBuilder.Entity("Chronicis.Shared.Models.World", b =>
 0651                {
 0652                    b.HasOne("Chronicis.Shared.Models.User", "Owner")
 0653                        .WithMany("OwnedWorlds")
 0654                        .HasForeignKey("OwnerId")
 0655                        .OnDelete(DeleteBehavior.Restrict)
 0656                        .IsRequired();
 0657
 0658                    b.Navigation("Owner");
 0659                });
 660
 0661            modelBuilder.Entity("Chronicis.Shared.Models.WorldLink", b =>
 0662                {
 0663                    b.HasOne("Chronicis.Shared.Models.World", "World")
 0664                        .WithMany("Links")
 0665                        .HasForeignKey("WorldId")
 0666                        .OnDelete(DeleteBehavior.Cascade)
 0667                        .IsRequired();
 0668
 0669                    b.Navigation("World");
 0670                });
 671
 0672            modelBuilder.Entity("Chronicis.Shared.Models.Arc", b =>
 0673                {
 0674                    b.Navigation("Sessions");
 0675                });
 676
 0677            modelBuilder.Entity("Chronicis.Shared.Models.Article", b =>
 0678                {
 0679                    b.Navigation("Children");
 0680
 0681                    b.Navigation("IncomingLinks");
 0682
 0683                    b.Navigation("OutgoingLinks");
 0684                });
 685
 0686            modelBuilder.Entity("Chronicis.Shared.Models.Campaign", b =>
 0687                {
 0688                    b.Navigation("Arcs");
 0689
 0690                    b.Navigation("Articles");
 0691
 0692                    b.Navigation("Members");
 0693                });
 694
 0695            modelBuilder.Entity("Chronicis.Shared.Models.User", b =>
 0696                {
 0697                    b.Navigation("CampaignMemberships");
 0698
 0699                    b.Navigation("CreatedArcs");
 0700
 0701                    b.Navigation("CreatedArticles");
 0702
 0703                    b.Navigation("ModifiedArticles");
 0704
 0705                    b.Navigation("OwnedCampaigns");
 0706
 0707                    b.Navigation("OwnedCharacters");
 0708
 0709                    b.Navigation("OwnedWorlds");
 0710                });
 711
 0712            modelBuilder.Entity("Chronicis.Shared.Models.World", b =>
 0713                {
 0714                    b.Navigation("Articles");
 0715
 0716                    b.Navigation("Campaigns");
 0717
 0718                    b.Navigation("Links");
 0719                });
 720#pragma warning restore 612, 618
 0721        }
 722    }
 723}