< Summary - Heimdall API

Line coverage
100%
Covered lines: 1203
Uncovered lines: 0
Coverable lines: 1203
Total lines: 1286
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 3
Fully covered methods: 3
Total methods: 3
Method coverage: 100%
Full method coverage: 100%

Metrics

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

File(s)

/home/ci/agent/workspace/heimdall-api-docs_main/app/src/Infrastructure/ArturRios.Heimdall.Data/Migrations/20261014045512_AddAuditLogTargetIndex.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace ArturRios.Heimdall.Data.Migrations
 6{
 7    /// <summary>
 8    ///     Indexes AUDIT_LOG.target_id, so UC-48's filter by affected entity (FR-AT-01) reads an index
 9    ///     rather than the whole trail.
 10    /// </summary>
 11    /// <remarks>
 12    ///     Adding an index is DDL, not a row change, so the append-only triggers installed by
 13    ///     MakeAuditLogAppendOnly and AllowClearingAuditActor neither see it nor need changing. No
 14    ///     column is added, so the record of processing (Data Protection Document §5.1) is unchanged.
 15    /// </remarks>
 16    public partial class AddAuditLogTargetIndex : Migration
 17    {
 18        /// <inheritdoc />
 19        protected override void Up(MigrationBuilder migrationBuilder)
 20        {
 1921            migrationBuilder.CreateIndex(
 1922                name: "ix_audit_log_target_id",
 1923                schema: "heimdall",
 1924                table: "audit_log",
 1925                column: "target_id");
 1926        }
 27
 28        /// <inheritdoc />
 29        protected override void Down(MigrationBuilder migrationBuilder)
 30        {
 131            migrationBuilder.DropIndex(
 132                name: "ix_audit_log_target_id",
 133                schema: "heimdall",
 134                table: "audit_log");
 135        }
 36    }
 37}

/home/ci/agent/workspace/heimdall-api-docs_main/app/src/Infrastructure/ArturRios.Heimdall.Data/Migrations/20261014045512_AddAuditLogTargetIndex.Designer.cs

#LineLine coverage
 1// <auto-generated />
 2using System;
 3using ArturRios.Heimdall.Data.Configuration;
 4using Microsoft.EntityFrameworkCore;
 5using Microsoft.EntityFrameworkCore.Infrastructure;
 6using Microsoft.EntityFrameworkCore.Migrations;
 7using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 8using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 9
 10#nullable disable
 11
 12namespace ArturRios.Heimdall.Data.Migrations
 13{
 14    [DbContext(typeof(AppDbContext))]
 15    [Migration("20261014045512_AddAuditLogTargetIndex")]
 16    partial class AddAuditLogTargetIndex
 17    {
 18        /// <inheritdoc />
 19        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 20        {
 21#pragma warning disable 612, 618
 1022            modelBuilder
 1023                .HasDefaultSchema("heimdall")
 1024                .HasAnnotation("ProductVersion", "10.0.13")
 1025                .HasAnnotation("Relational:MaxIdentifierLength", 63);
 26
 1027            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 28
 1029            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 1030                {
 1031                    b.Property<long>("Id")
 1032                        .ValueGeneratedOnAdd()
 1033                        .HasColumnType("bigint")
 1034                        .HasColumnName("id")
 1035                        .HasColumnOrder(1);
 1036
 1037                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 1038
 1039                    b.Property<DateTime>("CreatedAt")
 1040                        .ValueGeneratedOnAdd()
 1041                        .HasColumnType("timestamp with time zone")
 1042                        .HasColumnName("created_at")
 1043                        .HasDefaultValueSql("now()");
 1044
 1045                    b.Property<bool>("IsDeleted")
 1046                        .ValueGeneratedOnAdd()
 1047                        .HasColumnType("boolean")
 1048                        .HasDefaultValue(false)
 1049                        .HasColumnName("is_deleted");
 1050
 1051                    b.Property<string>("Name")
 1052                        .IsRequired()
 1053                        .HasMaxLength(200)
 1054                        .HasColumnType("character varying(200)")
 1055                        .HasColumnName("name");
 1056
 1057                    b.Property<long>("OwnerId")
 1058                        .HasColumnType("bigint")
 1059                        .HasColumnName("owner_id");
 1060
 1061                    b.Property<Guid>("PublicId")
 1062                        .HasColumnType("uuid")
 1063                        .HasColumnName("public_id");
 1064
 1065                    b.Property<long>("ScopeId")
 1066                        .HasColumnType("bigint")
 1067                        .HasColumnName("scope_id");
 1068
 1069                    b.Property<DateTime>("UpdatedAt")
 1070                        .ValueGeneratedOnAdd()
 1071                        .HasColumnType("timestamp with time zone")
 1072                        .HasColumnName("updated_at")
 1073                        .HasDefaultValueSql("now()");
 1074
 1075                    b.HasKey("Id")
 1076                        .HasName("pk_application");
 1077
 1078                    b.HasIndex("OwnerId")
 1079                        .HasDatabaseName("ix_application_owner_id");
 1080
 1081                    b.HasIndex("PublicId")
 1082                        .IsUnique()
 1083                        .HasDatabaseName("ix_application_public_id");
 1084
 1085                    b.HasIndex("ScopeId")
 1086                        .HasDatabaseName("ix_application_scope_id");
 1087
 1088                    b.ToTable("application", "heimdall");
 2089                });
 90
 1091            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.AuditLog", b =>
 1092                {
 1093                    b.Property<long>("Id")
 1094                        .ValueGeneratedOnAdd()
 1095                        .HasColumnType("bigint")
 1096                        .HasColumnName("id")
 1097                        .HasColumnOrder(1);
 1098
 1099                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10100
 10101                    b.Property<string>("Action")
 10102                        .IsRequired()
 10103                        .HasMaxLength(200)
 10104                        .HasColumnType("character varying(200)")
 10105                        .HasColumnName("action");
 10106
 10107                    b.Property<Guid?>("ActorPersonId")
 10108                        .HasColumnType("uuid")
 10109                        .HasColumnName("actor_person_id");
 10110
 10111                    b.Property<int?>("ActorRole")
 10112                        .HasColumnType("integer")
 10113                        .HasColumnName("actor_role");
 10114
 10115                    b.Property<DateTime>("CreatedAt")
 10116                        .ValueGeneratedOnAdd()
 10117                        .HasColumnType("timestamp with time zone")
 10118                        .HasColumnName("created_at")
 10119                        .HasDefaultValueSql("now()");
 10120
 10121                    b.Property<string>("FailureReason")
 10122                        .HasMaxLength(500)
 10123                        .HasColumnType("character varying(500)")
 10124                        .HasColumnName("failure_reason");
 10125
 10126                    b.Property<Guid>("PublicId")
 10127                        .HasColumnType("uuid")
 10128                        .HasColumnName("public_id");
 10129
 10130                    b.Property<bool>("Succeeded")
 10131                        .HasColumnType("boolean")
 10132                        .HasColumnName("succeeded");
 10133
 10134                    b.Property<Guid?>("TargetId")
 10135                        .HasColumnType("uuid")
 10136                        .HasColumnName("target_id");
 10137
 10138                    b.HasKey("Id")
 10139                        .HasName("pk_audit_log");
 10140
 10141                    b.HasIndex("ActorPersonId")
 10142                        .HasDatabaseName("ix_audit_log_actor_person_id");
 10143
 10144                    b.HasIndex("CreatedAt")
 10145                        .HasDatabaseName("ix_audit_log_created_at");
 10146
 10147                    b.HasIndex("PublicId")
 10148                        .IsUnique()
 10149                        .HasDatabaseName("ix_audit_log_public_id");
 10150
 10151                    b.HasIndex("TargetId")
 10152                        .HasDatabaseName("ix_audit_log_target_id");
 10153
 10154                    b.ToTable("audit_log", "heimdall");
 20155                });
 156
 10157            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.EmailVerificationToken", b =>
 10158                {
 10159                    b.Property<long>("Id")
 10160                        .ValueGeneratedOnAdd()
 10161                        .HasColumnType("bigint")
 10162                        .HasColumnName("id")
 10163                        .HasColumnOrder(1);
 10164
 10165                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10166
 10167                    b.Property<DateTime>("ExpiresAt")
 10168                        .HasColumnType("timestamp with time zone")
 10169                        .HasColumnName("expires_at");
 10170
 10171                    b.Property<long>("PersonId")
 10172                        .HasColumnType("bigint")
 10173                        .HasColumnName("person_id");
 10174
 10175                    b.Property<string>("TokenHash")
 10176                        .IsRequired()
 10177                        .HasMaxLength(64)
 10178                        .HasColumnType("character varying(64)")
 10179                        .HasColumnName("token_hash");
 10180
 10181                    b.Property<bool>("Used")
 10182                        .ValueGeneratedOnAdd()
 10183                        .HasColumnType("boolean")
 10184                        .HasDefaultValue(false)
 10185                        .HasColumnName("used");
 10186
 10187                    b.HasKey("Id")
 10188                        .HasName("pk_email_verification_token");
 10189
 10190                    b.HasIndex("PersonId")
 10191                        .HasDatabaseName("ix_email_verification_token_person_id");
 10192
 10193                    b.HasIndex("TokenHash")
 10194                        .IsUnique()
 10195                        .HasDatabaseName("ix_email_verification_token_token_hash");
 10196
 10197                    b.ToTable("email_verification_token", "heimdall");
 20198                });
 199
 10200            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.GoogleUser", b =>
 10201                {
 10202                    b.Property<long>("Id")
 10203                        .ValueGeneratedOnAdd()
 10204                        .HasColumnType("bigint")
 10205                        .HasColumnName("id")
 10206                        .HasColumnOrder(1);
 10207
 10208                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10209
 10210                    b.Property<DateTime?>("AnonymisedAt")
 10211                        .HasColumnType("timestamp with time zone")
 10212                        .HasColumnName("anonymised_at");
 10213
 10214                    b.Property<DateTime?>("BasisRecordedAt")
 10215                        .HasColumnType("timestamp with time zone")
 10216                        .HasColumnName("basis_recorded_at");
 10217
 10218                    b.Property<DateTime>("CreatedAt")
 10219                        .ValueGeneratedOnAdd()
 10220                        .HasColumnType("timestamp with time zone")
 10221                        .HasColumnName("created_at")
 10222                        .HasDefaultValueSql("now()");
 10223
 10224                    b.Property<DateTime?>("DeletedAt")
 10225                        .HasColumnType("timestamp with time zone")
 10226                        .HasColumnName("deleted_at");
 10227
 10228                    b.Property<int?>("DeletionKind")
 10229                        .HasColumnType("integer")
 10230                        .HasColumnName("deletion_kind");
 10231
 10232                    b.Property<string>("Email")
 10233                        .IsRequired()
 10234                        .HasMaxLength(256)
 10235                        .HasColumnType("character varying(256)")
 10236                        .HasColumnName("email");
 10237
 10238                    b.Property<bool>("EmailVerified")
 10239                        .ValueGeneratedOnAdd()
 10240                        .HasColumnType("boolean")
 10241                        .HasDefaultValue(false)
 10242                        .HasColumnName("email_verified");
 10243
 10244                    b.Property<string>("ErasureBlockedReason")
 10245                        .HasMaxLength(500)
 10246                        .HasColumnType("character varying(500)")
 10247                        .HasColumnName("erasure_blocked_reason");
 10248
 10249                    b.Property<DateTime?>("ErasureDueAt")
 10250                        .HasColumnType("timestamp with time zone")
 10251                        .HasColumnName("erasure_due_at");
 10252
 10253                    b.Property<DateTime?>("ErasureRequestedAt")
 10254                        .HasColumnType("timestamp with time zone")
 10255                        .HasColumnName("erasure_requested_at");
 10256
 10257                    b.Property<string>("GoogleId")
 10258                        .IsRequired()
 10259                        .HasMaxLength(255)
 10260                        .HasColumnType("character varying(255)")
 10261                        .HasColumnName("google_id");
 10262
 10263                    b.Property<bool>("IsDeleted")
 10264                        .ValueGeneratedOnAdd()
 10265                        .HasColumnType("boolean")
 10266                        .HasDefaultValue(false)
 10267                        .HasColumnName("is_deleted");
 10268
 10269                    b.Property<int>("LegalBasis")
 10270                        .ValueGeneratedOnAdd()
 10271                        .HasColumnType("integer")
 10272                        .HasDefaultValue(0)
 10273                        .HasColumnName("legal_basis");
 10274
 10275                    b.Property<string>("Name")
 10276                        .IsRequired()
 10277                        .HasMaxLength(200)
 10278                        .HasColumnType("character varying(200)")
 10279                        .HasColumnName("name");
 10280
 10281                    b.Property<string>("PrivacyNoticeVersion")
 10282                        .HasMaxLength(50)
 10283                        .HasColumnType("character varying(50)")
 10284                        .HasColumnName("privacy_notice_version");
 10285
 10286                    b.Property<DateTime?>("ProcessingRestrictedAt")
 10287                        .HasColumnType("timestamp with time zone")
 10288                        .HasColumnName("processing_restricted_at");
 10289
 10290                    b.Property<string>("ProfilePictureUrl")
 10291                        .HasMaxLength(2048)
 10292                        .HasColumnType("character varying(2048)")
 10293                        .HasColumnName("profile_picture_url");
 10294
 10295                    b.Property<Guid>("PublicId")
 10296                        .HasColumnType("uuid")
 10297                        .HasColumnName("public_id");
 10298
 10299                    b.Property<int?>("RestrictionGround")
 10300                        .HasColumnType("integer")
 10301                        .HasColumnName("restriction_ground");
 10302
 10303                    b.Property<DateTime?>("RestrictionLiftNotifiedAt")
 10304                        .HasColumnType("timestamp with time zone")
 10305                        .HasColumnName("restriction_lift_notified_at");
 10306
 10307                    b.Property<long>("ScopeId")
 10308                        .HasColumnType("bigint")
 10309                        .HasColumnName("scope_id");
 10310
 10311                    b.Property<DateTime>("UpdatedAt")
 10312                        .ValueGeneratedOnAdd()
 10313                        .HasColumnType("timestamp with time zone")
 10314                        .HasColumnName("updated_at")
 10315                        .HasDefaultValueSql("now()");
 10316
 10317                    b.HasKey("Id")
 10318                        .HasName("pk_google_user");
 10319
 10320                    b.HasIndex("DeletedAt")
 10321                        .HasDatabaseName("ix_google_user_deleted_at")
 10322                        .HasFilter("is_deleted = true AND anonymised_at IS NULL");
 10323
 10324                    b.HasIndex("ProcessingRestrictedAt")
 10325                        .HasDatabaseName("ix_google_user_processing_restricted_at")
 10326                        .HasFilter("processing_restricted_at IS NOT NULL");
 10327
 10328                    b.HasIndex("PublicId")
 10329                        .IsUnique()
 10330                        .HasDatabaseName("ix_google_user_public_id");
 10331
 10332                    b.HasIndex("ScopeId", "Email")
 10333                        .IsUnique()
 10334                        .HasDatabaseName("ix_google_user_scope_id_email");
 10335
 10336                    b.HasIndex("ScopeId", "GoogleId")
 10337                        .IsUnique()
 10338                        .HasDatabaseName("ix_google_user_scope_id_google_id");
 10339
 10340                    b.ToTable("google_user", "heimdall");
 20341                });
 342
 10343            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PasswordResetToken", b =>
 10344                {
 10345                    b.Property<long>("Id")
 10346                        .ValueGeneratedOnAdd()
 10347                        .HasColumnType("bigint")
 10348                        .HasColumnName("id")
 10349                        .HasColumnOrder(1);
 10350
 10351                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10352
 10353                    b.Property<DateTime>("ExpiresAt")
 10354                        .HasColumnType("timestamp with time zone")
 10355                        .HasColumnName("expires_at");
 10356
 10357                    b.Property<long>("PersonId")
 10358                        .HasColumnType("bigint")
 10359                        .HasColumnName("person_id");
 10360
 10361                    b.Property<string>("TokenHash")
 10362                        .IsRequired()
 10363                        .HasMaxLength(64)
 10364                        .HasColumnType("character varying(64)")
 10365                        .HasColumnName("token_hash");
 10366
 10367                    b.Property<bool>("Used")
 10368                        .ValueGeneratedOnAdd()
 10369                        .HasColumnType("boolean")
 10370                        .HasDefaultValue(false)
 10371                        .HasColumnName("used");
 10372
 10373                    b.HasKey("Id")
 10374                        .HasName("pk_password_reset_token");
 10375
 10376                    b.HasIndex("PersonId")
 10377                        .HasDatabaseName("ix_password_reset_token_person_id");
 10378
 10379                    b.HasIndex("TokenHash")
 10380                        .IsUnique()
 10381                        .HasDatabaseName("ix_password_reset_token_token_hash");
 10382
 10383                    b.ToTable("password_reset_token", "heimdall");
 20384                });
 385
 10386            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PendingRegistration", b =>
 10387                {
 10388                    b.Property<long>("Id")
 10389                        .ValueGeneratedOnAdd()
 10390                        .HasColumnType("bigint")
 10391                        .HasColumnName("id")
 10392                        .HasColumnOrder(1);
 10393
 10394                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10395
 10396                    b.Property<DateTime>("CreatedAt")
 10397                        .ValueGeneratedOnAdd()
 10398                        .HasColumnType("timestamp with time zone")
 10399                        .HasColumnName("created_at")
 10400                        .HasDefaultValueSql("now()");
 10401
 10402                    b.Property<string>("Email")
 10403                        .IsRequired()
 10404                        .HasMaxLength(256)
 10405                        .HasColumnType("character varying(256)")
 10406                        .HasColumnName("email");
 10407
 10408                    b.Property<DateTime>("ExpiresAt")
 10409                        .HasColumnType("timestamp with time zone")
 10410                        .HasColumnName("expires_at");
 10411
 10412                    b.Property<int>("FailedAttempts")
 10413                        .ValueGeneratedOnAdd()
 10414                        .HasColumnType("integer")
 10415                        .HasDefaultValue(0)
 10416                        .HasColumnName("failed_attempts");
 10417
 10418                    b.Property<string>("Name")
 10419                        .IsRequired()
 10420                        .HasMaxLength(200)
 10421                        .HasColumnType("character varying(200)")
 10422                        .HasColumnName("name");
 10423
 10424                    b.Property<byte[]>("PasswordHash")
 10425                        .IsRequired()
 10426                        .HasColumnType("bytea")
 10427                        .HasColumnName("password_hash");
 10428
 10429                    b.Property<byte[]>("Salt")
 10430                        .IsRequired()
 10431                        .HasColumnType("bytea")
 10432                        .HasColumnName("salt");
 10433
 10434                    b.Property<long>("ScopeId")
 10435                        .HasColumnType("bigint")
 10436                        .HasColumnName("scope_id");
 10437
 10438                    b.Property<string>("TokenHash")
 10439                        .IsRequired()
 10440                        .HasMaxLength(64)
 10441                        .HasColumnType("character varying(64)")
 10442                        .HasColumnName("token_hash");
 10443
 10444                    b.HasKey("Id")
 10445                        .HasName("pk_pending_registration");
 10446
 10447                    b.HasIndex("ScopeId")
 10448                        .HasDatabaseName("ix_pending_registration_scope_id");
 10449
 10450                    b.HasIndex("TokenHash")
 10451                        .IsUnique()
 10452                        .HasDatabaseName("ix_pending_registration_token_hash");
 10453
 10454                    b.ToTable("pending_registration", "heimdall");
 20455                });
 456
 10457            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 10458                {
 10459                    b.Property<long>("Id")
 10460                        .ValueGeneratedOnAdd()
 10461                        .HasColumnType("bigint")
 10462                        .HasColumnName("id")
 10463                        .HasColumnOrder(1);
 10464
 10465                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10466
 10467                    b.Property<DateTime?>("AnonymisedAt")
 10468                        .HasColumnType("timestamp with time zone")
 10469                        .HasColumnName("anonymised_at");
 10470
 10471                    b.Property<DateTime?>("BasisRecordedAt")
 10472                        .HasColumnType("timestamp with time zone")
 10473                        .HasColumnName("basis_recorded_at");
 10474
 10475                    b.Property<DateTime>("CreatedAt")
 10476                        .ValueGeneratedOnAdd()
 10477                        .HasColumnType("timestamp with time zone")
 10478                        .HasColumnName("created_at")
 10479                        .HasDefaultValueSql("now()");
 10480
 10481                    b.Property<DateTime?>("DeletedAt")
 10482                        .HasColumnType("timestamp with time zone")
 10483                        .HasColumnName("deleted_at");
 10484
 10485                    b.Property<int?>("DeletionKind")
 10486                        .HasColumnType("integer")
 10487                        .HasColumnName("deletion_kind");
 10488
 10489                    b.Property<string>("Email")
 10490                        .IsRequired()
 10491                        .HasMaxLength(256)
 10492                        .HasColumnType("character varying(256)")
 10493                        .HasColumnName("email");
 10494
 10495                    b.Property<bool>("EmailVerified")
 10496                        .ValueGeneratedOnAdd()
 10497                        .HasColumnType("boolean")
 10498                        .HasDefaultValue(false)
 10499                        .HasColumnName("email_verified");
 10500
 10501                    b.Property<string>("ErasureBlockedReason")
 10502                        .HasMaxLength(500)
 10503                        .HasColumnType("character varying(500)")
 10504                        .HasColumnName("erasure_blocked_reason");
 10505
 10506                    b.Property<DateTime?>("ErasureDueAt")
 10507                        .HasColumnType("timestamp with time zone")
 10508                        .HasColumnName("erasure_due_at");
 10509
 10510                    b.Property<DateTime?>("ErasureRequestedAt")
 10511                        .HasColumnType("timestamp with time zone")
 10512                        .HasColumnName("erasure_requested_at");
 10513
 10514                    b.Property<int>("FailedLoginAttempts")
 10515                        .HasColumnType("integer")
 10516                        .HasColumnName("failed_login_attempts");
 10517
 10518                    b.Property<bool>("IsDeleted")
 10519                        .ValueGeneratedOnAdd()
 10520                        .HasColumnType("boolean")
 10521                        .HasDefaultValue(false)
 10522                        .HasColumnName("is_deleted");
 10523
 10524                    b.Property<int>("LegalBasis")
 10525                        .ValueGeneratedOnAdd()
 10526                        .HasColumnType("integer")
 10527                        .HasDefaultValue(0)
 10528                        .HasColumnName("legal_basis");
 10529
 10530                    b.Property<DateTime?>("LockedOutUntil")
 10531                        .HasColumnType("timestamp with time zone")
 10532                        .HasColumnName("locked_out_until");
 10533
 10534                    b.Property<string>("Name")
 10535                        .IsRequired()
 10536                        .HasMaxLength(200)
 10537                        .HasColumnType("character varying(200)")
 10538                        .HasColumnName("name");
 10539
 10540                    b.Property<byte[]>("PasswordHash")
 10541                        .IsRequired()
 10542                        .HasColumnType("bytea")
 10543                        .HasColumnName("password_hash");
 10544
 10545                    b.Property<string>("PrivacyNoticeVersion")
 10546                        .HasMaxLength(50)
 10547                        .HasColumnType("character varying(50)")
 10548                        .HasColumnName("privacy_notice_version");
 10549
 10550                    b.Property<DateTime?>("ProcessingRestrictedAt")
 10551                        .HasColumnType("timestamp with time zone")
 10552                        .HasColumnName("processing_restricted_at");
 10553
 10554                    b.Property<Guid>("PublicId")
 10555                        .HasColumnType("uuid")
 10556                        .HasColumnName("public_id");
 10557
 10558                    b.Property<int?>("RestrictionGround")
 10559                        .HasColumnType("integer")
 10560                        .HasColumnName("restriction_ground");
 10561
 10562                    b.Property<DateTime?>("RestrictionLiftNotifiedAt")
 10563                        .HasColumnType("timestamp with time zone")
 10564                        .HasColumnName("restriction_lift_notified_at");
 10565
 10566                    b.Property<long>("RoleId")
 10567                        .HasColumnType("bigint")
 10568                        .HasColumnName("role_id");
 10569
 10570                    b.Property<byte[]>("Salt")
 10571                        .IsRequired()
 10572                        .HasColumnType("bytea")
 10573                        .HasColumnName("salt");
 10574
 10575                    b.Property<long?>("ScopeId")
 10576                        .HasColumnType("bigint")
 10577                        .HasColumnName("scope_id");
 10578
 10579                    b.Property<DateTime>("UpdatedAt")
 10580                        .ValueGeneratedOnAdd()
 10581                        .HasColumnType("timestamp with time zone")
 10582                        .HasColumnName("updated_at")
 10583                        .HasDefaultValueSql("now()");
 10584
 10585                    b.HasKey("Id")
 10586                        .HasName("pk_person");
 10587
 10588                    b.HasIndex("DeletedAt")
 10589                        .HasDatabaseName("ix_person_deleted_at")
 10590                        .HasFilter("is_deleted = true AND anonymised_at IS NULL");
 10591
 10592                    b.HasIndex("Email")
 10593                        .HasDatabaseName("ix_person_email");
 10594
 10595                    b.HasIndex("ProcessingRestrictedAt")
 10596                        .HasDatabaseName("ix_person_processing_restricted_at")
 10597                        .HasFilter("processing_restricted_at IS NOT NULL");
 10598
 10599                    b.HasIndex("PublicId")
 10600                        .IsUnique()
 10601                        .HasDatabaseName("ix_person_public_id");
 10602
 10603                    b.HasIndex("RoleId")
 10604                        .HasDatabaseName("ix_person_role_id");
 10605
 10606                    b.ToTable("person", "heimdall");
 20607                });
 608
 10609            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Role", b =>
 10610                {
 10611                    b.Property<long>("Id")
 10612                        .HasColumnType("bigint")
 10613                        .HasColumnName("id")
 10614                        .HasColumnOrder(1);
 10615
 10616                    b.Property<string>("Description")
 10617                        .HasMaxLength(500)
 10618                        .HasColumnType("character varying(500)")
 10619                        .HasColumnName("description");
 10620
 10621                    b.Property<string>("Name")
 10622                        .IsRequired()
 10623                        .HasMaxLength(200)
 10624                        .HasColumnType("character varying(200)")
 10625                        .HasColumnName("name");
 10626
 10627                    b.Property<Guid>("PublicId")
 10628                        .HasColumnType("uuid")
 10629                        .HasColumnName("public_id");
 10630
 10631                    b.HasKey("Id")
 10632                        .HasName("pk_role");
 10633
 10634                    b.HasIndex("Name")
 10635                        .IsUnique()
 10636                        .HasDatabaseName("ix_role_name");
 10637
 10638                    b.HasIndex("PublicId")
 10639                        .IsUnique()
 10640                        .HasDatabaseName("ix_role_public_id");
 10641
 10642                    b.ToTable("role", "heimdall");
 20643                });
 644
 10645            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Scope", b =>
 10646                {
 10647                    b.Property<long>("Id")
 10648                        .ValueGeneratedOnAdd()
 10649                        .HasColumnType("bigint")
 10650                        .HasColumnName("id")
 10651                        .HasColumnOrder(1);
 10652
 10653                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10654
 10655                    b.Property<DateTime>("CreatedAt")
 10656                        .ValueGeneratedOnAdd()
 10657                        .HasColumnType("timestamp with time zone")
 10658                        .HasColumnName("created_at")
 10659                        .HasDefaultValueSql("now()");
 10660
 10661                    b.Property<int?>("DefaultLegalBasis")
 10662                        .HasColumnType("integer")
 10663                        .HasColumnName("default_legal_basis");
 10664
 10665                    b.Property<string>("Description")
 10666                        .HasMaxLength(500)
 10667                        .HasColumnType("character varying(500)")
 10668                        .HasColumnName("description");
 10669
 10670                    b.Property<string>("EmailVerificationUrl")
 10671                        .HasMaxLength(2048)
 10672                        .HasColumnType("character varying(2048)")
 10673                        .HasColumnName("email_verification_url");
 10674
 10675                    b.Property<bool>("GoogleSignInEnabled")
 10676                        .ValueGeneratedOnAdd()
 10677                        .HasColumnType("boolean")
 10678                        .HasDefaultValue(false)
 10679                        .HasColumnName("google_sign_in_enabled");
 10680
 10681                    b.Property<bool>("IsDeleted")
 10682                        .ValueGeneratedOnAdd()
 10683                        .HasColumnType("boolean")
 10684                        .HasDefaultValue(false)
 10685                        .HasColumnName("is_deleted");
 10686
 10687                    b.Property<string>("Name")
 10688                        .IsRequired()
 10689                        .HasMaxLength(200)
 10690                        .HasColumnType("character varying(200)")
 10691                        .HasColumnName("name");
 10692
 10693                    b.Property<string>("PasswordResetUrl")
 10694                        .HasMaxLength(2048)
 10695                        .HasColumnType("character varying(2048)")
 10696                        .HasColumnName("password_reset_url");
 10697
 10698                    b.Property<string>("PrivacyNoticeUri")
 10699                        .HasMaxLength(2048)
 10700                        .HasColumnType("character varying(2048)")
 10701                        .HasColumnName("privacy_notice_uri");
 10702
 10703                    b.Property<Guid>("PublicId")
 10704                        .HasColumnType("uuid")
 10705                        .HasColumnName("public_id");
 10706
 10707                    b.Property<bool>("SelfRegistrationEnabled")
 10708                        .ValueGeneratedOnAdd()
 10709                        .HasColumnType("boolean")
 10710                        .HasDefaultValue(false)
 10711                        .HasColumnName("self_registration_enabled");
 10712
 10713                    b.Property<DateTime>("UpdatedAt")
 10714                        .ValueGeneratedOnAdd()
 10715                        .HasColumnType("timestamp with time zone")
 10716                        .HasColumnName("updated_at")
 10717                        .HasDefaultValueSql("now()");
 10718
 10719                    b.HasKey("Id")
 10720                        .HasName("pk_scope");
 10721
 10722                    b.HasIndex("Name")
 10723                        .IsUnique()
 10724                        .HasDatabaseName("ix_scope_name");
 10725
 10726                    b.HasIndex("PublicId")
 10727                        .IsUnique()
 10728                        .HasDatabaseName("ix_scope_public_id");
 10729
 10730                    b.ToTable("scope", "heimdall");
 20731                });
 732
 10733            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwner", b =>
 10734                {
 10735                    b.Property<long>("ScopeId")
 10736                        .HasColumnType("bigint")
 10737                        .HasColumnName("scope_id");
 10738
 10739                    b.Property<long>("PersonId")
 10740                        .HasColumnType("bigint")
 10741                        .HasColumnName("person_id");
 10742
 10743                    b.HasKey("ScopeId", "PersonId")
 10744                        .HasName("pk_scope_owner");
 10745
 10746                    b.HasIndex("PersonId")
 10747                        .HasDatabaseName("ix_scope_owner_person_id");
 10748
 10749                    b.ToTable("scope_owner", "heimdall");
 20750                });
 751
 10752            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopePermission", b =>
 10753                {
 10754                    b.Property<long>("Id")
 10755                        .ValueGeneratedOnAdd()
 10756                        .HasColumnType("bigint")
 10757                        .HasColumnName("id")
 10758                        .HasColumnOrder(1);
 10759
 10760                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10761
 10762                    b.Property<DateTime>("CreatedAt")
 10763                        .ValueGeneratedOnAdd()
 10764                        .HasColumnType("timestamp with time zone")
 10765                        .HasColumnName("created_at")
 10766                        .HasDefaultValueSql("now()");
 10767
 10768                    b.Property<string>("Description")
 10769                        .HasMaxLength(500)
 10770                        .HasColumnType("character varying(500)")
 10771                        .HasColumnName("description");
 10772
 10773                    b.Property<bool>("IncludeAsJwtClaim")
 10774                        .ValueGeneratedOnAdd()
 10775                        .HasColumnType("boolean")
 10776                        .HasDefaultValue(false)
 10777                        .HasColumnName("include_as_jwt_claim");
 10778
 10779                    b.Property<bool>("IsDeleted")
 10780                        .ValueGeneratedOnAdd()
 10781                        .HasColumnType("boolean")
 10782                        .HasDefaultValue(false)
 10783                        .HasColumnName("is_deleted");
 10784
 10785                    b.Property<string>("Name")
 10786                        .IsRequired()
 10787                        .HasMaxLength(200)
 10788                        .HasColumnType("character varying(200)")
 10789                        .HasColumnName("name");
 10790
 10791                    b.Property<Guid>("PublicId")
 10792                        .HasColumnType("uuid")
 10793                        .HasColumnName("public_id");
 10794
 10795                    b.Property<long>("ScopeId")
 10796                        .HasColumnType("bigint")
 10797                        .HasColumnName("scope_id");
 10798
 10799                    b.Property<DateTime>("UpdatedAt")
 10800                        .ValueGeneratedOnAdd()
 10801                        .HasColumnType("timestamp with time zone")
 10802                        .HasColumnName("updated_at")
 10803                        .HasDefaultValueSql("now()");
 10804
 10805                    b.HasKey("Id")
 10806                        .HasName("pk_scope_permission");
 10807
 10808                    b.HasIndex("PublicId")
 10809                        .IsUnique()
 10810                        .HasDatabaseName("ix_scope_permission_public_id");
 10811
 10812                    b.HasIndex("ScopeId")
 10813                        .HasDatabaseName("ix_scope_permission_scope_id");
 10814
 10815                    b.ToTable("scope_permission", "heimdall");
 20816                });
 817
 10818            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeUser", b =>
 10819                {
 10820                    b.Property<long>("ScopeId")
 10821                        .HasColumnType("bigint")
 10822                        .HasColumnName("scope_id");
 10823
 10824                    b.Property<long>("PersonId")
 10825                        .HasColumnType("bigint")
 10826                        .HasColumnName("person_id");
 10827
 10828                    b.HasKey("ScopeId", "PersonId")
 10829                        .HasName("pk_scope_user");
 10830
 10831                    b.HasIndex("PersonId")
 10832                        .IsUnique()
 10833                        .HasDatabaseName("ix_scope_user_person_id");
 10834
 10835                    b.ToTable("scope_user", "heimdall");
 20836                });
 837
 10838            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 10839                {
 10840                    b.Property<long>("Id")
 10841                        .ValueGeneratedOnAdd()
 10842                        .HasColumnType("bigint")
 10843                        .HasColumnName("id")
 10844                        .HasColumnOrder(1);
 10845
 10846                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10847
 10848                    b.Property<bool>("AppEnabled")
 10849                        .ValueGeneratedOnAdd()
 10850                        .HasColumnType("boolean")
 10851                        .HasDefaultValue(false)
 10852                        .HasColumnName("app_enabled");
 10853
 10854                    b.Property<int>("ChallengeAttempts")
 10855                        .ValueGeneratedOnAdd()
 10856                        .HasColumnType("integer")
 10857                        .HasDefaultValue(0)
 10858                        .HasColumnName("challenge_attempts");
 10859
 10860                    b.Property<Guid?>("ChallengeId")
 10861                        .HasColumnType("uuid")
 10862                        .HasColumnName("challenge_id");
 10863
 10864                    b.Property<DateTime>("CreatedAt")
 10865                        .ValueGeneratedOnAdd()
 10866                        .HasColumnType("timestamp with time zone")
 10867                        .HasColumnName("created_at")
 10868                        .HasDefaultValueSql("now()");
 10869
 10870                    b.Property<int>("EmailCodeReissueCount")
 10871                        .ValueGeneratedOnAdd()
 10872                        .HasColumnType("integer")
 10873                        .HasDefaultValue(0)
 10874                        .HasColumnName("email_code_reissue_count");
 10875
 10876                    b.Property<bool>("EmailEnabled")
 10877                        .ValueGeneratedOnAdd()
 10878                        .HasColumnType("boolean")
 10879                        .HasDefaultValue(false)
 10880                        .HasColumnName("email_enabled");
 10881
 10882                    b.Property<bool>("IsActive")
 10883                        .ValueGeneratedOnAdd()
 10884                        .HasColumnType("boolean")
 10885                        .HasDefaultValue(false)
 10886                        .HasColumnName("is_active");
 10887
 10888                    b.Property<long?>("LastTotpTimeStepUsed")
 10889                        .HasColumnType("bigint")
 10890                        .HasColumnName("last_totp_time_step_used");
 10891
 10892                    b.Property<long>("PersonId")
 10893                        .HasColumnType("bigint")
 10894                        .HasColumnName("person_id");
 10895
 10896                    b.Property<byte[]>("TotpSecretEncrypted")
 10897                        .HasColumnType("bytea")
 10898                        .HasColumnName("totp_secret_encrypted");
 10899
 10900                    b.Property<DateTime>("UpdatedAt")
 10901                        .ValueGeneratedOnAdd()
 10902                        .HasColumnType("timestamp with time zone")
 10903                        .HasColumnName("updated_at")
 10904                        .HasDefaultValueSql("now()");
 10905
 10906                    b.HasKey("Id")
 10907                        .HasName("pk_two_factor_auth");
 10908
 10909                    b.HasIndex("PersonId")
 10910                        .IsUnique()
 10911                        .HasDatabaseName("ix_two_factor_auth_person_id");
 10912
 10913                    b.ToTable("two_factor_auth", "heimdall");
 20914                });
 915
 10916            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorEmailCode", b =>
 10917                {
 10918                    b.Property<long>("Id")
 10919                        .ValueGeneratedOnAdd()
 10920                        .HasColumnType("bigint")
 10921                        .HasColumnName("id")
 10922                        .HasColumnOrder(1);
 10923
 10924                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10925
 10926                    b.Property<byte[]>("CodeHash")
 10927                        .IsRequired()
 10928                        .HasColumnType("bytea")
 10929                        .HasColumnName("code_hash");
 10930
 10931                    b.Property<DateTime>("CreatedAt")
 10932                        .ValueGeneratedOnAdd()
 10933                        .HasColumnType("timestamp with time zone")
 10934                        .HasColumnName("created_at")
 10935                        .HasDefaultValueSql("now()");
 10936
 10937                    b.Property<DateTime>("ExpiresAt")
 10938                        .HasColumnType("timestamp with time zone")
 10939                        .HasColumnName("expires_at");
 10940
 10941                    b.Property<int>("FailedAttempts")
 10942                        .HasColumnType("integer")
 10943                        .HasColumnName("failed_attempts");
 10944
 10945                    b.Property<byte[]>("Salt")
 10946                        .IsRequired()
 10947                        .HasColumnType("bytea")
 10948                        .HasColumnName("salt");
 10949
 10950                    b.Property<long>("TwoFactorAuthId")
 10951                        .HasColumnType("bigint")
 10952                        .HasColumnName("two_factor_auth_id");
 10953
 10954                    b.Property<bool>("Used")
 10955                        .ValueGeneratedOnAdd()
 10956                        .HasColumnType("boolean")
 10957                        .HasDefaultValue(false)
 10958                        .HasColumnName("used");
 10959
 10960                    b.HasKey("Id")
 10961                        .HasName("pk_two_factor_email_code");
 10962
 10963                    b.HasIndex("TwoFactorAuthId")
 10964                        .HasDatabaseName("ix_two_factor_email_code_two_factor_auth_id");
 10965
 10966                    b.ToTable("two_factor_email_code", "heimdall");
 20967                });
 968
 10969            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorRecoveryCode", b =>
 10970                {
 10971                    b.Property<long>("Id")
 10972                        .ValueGeneratedOnAdd()
 10973                        .HasColumnType("bigint")
 10974                        .HasColumnName("id")
 10975                        .HasColumnOrder(1);
 10976
 10977                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10978
 10979                    b.Property<byte[]>("CodeHash")
 10980                        .IsRequired()
 10981                        .HasColumnType("bytea")
 10982                        .HasColumnName("code_hash");
 10983
 10984                    b.Property<DateTime>("CreatedAt")
 10985                        .ValueGeneratedOnAdd()
 10986                        .HasColumnType("timestamp with time zone")
 10987                        .HasColumnName("created_at")
 10988                        .HasDefaultValueSql("now()");
 10989
 10990                    b.Property<long>("TwoFactorAuthId")
 10991                        .HasColumnType("bigint")
 10992                        .HasColumnName("two_factor_auth_id");
 10993
 10994                    b.Property<bool>("Used")
 10995                        .ValueGeneratedOnAdd()
 10996                        .HasColumnType("boolean")
 10997                        .HasDefaultValue(false)
 10998                        .HasColumnName("used");
 10999
 101000                    b.Property<DateTime?>("UsedAt")
 101001                        .HasColumnType("timestamp with time zone")
 101002                        .HasColumnName("used_at");
 101003
 101004                    b.HasKey("Id")
 101005                        .HasName("pk_two_factor_recovery_code");
 101006
 101007                    b.HasIndex("TwoFactorAuthId")
 101008                        .HasDatabaseName("ix_two_factor_recovery_code_two_factor_auth_id");
 101009
 101010                    b.ToTable("two_factor_recovery_code", "heimdall");
 201011                });
 1012
 101013            modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b =>
 101014                {
 101015                    b.Property<int>("Id")
 101016                        .ValueGeneratedOnAdd()
 101017                        .HasColumnType("integer")
 101018                        .HasColumnName("id");
 101019
 101020                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 101021
 101022                    b.Property<string>("FriendlyName")
 101023                        .HasColumnType("text")
 101024                        .HasColumnName("friendly_name");
 101025
 101026                    b.Property<string>("Xml")
 101027                        .HasColumnType("text")
 101028                        .HasColumnName("xml");
 101029
 101030                    b.HasKey("Id")
 101031                        .HasName("pk_data_protection_keys");
 101032
 101033                    b.ToTable("data_protection_keys", "heimdall");
 201034                });
 1035
 101036            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 101037                {
 101038                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Owner")
 101039                        .WithMany("OwnedApplications")
 101040                        .HasForeignKey("OwnerId")
 101041                        .OnDelete(DeleteBehavior.Cascade)
 101042                        .IsRequired()
 101043                        .HasConstraintName("fk_application_person_owner_id");
 101044
 101045                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101046                        .WithMany("Applications")
 101047                        .HasForeignKey("ScopeId")
 101048                        .OnDelete(DeleteBehavior.Cascade)
 101049                        .IsRequired()
 101050                        .HasConstraintName("fk_application_scope_scope_id");
 101051
 101052                    b.Navigation("Owner");
 101053
 101054                    b.Navigation("Scope");
 201055                });
 1056
 101057            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.EmailVerificationToken", b =>
 101058                {
 101059                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101060                        .WithMany("EmailVerificationTokens")
 101061                        .HasForeignKey("PersonId")
 101062                        .OnDelete(DeleteBehavior.Cascade)
 101063                        .IsRequired()
 101064                        .HasConstraintName("fk_email_verification_token_person_person_id");
 101065
 101066                    b.Navigation("Person");
 201067                });
 1068
 101069            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.GoogleUser", b =>
 101070                {
 101071                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101072                        .WithMany("GoogleUsers")
 101073                        .HasForeignKey("ScopeId")
 101074                        .OnDelete(DeleteBehavior.Cascade)
 101075                        .IsRequired()
 101076                        .HasConstraintName("fk_google_user_scope_scope_id");
 101077
 101078                    b.Navigation("Scope");
 201079                });
 1080
 101081            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PasswordResetToken", b =>
 101082                {
 101083                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101084                        .WithMany("PasswordResetTokens")
 101085                        .HasForeignKey("PersonId")
 101086                        .OnDelete(DeleteBehavior.Cascade)
 101087                        .IsRequired()
 101088                        .HasConstraintName("fk_password_reset_token_person_person_id");
 101089
 101090                    b.Navigation("Person");
 201091                });
 1092
 101093            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PendingRegistration", b =>
 101094                {
 101095                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101096                        .WithMany()
 101097                        .HasForeignKey("ScopeId")
 101098                        .OnDelete(DeleteBehavior.Cascade)
 101099                        .IsRequired()
 101100                        .HasConstraintName("fk_pending_registration_scope_scope_id");
 101101
 101102                    b.Navigation("Scope");
 201103                });
 1104
 101105            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 101106                {
 101107                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Role", "Role")
 101108                        .WithMany("Persons")
 101109                        .HasForeignKey("RoleId")
 101110                        .OnDelete(DeleteBehavior.Restrict)
 101111                        .IsRequired()
 101112                        .HasConstraintName("fk_person_roles_role_id");
 101113
 101114                    b.Navigation("Role");
 201115                });
 1116
 101117            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwner", b =>
 101118                {
 101119                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101120                        .WithMany("ScopeOwnerships")
 101121                        .HasForeignKey("PersonId")
 101122                        .OnDelete(DeleteBehavior.Cascade)
 101123                        .IsRequired()
 101124                        .HasConstraintName("fk_scope_owner_person_person_id");
 101125
 101126                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101127                        .WithMany("Owners")
 101128                        .HasForeignKey("ScopeId")
 101129                        .OnDelete(DeleteBehavior.Cascade)
 101130                        .IsRequired()
 101131                        .HasConstraintName("fk_scope_owner_scope_scope_id");
 101132
 101133                    b.Navigation("Person");
 101134
 101135                    b.Navigation("Scope");
 201136                });
 1137
 101138            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopePermission", b =>
 101139                {
 101140                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101141                        .WithMany("ScopePermissions")
 101142                        .HasForeignKey("ScopeId")
 101143                        .OnDelete(DeleteBehavior.Cascade)
 101144                        .IsRequired()
 101145                        .HasConstraintName("fk_scope_permission_scope_scope_id");
 101146
 101147                    b.Navigation("Scope");
 201148                });
 1149
 101150            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeUser", b =>
 101151                {
 101152                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101153                        .WithOne("ScopeMembership")
 101154                        .HasForeignKey("ArturRios.Heimdall.Domain.Entities.ScopeUser", "PersonId")
 101155                        .OnDelete(DeleteBehavior.Cascade)
 101156                        .IsRequired()
 101157                        .HasConstraintName("fk_scope_user_person_person_id");
 101158
 101159                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101160                        .WithMany("Users")
 101161                        .HasForeignKey("ScopeId")
 101162                        .OnDelete(DeleteBehavior.Cascade)
 101163                        .IsRequired()
 101164                        .HasConstraintName("fk_scope_user_scope_scope_id");
 101165
 101166                    b.Navigation("Person");
 101167
 101168                    b.Navigation("Scope");
 201169                });
 1170
 101171            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 101172                {
 101173                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101174                        .WithOne("TwoFactorAuth")
 101175                        .HasForeignKey("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "PersonId")
 101176                        .OnDelete(DeleteBehavior.Cascade)
 101177                        .IsRequired()
 101178                        .HasConstraintName("fk_two_factor_auth_person_person_id");
 101179
 101180                    b.Navigation("Person");
 201181                });
 1182
 101183            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorEmailCode", b =>
 101184                {
 101185                    b.HasOne("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "TwoFactorAuth")
 101186                        .WithMany("EmailCodes")
 101187                        .HasForeignKey("TwoFactorAuthId")
 101188                        .OnDelete(DeleteBehavior.Cascade)
 101189                        .IsRequired()
 101190                        .HasConstraintName("fk_two_factor_email_code_two_factor_auth_two_factor_auth_id");
 101191
 101192                    b.Navigation("TwoFactorAuth");
 201193                });
 1194
 101195            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorRecoveryCode", b =>
 101196                {
 101197                    b.HasOne("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "TwoFactorAuth")
 101198                        .WithMany("RecoveryCodes")
 101199                        .HasForeignKey("TwoFactorAuthId")
 101200                        .OnDelete(DeleteBehavior.Cascade)
 101201                        .IsRequired()
 101202                        .HasConstraintName("fk_two_factor_recovery_code_two_factor_auth_two_factor_auth_id");
 101203
 101204                    b.Navigation("TwoFactorAuth");
 201205                });
 1206
 101207            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 101208                {
 101209                    b.Navigation("EmailVerificationTokens");
 101210
 101211                    b.Navigation("OwnedApplications");
 101212
 101213                    b.Navigation("PasswordResetTokens");
 101214
 101215                    b.Navigation("ScopeMembership");
 101216
 101217                    b.Navigation("ScopeOwnerships");
 101218
 101219                    b.Navigation("TwoFactorAuth");
 201220                });
 1221
 101222            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Role", b =>
 101223                {
 101224                    b.Navigation("Persons");
 201225                });
 1226
 101227            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Scope", b =>
 101228                {
 101229                    b.Navigation("Applications");
 101230
 101231                    b.Navigation("GoogleUsers");
 101232
 101233                    b.Navigation("Owners");
 101234
 101235                    b.Navigation("ScopePermissions");
 101236
 101237                    b.Navigation("Users");
 201238                });
 1239
 101240            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 101241                {
 101242                    b.Navigation("EmailCodes");
 101243
 101244                    b.Navigation("RecoveryCodes");
 201245                });
 1246#pragma warning restore 612, 618
 101247        }
 1248    }
 1249}