< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Data.Migrations.AppDbContextModelSnapshot
Assembly: ArturRios.Heimdall.Data
File(s): /home/ci/agent/workspace/heimdall-api-docs_main/app/src/Infrastructure/ArturRios.Heimdall.Data/Migrations/AppDbContextModelSnapshot.cs
Line coverage
100%
Covered lines: 1496
Uncovered lines: 0
Coverable lines: 1496
Total lines: 1558
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 1
Fully covered methods: 1
Total methods: 1
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
BuildModel(...)100%11100%

File(s)

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

#LineLine coverage
 1// <auto-generated />
 2using System;
 3using ArturRios.Heimdall.Data.Configuration;
 4using Microsoft.EntityFrameworkCore;
 5using Microsoft.EntityFrameworkCore.Infrastructure;
 6using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 7using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 8
 9#nullable disable
 10
 11namespace ArturRios.Heimdall.Data.Migrations
 12{
 13    [DbContext(typeof(AppDbContext))]
 14    partial class AppDbContextModelSnapshot : ModelSnapshot
 15    {
 16        protected override void BuildModel(ModelBuilder modelBuilder)
 17        {
 18#pragma warning disable 612, 618
 1019            modelBuilder
 1020                .HasDefaultSchema("heimdall")
 1021                .HasAnnotation("ProductVersion", "10.0.13")
 1022                .HasAnnotation("Relational:MaxIdentifierLength", 63);
 23
 1024            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 25
 1026            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 1027                {
 1028                    b.Property<long>("Id")
 1029                        .ValueGeneratedOnAdd()
 1030                        .HasColumnType("bigint")
 1031                        .HasColumnName("id")
 1032                        .HasColumnOrder(1);
 1033
 1034                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 1035
 1036                    b.Property<DateTime>("CreatedAt")
 1037                        .ValueGeneratedOnAdd()
 1038                        .HasColumnType("timestamp with time zone")
 1039                        .HasColumnName("created_at")
 1040                        .HasDefaultValueSql("now()");
 1041
 1042                    b.Property<bool>("IsDeleted")
 1043                        .ValueGeneratedOnAdd()
 1044                        .HasColumnType("boolean")
 1045                        .HasDefaultValue(false)
 1046                        .HasColumnName("is_deleted");
 1047
 1048                    b.Property<string>("Name")
 1049                        .IsRequired()
 1050                        .HasMaxLength(200)
 1051                        .HasColumnType("character varying(200)")
 1052                        .HasColumnName("name");
 1053
 1054                    b.Property<long>("OwnerId")
 1055                        .HasColumnType("bigint")
 1056                        .HasColumnName("owner_id");
 1057
 1058                    b.Property<Guid>("PublicId")
 1059                        .HasColumnType("uuid")
 1060                        .HasColumnName("public_id");
 1061
 1062                    b.Property<long>("ScopeId")
 1063                        .HasColumnType("bigint")
 1064                        .HasColumnName("scope_id");
 1065
 1066                    b.Property<DateTime>("UpdatedAt")
 1067                        .ValueGeneratedOnAdd()
 1068                        .HasColumnType("timestamp with time zone")
 1069                        .HasColumnName("updated_at")
 1070                        .HasDefaultValueSql("now()");
 1071
 1072                    b.HasKey("Id")
 1073                        .HasName("pk_application");
 1074
 1075                    b.HasIndex("OwnerId")
 1076                        .HasDatabaseName("ix_application_owner_id");
 1077
 1078                    b.HasIndex("PublicId")
 1079                        .IsUnique()
 1080                        .HasDatabaseName("ix_application_public_id");
 1081
 1082                    b.HasIndex("ScopeId")
 1083                        .HasDatabaseName("ix_application_scope_id");
 1084
 1085                    b.ToTable("application", "heimdall");
 2086                });
 87
 1088            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ApplicationCredential", b =>
 1089                {
 1090                    b.Property<long>("Id")
 1091                        .ValueGeneratedOnAdd()
 1092                        .HasColumnType("bigint")
 1093                        .HasColumnName("id")
 1094                        .HasColumnOrder(1);
 1095
 1096                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 1097
 1098                    b.Property<long>("ApplicationId")
 1099                        .HasColumnType("bigint")
 10100                        .HasColumnName("application_id");
 10101
 10102                    b.Property<DateTime>("CreatedAt")
 10103                        .HasColumnType("timestamp with time zone")
 10104                        .HasColumnName("created_at");
 10105
 10106                    b.Property<DateTime?>("ExpiresAt")
 10107                        .HasColumnType("timestamp with time zone")
 10108                        .HasColumnName("expires_at");
 10109
 10110                    b.Property<DateTime?>("LastUsedAt")
 10111                        .HasColumnType("timestamp with time zone")
 10112                        .HasColumnName("last_used_at");
 10113
 10114                    b.Property<Guid>("PublicId")
 10115                        .HasColumnType("uuid")
 10116                        .HasColumnName("public_id");
 10117
 10118                    b.Property<DateTime?>("RevokedAt")
 10119                        .HasColumnType("timestamp with time zone")
 10120                        .HasColumnName("revoked_at");
 10121
 10122                    b.Property<string>("SecretHash")
 10123                        .IsRequired()
 10124                        .HasMaxLength(64)
 10125                        .HasColumnType("character varying(64)")
 10126                        .HasColumnName("secret_hash");
 10127
 10128                    b.HasKey("Id")
 10129                        .HasName("pk_application_credential");
 10130
 10131                    b.HasIndex("ApplicationId")
 10132                        .HasDatabaseName("ix_application_credential_application_id");
 10133
 10134                    b.HasIndex("PublicId")
 10135                        .IsUnique()
 10136                        .HasDatabaseName("ix_application_credential_public_id");
 10137
 10138                    b.HasIndex("SecretHash")
 10139                        .IsUnique()
 10140                        .HasDatabaseName("ix_application_credential_secret_hash");
 10141
 10142                    b.ToTable("application_credential", "heimdall");
 20143                });
 144
 10145            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.AttemptNoticeBudget", b =>
 10146                {
 10147                    b.Property<long>("Id")
 10148                        .ValueGeneratedOnAdd()
 10149                        .HasColumnType("bigint")
 10150                        .HasColumnName("id")
 10151                        .HasColumnOrder(1);
 10152
 10153                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10154
 10155                    b.Property<string>("AddressHash")
 10156                        .IsRequired()
 10157                        .HasMaxLength(64)
 10158                        .HasColumnType("character varying(64)")
 10159                        .HasColumnName("address_hash");
 10160
 10161                    b.Property<int>("NoticesSent")
 10162                        .HasColumnType("integer")
 10163                        .HasColumnName("notices_sent");
 10164
 10165                    b.Property<DateTime>("WindowEndsAt")
 10166                        .HasColumnType("timestamp with time zone")
 10167                        .HasColumnName("window_ends_at");
 10168
 10169                    b.HasKey("Id")
 10170                        .HasName("pk_attempt_notice_budget");
 10171
 10172                    b.HasIndex("AddressHash")
 10173                        .IsUnique()
 10174                        .HasDatabaseName("ix_attempt_notice_budget_address_hash");
 10175
 10176                    b.HasIndex("WindowEndsAt")
 10177                        .HasDatabaseName("ix_attempt_notice_budget_window_ends_at");
 10178
 10179                    b.ToTable("attempt_notice_budget", "heimdall");
 20180                });
 181
 10182            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.AuditLog", b =>
 10183                {
 10184                    b.Property<long>("Id")
 10185                        .ValueGeneratedOnAdd()
 10186                        .HasColumnType("bigint")
 10187                        .HasColumnName("id")
 10188                        .HasColumnOrder(1);
 10189
 10190                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10191
 10192                    b.Property<string>("Action")
 10193                        .IsRequired()
 10194                        .HasMaxLength(200)
 10195                        .HasColumnType("character varying(200)")
 10196                        .HasColumnName("action");
 10197
 10198                    b.Property<Guid?>("ActorPersonId")
 10199                        .HasColumnType("uuid")
 10200                        .HasColumnName("actor_person_id");
 10201
 10202                    b.Property<int?>("ActorRole")
 10203                        .HasColumnType("integer")
 10204                        .HasColumnName("actor_role");
 10205
 10206                    b.Property<DateTime>("CreatedAt")
 10207                        .ValueGeneratedOnAdd()
 10208                        .HasColumnType("timestamp with time zone")
 10209                        .HasColumnName("created_at")
 10210                        .HasDefaultValueSql("now()");
 10211
 10212                    b.Property<string>("FailureReason")
 10213                        .HasMaxLength(500)
 10214                        .HasColumnType("character varying(500)")
 10215                        .HasColumnName("failure_reason");
 10216
 10217                    b.Property<Guid>("PublicId")
 10218                        .HasColumnType("uuid")
 10219                        .HasColumnName("public_id");
 10220
 10221                    b.Property<bool>("Succeeded")
 10222                        .HasColumnType("boolean")
 10223                        .HasColumnName("succeeded");
 10224
 10225                    b.Property<Guid?>("TargetId")
 10226                        .HasColumnType("uuid")
 10227                        .HasColumnName("target_id");
 10228
 10229                    b.HasKey("Id")
 10230                        .HasName("pk_audit_log");
 10231
 10232                    b.HasIndex("ActorPersonId")
 10233                        .HasDatabaseName("ix_audit_log_actor_person_id");
 10234
 10235                    b.HasIndex("CreatedAt")
 10236                        .HasDatabaseName("ix_audit_log_created_at");
 10237
 10238                    b.HasIndex("PublicId")
 10239                        .IsUnique()
 10240                        .HasDatabaseName("ix_audit_log_public_id");
 10241
 10242                    b.HasIndex("TargetId")
 10243                        .HasDatabaseName("ix_audit_log_target_id");
 10244
 10245                    b.HasIndex(new[] { "CreatedAt" }, "ix_audit_log_created_at_attributed")
 10246                        .HasDatabaseName("ix_audit_log_created_at_attributed")
 10247                        .HasFilter("actor_person_id IS NOT NULL");
 10248
 10249                    b.HasIndex(new[] { "CreatedAt" }, "ix_audit_log_created_at_targeted")
 10250                        .HasDatabaseName("ix_audit_log_created_at_targeted")
 10251                        .HasFilter("target_id IS NOT NULL");
 10252
 10253                    b.ToTable("audit_log", "heimdall");
 20254                });
 255
 10256            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.EmailVerificationToken", b =>
 10257                {
 10258                    b.Property<long>("Id")
 10259                        .ValueGeneratedOnAdd()
 10260                        .HasColumnType("bigint")
 10261                        .HasColumnName("id")
 10262                        .HasColumnOrder(1);
 10263
 10264                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10265
 10266                    b.Property<DateTime>("ExpiresAt")
 10267                        .HasColumnType("timestamp with time zone")
 10268                        .HasColumnName("expires_at");
 10269
 10270                    b.Property<long>("PersonId")
 10271                        .HasColumnType("bigint")
 10272                        .HasColumnName("person_id");
 10273
 10274                    b.Property<string>("TokenHash")
 10275                        .IsRequired()
 10276                        .HasMaxLength(64)
 10277                        .HasColumnType("character varying(64)")
 10278                        .HasColumnName("token_hash");
 10279
 10280                    b.Property<bool>("Used")
 10281                        .ValueGeneratedOnAdd()
 10282                        .HasColumnType("boolean")
 10283                        .HasDefaultValue(false)
 10284                        .HasColumnName("used");
 10285
 10286                    b.HasKey("Id")
 10287                        .HasName("pk_email_verification_token");
 10288
 10289                    b.HasIndex("PersonId")
 10290                        .HasDatabaseName("ix_email_verification_token_person_id");
 10291
 10292                    b.HasIndex("TokenHash")
 10293                        .IsUnique()
 10294                        .HasDatabaseName("ix_email_verification_token_token_hash");
 10295
 10296                    b.ToTable("email_verification_token", "heimdall");
 20297                });
 298
 10299            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ErasedSubject", b =>
 10300                {
 10301                    b.Property<Guid>("Id")
 10302                        .HasColumnType("uuid")
 10303                        .HasColumnName("public_id")
 10304                        .HasColumnOrder(1);
 10305
 10306                    b.Property<DateTime>("CreatedAt")
 10307                        .ValueGeneratedOnAdd()
 10308                        .HasColumnType("timestamp with time zone")
 10309                        .HasColumnName("created_at")
 10310                        .HasDefaultValueSql("now()");
 10311
 10312                    b.Property<int>("Kind")
 10313                        .HasColumnType("integer")
 10314                        .HasColumnName("kind");
 10315
 10316                    b.HasKey("Id")
 10317                        .HasName("pk_erased_subject");
 10318
 10319                    b.HasIndex("CreatedAt")
 10320                        .HasDatabaseName("ix_erased_subject_created_at");
 10321
 10322                    b.ToTable("erased_subject", "heimdall");
 20323                });
 324
 10325            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.GoogleIdTokenUse", b =>
 10326                {
 10327                    b.Property<string>("Id")
 10328                        .HasMaxLength(64)
 10329                        .HasColumnType("character varying(64)")
 10330                        .HasColumnName("token_hash")
 10331                        .HasColumnOrder(1);
 10332
 10333                    b.Property<DateTime>("ExpiresAt")
 10334                        .HasColumnType("timestamp with time zone")
 10335                        .HasColumnName("expires_at");
 10336
 10337                    b.HasKey("Id")
 10338                        .HasName("pk_google_id_token_use");
 10339
 10340                    b.HasIndex("ExpiresAt")
 10341                        .HasDatabaseName("ix_google_id_token_use_expires_at");
 10342
 10343                    b.ToTable("google_id_token_use", "heimdall");
 20344                });
 345
 10346            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.GoogleUser", b =>
 10347                {
 10348                    b.Property<long>("Id")
 10349                        .ValueGeneratedOnAdd()
 10350                        .HasColumnType("bigint")
 10351                        .HasColumnName("id")
 10352                        .HasColumnOrder(1);
 10353
 10354                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10355
 10356                    b.Property<DateTime?>("AnonymisedAt")
 10357                        .HasColumnType("timestamp with time zone")
 10358                        .HasColumnName("anonymised_at");
 10359
 10360                    b.Property<DateTime?>("BasisRecordedAt")
 10361                        .HasColumnType("timestamp with time zone")
 10362                        .HasColumnName("basis_recorded_at");
 10363
 10364                    b.Property<DateTime>("CreatedAt")
 10365                        .ValueGeneratedOnAdd()
 10366                        .HasColumnType("timestamp with time zone")
 10367                        .HasColumnName("created_at")
 10368                        .HasDefaultValueSql("now()");
 10369
 10370                    b.Property<DateTime?>("DeletedAt")
 10371                        .HasColumnType("timestamp with time zone")
 10372                        .HasColumnName("deleted_at");
 10373
 10374                    b.Property<int?>("DeletionKind")
 10375                        .HasColumnType("integer")
 10376                        .HasColumnName("deletion_kind");
 10377
 10378                    b.Property<string>("Email")
 10379                        .IsRequired()
 10380                        .HasMaxLength(256)
 10381                        .HasColumnType("character varying(256)")
 10382                        .HasColumnName("email");
 10383
 10384                    b.Property<bool>("EmailVerified")
 10385                        .ValueGeneratedOnAdd()
 10386                        .HasColumnType("boolean")
 10387                        .HasDefaultValue(false)
 10388                        .HasColumnName("email_verified");
 10389
 10390                    b.Property<string>("ErasureBlockedReason")
 10391                        .HasMaxLength(500)
 10392                        .HasColumnType("character varying(500)")
 10393                        .HasColumnName("erasure_blocked_reason");
 10394
 10395                    b.Property<DateTime?>("ErasureDueAt")
 10396                        .HasColumnType("timestamp with time zone")
 10397                        .HasColumnName("erasure_due_at");
 10398
 10399                    b.Property<DateTime?>("ErasureRequestedAt")
 10400                        .HasColumnType("timestamp with time zone")
 10401                        .HasColumnName("erasure_requested_at");
 10402
 10403                    b.Property<string>("GoogleId")
 10404                        .IsRequired()
 10405                        .HasMaxLength(255)
 10406                        .HasColumnType("character varying(255)")
 10407                        .HasColumnName("google_id");
 10408
 10409                    b.Property<bool>("IsDeleted")
 10410                        .ValueGeneratedOnAdd()
 10411                        .HasColumnType("boolean")
 10412                        .HasDefaultValue(false)
 10413                        .HasColumnName("is_deleted");
 10414
 10415                    b.Property<int>("LegalBasis")
 10416                        .ValueGeneratedOnAdd()
 10417                        .HasColumnType("integer")
 10418                        .HasDefaultValue(0)
 10419                        .HasColumnName("legal_basis");
 10420
 10421                    b.Property<string>("Name")
 10422                        .IsRequired()
 10423                        .HasMaxLength(200)
 10424                        .HasColumnType("character varying(200)")
 10425                        .HasColumnName("name");
 10426
 10427                    b.Property<string>("PrivacyNoticeVersion")
 10428                        .HasMaxLength(50)
 10429                        .HasColumnType("character varying(50)")
 10430                        .HasColumnName("privacy_notice_version");
 10431
 10432                    b.Property<DateTime?>("ProcessingRestrictedAt")
 10433                        .HasColumnType("timestamp with time zone")
 10434                        .HasColumnName("processing_restricted_at");
 10435
 10436                    b.Property<string>("ProfilePictureUrl")
 10437                        .HasMaxLength(2048)
 10438                        .HasColumnType("character varying(2048)")
 10439                        .HasColumnName("profile_picture_url");
 10440
 10441                    b.Property<Guid>("PublicId")
 10442                        .HasColumnType("uuid")
 10443                        .HasColumnName("public_id");
 10444
 10445                    b.Property<int?>("RestrictionGround")
 10446                        .HasColumnType("integer")
 10447                        .HasColumnName("restriction_ground");
 10448
 10449                    b.Property<DateTime?>("RestrictionLiftNotifiedAt")
 10450                        .HasColumnType("timestamp with time zone")
 10451                        .HasColumnName("restriction_lift_notified_at");
 10452
 10453                    b.Property<long>("ScopeId")
 10454                        .HasColumnType("bigint")
 10455                        .HasColumnName("scope_id");
 10456
 10457                    b.Property<DateTime>("UpdatedAt")
 10458                        .ValueGeneratedOnAdd()
 10459                        .HasColumnType("timestamp with time zone")
 10460                        .HasColumnName("updated_at")
 10461                        .HasDefaultValueSql("now()");
 10462
 10463                    b.HasKey("Id")
 10464                        .HasName("pk_google_user");
 10465
 10466                    b.HasIndex("DeletedAt")
 10467                        .HasDatabaseName("ix_google_user_deleted_at")
 10468                        .HasFilter("is_deleted = true AND anonymised_at IS NULL");
 10469
 10470                    b.HasIndex("ProcessingRestrictedAt")
 10471                        .HasDatabaseName("ix_google_user_processing_restricted_at")
 10472                        .HasFilter("processing_restricted_at IS NOT NULL");
 10473
 10474                    b.HasIndex("PublicId")
 10475                        .IsUnique()
 10476                        .HasDatabaseName("ix_google_user_public_id");
 10477
 10478                    b.HasIndex("ScopeId", "Email")
 10479                        .IsUnique()
 10480                        .HasDatabaseName("ix_google_user_scope_id_email");
 10481
 10482                    b.HasIndex("ScopeId", "GoogleId")
 10483                        .IsUnique()
 10484                        .HasDatabaseName("ix_google_user_scope_id_google_id");
 10485
 10486                    b.ToTable("google_user", "heimdall");
 20487                });
 488
 10489            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PasswordResetToken", b =>
 10490                {
 10491                    b.Property<long>("Id")
 10492                        .ValueGeneratedOnAdd()
 10493                        .HasColumnType("bigint")
 10494                        .HasColumnName("id")
 10495                        .HasColumnOrder(1);
 10496
 10497                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10498
 10499                    b.Property<DateTime>("ExpiresAt")
 10500                        .HasColumnType("timestamp with time zone")
 10501                        .HasColumnName("expires_at");
 10502
 10503                    b.Property<long>("PersonId")
 10504                        .HasColumnType("bigint")
 10505                        .HasColumnName("person_id");
 10506
 10507                    b.Property<string>("TokenHash")
 10508                        .IsRequired()
 10509                        .HasMaxLength(64)
 10510                        .HasColumnType("character varying(64)")
 10511                        .HasColumnName("token_hash");
 10512
 10513                    b.Property<bool>("Used")
 10514                        .ValueGeneratedOnAdd()
 10515                        .HasColumnType("boolean")
 10516                        .HasDefaultValue(false)
 10517                        .HasColumnName("used");
 10518
 10519                    b.HasKey("Id")
 10520                        .HasName("pk_password_reset_token");
 10521
 10522                    b.HasIndex("PersonId")
 10523                        .HasDatabaseName("ix_password_reset_token_person_id");
 10524
 10525                    b.HasIndex("TokenHash")
 10526                        .IsUnique()
 10527                        .HasDatabaseName("ix_password_reset_token_token_hash");
 10528
 10529                    b.ToTable("password_reset_token", "heimdall");
 20530                });
 531
 10532            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PendingRegistration", b =>
 10533                {
 10534                    b.Property<long>("Id")
 10535                        .ValueGeneratedOnAdd()
 10536                        .HasColumnType("bigint")
 10537                        .HasColumnName("id")
 10538                        .HasColumnOrder(1);
 10539
 10540                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10541
 10542                    b.Property<DateTime>("CreatedAt")
 10543                        .ValueGeneratedOnAdd()
 10544                        .HasColumnType("timestamp with time zone")
 10545                        .HasColumnName("created_at")
 10546                        .HasDefaultValueSql("now()");
 10547
 10548                    b.Property<string>("Email")
 10549                        .IsRequired()
 10550                        .HasMaxLength(256)
 10551                        .HasColumnType("character varying(256)")
 10552                        .HasColumnName("email");
 10553
 10554                    b.Property<DateTime>("ExpiresAt")
 10555                        .HasColumnType("timestamp with time zone")
 10556                        .HasColumnName("expires_at");
 10557
 10558                    b.Property<int>("FailedAttempts")
 10559                        .ValueGeneratedOnAdd()
 10560                        .HasColumnType("integer")
 10561                        .HasDefaultValue(0)
 10562                        .HasColumnName("failed_attempts");
 10563
 10564                    b.Property<string>("Name")
 10565                        .IsRequired()
 10566                        .HasMaxLength(200)
 10567                        .HasColumnType("character varying(200)")
 10568                        .HasColumnName("name");
 10569
 10570                    b.Property<byte[]>("PasswordHash")
 10571                        .IsRequired()
 10572                        .HasColumnType("bytea")
 10573                        .HasColumnName("password_hash");
 10574
 10575                    b.Property<Guid>("PublicId")
 10576                        .HasColumnType("uuid")
 10577                        .HasColumnName("public_id");
 10578
 10579                    b.Property<byte[]>("Salt")
 10580                        .IsRequired()
 10581                        .HasColumnType("bytea")
 10582                        .HasColumnName("salt");
 10583
 10584                    b.Property<long>("ScopeId")
 10585                        .HasColumnType("bigint")
 10586                        .HasColumnName("scope_id");
 10587
 10588                    b.Property<string>("TokenHash")
 10589                        .IsRequired()
 10590                        .HasMaxLength(64)
 10591                        .HasColumnType("character varying(64)")
 10592                        .HasColumnName("token_hash");
 10593
 10594                    b.HasKey("Id")
 10595                        .HasName("pk_pending_registration");
 10596
 10597                    b.HasIndex("PublicId")
 10598                        .IsUnique()
 10599                        .HasDatabaseName("ix_pending_registration_public_id");
 10600
 10601                    b.HasIndex("ScopeId")
 10602                        .HasDatabaseName("ix_pending_registration_scope_id");
 10603
 10604                    b.HasIndex("TokenHash")
 10605                        .IsUnique()
 10606                        .HasDatabaseName("ix_pending_registration_token_hash");
 10607
 10608                    b.ToTable("pending_registration", "heimdall");
 20609                });
 610
 10611            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 10612                {
 10613                    b.Property<long>("Id")
 10614                        .ValueGeneratedOnAdd()
 10615                        .HasColumnType("bigint")
 10616                        .HasColumnName("id")
 10617                        .HasColumnOrder(1);
 10618
 10619                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10620
 10621                    b.Property<DateTime?>("AccountEmailLastSentAt")
 10622                        .HasColumnType("timestamp with time zone")
 10623                        .HasColumnName("account_email_last_sent_at");
 10624
 10625                    b.Property<DateTime?>("AccountEmailWindowEndsAt")
 10626                        .HasColumnType("timestamp with time zone")
 10627                        .HasColumnName("account_email_window_ends_at");
 10628
 10629                    b.Property<int>("AccountEmailsSent")
 10630                        .HasColumnType("integer")
 10631                        .HasColumnName("account_emails_sent");
 10632
 10633                    b.Property<DateTime?>("AnonymisedAt")
 10634                        .HasColumnType("timestamp with time zone")
 10635                        .HasColumnName("anonymised_at");
 10636
 10637                    b.Property<DateTime?>("BasisRecordedAt")
 10638                        .HasColumnType("timestamp with time zone")
 10639                        .HasColumnName("basis_recorded_at");
 10640
 10641                    b.Property<DateTime>("CreatedAt")
 10642                        .ValueGeneratedOnAdd()
 10643                        .HasColumnType("timestamp with time zone")
 10644                        .HasColumnName("created_at")
 10645                        .HasDefaultValueSql("now()");
 10646
 10647                    b.Property<DateTime?>("DeletedAt")
 10648                        .HasColumnType("timestamp with time zone")
 10649                        .HasColumnName("deleted_at");
 10650
 10651                    b.Property<int?>("DeletionKind")
 10652                        .HasColumnType("integer")
 10653                        .HasColumnName("deletion_kind");
 10654
 10655                    b.Property<string>("Email")
 10656                        .IsRequired()
 10657                        .HasMaxLength(256)
 10658                        .HasColumnType("character varying(256)")
 10659                        .HasColumnName("email");
 10660
 10661                    b.Property<bool>("EmailVerified")
 10662                        .ValueGeneratedOnAdd()
 10663                        .HasColumnType("boolean")
 10664                        .HasDefaultValue(false)
 10665                        .HasColumnName("email_verified");
 10666
 10667                    b.Property<string>("ErasureBlockedReason")
 10668                        .HasMaxLength(500)
 10669                        .HasColumnType("character varying(500)")
 10670                        .HasColumnName("erasure_blocked_reason");
 10671
 10672                    b.Property<DateTime?>("ErasureDueAt")
 10673                        .HasColumnType("timestamp with time zone")
 10674                        .HasColumnName("erasure_due_at");
 10675
 10676                    b.Property<DateTime?>("ErasureRequestedAt")
 10677                        .HasColumnType("timestamp with time zone")
 10678                        .HasColumnName("erasure_requested_at");
 10679
 10680                    b.Property<int>("FailedLoginAttempts")
 10681                        .HasColumnType("integer")
 10682                        .HasColumnName("failed_login_attempts");
 10683
 10684                    b.Property<int>("FailedReauthenticationAttempts")
 10685                        .HasColumnType("integer")
 10686                        .HasColumnName("failed_reauthentication_attempts");
 10687
 10688                    b.Property<int>("FailedSecondFactorAttempts")
 10689                        .HasColumnType("integer")
 10690                        .HasColumnName("failed_second_factor_attempts");
 10691
 10692                    b.Property<bool>("IsDeleted")
 10693                        .ValueGeneratedOnAdd()
 10694                        .HasColumnType("boolean")
 10695                        .HasDefaultValue(false)
 10696                        .HasColumnName("is_deleted");
 10697
 10698                    b.Property<int>("LegalBasis")
 10699                        .ValueGeneratedOnAdd()
 10700                        .HasColumnType("integer")
 10701                        .HasDefaultValue(0)
 10702                        .HasColumnName("legal_basis");
 10703
 10704                    b.Property<DateTime?>("LockedOutUntil")
 10705                        .HasColumnType("timestamp with time zone")
 10706                        .HasColumnName("locked_out_until");
 10707
 10708                    b.Property<string>("Name")
 10709                        .IsRequired()
 10710                        .HasMaxLength(200)
 10711                        .HasColumnType("character varying(200)")
 10712                        .HasColumnName("name");
 10713
 10714                    b.Property<byte[]>("PasswordHash")
 10715                        .IsRequired()
 10716                        .HasColumnType("bytea")
 10717                        .HasColumnName("password_hash");
 10718
 10719                    b.Property<string>("PrivacyNoticeVersion")
 10720                        .HasMaxLength(50)
 10721                        .HasColumnType("character varying(50)")
 10722                        .HasColumnName("privacy_notice_version");
 10723
 10724                    b.Property<DateTime?>("ProcessingRestrictedAt")
 10725                        .HasColumnType("timestamp with time zone")
 10726                        .HasColumnName("processing_restricted_at");
 10727
 10728                    b.Property<Guid>("PublicId")
 10729                        .HasColumnType("uuid")
 10730                        .HasColumnName("public_id");
 10731
 10732                    b.Property<DateTime?>("ReauthenticationPausedUntil")
 10733                        .HasColumnType("timestamp with time zone")
 10734                        .HasColumnName("reauthentication_paused_until");
 10735
 10736                    b.Property<DateTime?>("ReauthenticationWindowStartedAt")
 10737                        .HasColumnType("timestamp with time zone")
 10738                        .HasColumnName("reauthentication_window_started_at");
 10739
 10740                    b.Property<int?>("RestrictionGround")
 10741                        .HasColumnType("integer")
 10742                        .HasColumnName("restriction_ground");
 10743
 10744                    b.Property<DateTime?>("RestrictionLiftNotifiedAt")
 10745                        .HasColumnType("timestamp with time zone")
 10746                        .HasColumnName("restriction_lift_notified_at");
 10747
 10748                    b.Property<long>("RoleId")
 10749                        .HasColumnType("bigint")
 10750                        .HasColumnName("role_id");
 10751
 10752                    b.Property<byte[]>("Salt")
 10753                        .IsRequired()
 10754                        .HasColumnType("bytea")
 10755                        .HasColumnName("salt");
 10756
 10757                    b.Property<long?>("ScopeId")
 10758                        .HasColumnType("bigint")
 10759                        .HasColumnName("scope_id");
 10760
 10761                    b.Property<DateTime?>("SecondFactorLockedOutUntil")
 10762                        .HasColumnType("timestamp with time zone")
 10763                        .HasColumnName("second_factor_locked_out_until");
 10764
 10765                    b.Property<int>("SecondFactorLockouts")
 10766                        .HasColumnType("integer")
 10767                        .HasColumnName("second_factor_lockouts");
 10768
 10769                    b.Property<Guid>("SecurityStamp")
 10770                        .ValueGeneratedOnAdd()
 10771                        .HasColumnType("uuid")
 10772                        .HasColumnName("security_stamp")
 10773                        .HasDefaultValueSql("gen_random_uuid()");
 10774
 10775                    b.Property<DateTime>("UpdatedAt")
 10776                        .ValueGeneratedOnAdd()
 10777                        .HasColumnType("timestamp with time zone")
 10778                        .HasColumnName("updated_at")
 10779                        .HasDefaultValueSql("now()");
 10780
 10781                    b.HasKey("Id")
 10782                        .HasName("pk_person");
 10783
 10784                    b.HasIndex("DeletedAt")
 10785                        .HasDatabaseName("ix_person_deleted_at")
 10786                        .HasFilter("is_deleted = true AND anonymised_at IS NULL");
 10787
 10788                    b.HasIndex("ProcessingRestrictedAt")
 10789                        .HasDatabaseName("ix_person_processing_restricted_at")
 10790                        .HasFilter("processing_restricted_at IS NOT NULL");
 10791
 10792                    b.HasIndex("PublicId")
 10793                        .IsUnique()
 10794                        .HasDatabaseName("ix_person_public_id");
 10795
 10796                    b.HasIndex("RoleId")
 10797                        .HasDatabaseName("ix_person_role_id");
 10798
 10799                    b.ToTable("person", "heimdall");
 20800                });
 801
 10802            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Role", b =>
 10803                {
 10804                    b.Property<long>("Id")
 10805                        .HasColumnType("bigint")
 10806                        .HasColumnName("id")
 10807                        .HasColumnOrder(1);
 10808
 10809                    b.Property<string>("Description")
 10810                        .HasMaxLength(500)
 10811                        .HasColumnType("character varying(500)")
 10812                        .HasColumnName("description");
 10813
 10814                    b.Property<string>("Name")
 10815                        .IsRequired()
 10816                        .HasMaxLength(200)
 10817                        .HasColumnType("character varying(200)")
 10818                        .HasColumnName("name");
 10819
 10820                    b.Property<Guid>("PublicId")
 10821                        .HasColumnType("uuid")
 10822                        .HasColumnName("public_id");
 10823
 10824                    b.HasKey("Id")
 10825                        .HasName("pk_role");
 10826
 10827                    b.HasIndex("Name")
 10828                        .IsUnique()
 10829                        .HasDatabaseName("ix_role_name");
 10830
 10831                    b.HasIndex("PublicId")
 10832                        .IsUnique()
 10833                        .HasDatabaseName("ix_role_public_id");
 10834
 10835                    b.ToTable("role", "heimdall");
 20836                });
 837
 10838            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Scope", 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<DateTime>("CreatedAt")
 10849                        .ValueGeneratedOnAdd()
 10850                        .HasColumnType("timestamp with time zone")
 10851                        .HasColumnName("created_at")
 10852                        .HasDefaultValueSql("now()");
 10853
 10854                    b.Property<int?>("DefaultLegalBasis")
 10855                        .HasColumnType("integer")
 10856                        .HasColumnName("default_legal_basis");
 10857
 10858                    b.Property<string>("Description")
 10859                        .HasMaxLength(500)
 10860                        .HasColumnType("character varying(500)")
 10861                        .HasColumnName("description");
 10862
 10863                    b.Property<string>("EmailVerificationUrl")
 10864                        .HasMaxLength(2048)
 10865                        .HasColumnType("character varying(2048)")
 10866                        .HasColumnName("email_verification_url");
 10867
 10868                    b.Property<bool>("GoogleSignInEnabled")
 10869                        .ValueGeneratedOnAdd()
 10870                        .HasColumnType("boolean")
 10871                        .HasDefaultValue(false)
 10872                        .HasColumnName("google_sign_in_enabled");
 10873
 10874                    b.Property<bool>("IsDeleted")
 10875                        .ValueGeneratedOnAdd()
 10876                        .HasColumnType("boolean")
 10877                        .HasDefaultValue(false)
 10878                        .HasColumnName("is_deleted");
 10879
 10880                    b.Property<string>("Name")
 10881                        .IsRequired()
 10882                        .HasMaxLength(200)
 10883                        .HasColumnType("character varying(200)")
 10884                        .HasColumnName("name");
 10885
 10886                    b.Property<string>("PasswordResetUrl")
 10887                        .HasMaxLength(2048)
 10888                        .HasColumnType("character varying(2048)")
 10889                        .HasColumnName("password_reset_url");
 10890
 10891                    b.Property<string>("PrivacyNoticeUri")
 10892                        .HasMaxLength(2048)
 10893                        .HasColumnType("character varying(2048)")
 10894                        .HasColumnName("privacy_notice_uri");
 10895
 10896                    b.Property<Guid>("PublicId")
 10897                        .HasColumnType("uuid")
 10898                        .HasColumnName("public_id");
 10899
 10900                    b.Property<bool>("SelfRegistrationEnabled")
 10901                        .ValueGeneratedOnAdd()
 10902                        .HasColumnType("boolean")
 10903                        .HasDefaultValue(false)
 10904                        .HasColumnName("self_registration_enabled");
 10905
 10906                    b.Property<DateTime>("UpdatedAt")
 10907                        .ValueGeneratedOnAdd()
 10908                        .HasColumnType("timestamp with time zone")
 10909                        .HasColumnName("updated_at")
 10910                        .HasDefaultValueSql("now()");
 10911
 10912                    b.HasKey("Id")
 10913                        .HasName("pk_scope");
 10914
 10915                    b.HasIndex("Name")
 10916                        .IsUnique()
 10917                        .HasDatabaseName("ix_scope_name");
 10918
 10919                    b.HasIndex("PublicId")
 10920                        .IsUnique()
 10921                        .HasDatabaseName("ix_scope_public_id");
 10922
 10923                    b.ToTable("scope", "heimdall");
 20924                });
 925
 10926            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwner", b =>
 10927                {
 10928                    b.Property<long>("ScopeId")
 10929                        .HasColumnType("bigint")
 10930                        .HasColumnName("scope_id");
 10931
 10932                    b.Property<long>("PersonId")
 10933                        .HasColumnType("bigint")
 10934                        .HasColumnName("person_id");
 10935
 10936                    b.HasKey("ScopeId", "PersonId")
 10937                        .HasName("pk_scope_owner");
 10938
 10939                    b.HasIndex("PersonId")
 10940                        .HasDatabaseName("ix_scope_owner_person_id");
 10941
 10942                    b.ToTable("scope_owner", "heimdall");
 20943                });
 944
 10945            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwnerInvitation", b =>
 10946                {
 10947                    b.Property<long>("Id")
 10948                        .ValueGeneratedOnAdd()
 10949                        .HasColumnType("bigint")
 10950                        .HasColumnName("id")
 10951                        .HasColumnOrder(1);
 10952
 10953                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 10954
 10955                    b.Property<DateTime>("CreatedAt")
 10956                        .ValueGeneratedOnAdd()
 10957                        .HasColumnType("timestamp with time zone")
 10958                        .HasColumnName("created_at")
 10959                        .HasDefaultValueSql("now()");
 10960
 10961                    b.Property<DateTime?>("EndedAt")
 10962                        .HasColumnType("timestamp with time zone")
 10963                        .HasColumnName("ended_at");
 10964
 10965                    b.Property<DateTime>("ExpiresAt")
 10966                        .HasColumnType("timestamp with time zone")
 10967                        .HasColumnName("expires_at");
 10968
 10969                    b.Property<long?>("InvitedByPersonId")
 10970                        .HasColumnType("bigint")
 10971                        .HasColumnName("invited_by_person_id");
 10972
 10973                    b.Property<long>("InviteePersonId")
 10974                        .HasColumnType("bigint")
 10975                        .HasColumnName("invitee_person_id");
 10976
 10977                    b.Property<short?>("Outcome")
 10978                        .HasColumnType("smallint")
 10979                        .HasColumnName("outcome");
 10980
 10981                    b.Property<Guid>("PublicId")
 10982                        .HasColumnType("uuid")
 10983                        .HasColumnName("public_id");
 10984
 10985                    b.Property<long>("ScopeId")
 10986                        .HasColumnType("bigint")
 10987                        .HasColumnName("scope_id");
 10988
 10989                    b.HasKey("Id")
 10990                        .HasName("pk_scope_owner_invitation");
 10991
 10992                    b.HasIndex("InvitedByPersonId")
 10993                        .HasDatabaseName("ix_scope_owner_invitation_invited_by_person_id");
 10994
 10995                    b.HasIndex("InviteePersonId")
 10996                        .HasDatabaseName("ix_scope_owner_invitation_invitee_person_id");
 10997
 10998                    b.HasIndex("PublicId")
 10999                        .IsUnique()
 101000                        .HasDatabaseName("ix_scope_owner_invitation_public_id");
 101001
 101002                    b.HasIndex("ScopeId", "InviteePersonId")
 101003                        .IsUnique()
 101004                        .HasDatabaseName("ix_scope_owner_invitation_scope_id_invitee_person_id")
 101005                        .HasFilter("ended_at IS NULL");
 101006
 101007                    b.ToTable("scope_owner_invitation", "heimdall", t =>
 101008                        {
 101009                            t.HasCheckConstraint("ck_scope_owner_invitation_outcome_ends_it", "outcome IS NULL OR ended_
 101010
 101011                            t.HasCheckConstraint("ck_scope_owner_invitation_outcome_known", "outcome IS NULL OR outcome 
 201012                        });
 201013                });
 1014
 101015            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopePermission", b =>
 101016                {
 101017                    b.Property<long>("Id")
 101018                        .ValueGeneratedOnAdd()
 101019                        .HasColumnType("bigint")
 101020                        .HasColumnName("id")
 101021                        .HasColumnOrder(1);
 101022
 101023                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 101024
 101025                    b.Property<DateTime>("CreatedAt")
 101026                        .ValueGeneratedOnAdd()
 101027                        .HasColumnType("timestamp with time zone")
 101028                        .HasColumnName("created_at")
 101029                        .HasDefaultValueSql("now()");
 101030
 101031                    b.Property<string>("Description")
 101032                        .HasMaxLength(500)
 101033                        .HasColumnType("character varying(500)")
 101034                        .HasColumnName("description");
 101035
 101036                    b.Property<bool>("IncludeAsJwtClaim")
 101037                        .ValueGeneratedOnAdd()
 101038                        .HasColumnType("boolean")
 101039                        .HasDefaultValue(false)
 101040                        .HasColumnName("include_as_jwt_claim");
 101041
 101042                    b.Property<bool>("IsDeleted")
 101043                        .ValueGeneratedOnAdd()
 101044                        .HasColumnType("boolean")
 101045                        .HasDefaultValue(false)
 101046                        .HasColumnName("is_deleted");
 101047
 101048                    b.Property<string>("Name")
 101049                        .IsRequired()
 101050                        .HasMaxLength(200)
 101051                        .HasColumnType("character varying(200)")
 101052                        .HasColumnName("name");
 101053
 101054                    b.Property<Guid>("PublicId")
 101055                        .HasColumnType("uuid")
 101056                        .HasColumnName("public_id");
 101057
 101058                    b.Property<long>("ScopeId")
 101059                        .HasColumnType("bigint")
 101060                        .HasColumnName("scope_id");
 101061
 101062                    b.Property<DateTime>("UpdatedAt")
 101063                        .ValueGeneratedOnAdd()
 101064                        .HasColumnType("timestamp with time zone")
 101065                        .HasColumnName("updated_at")
 101066                        .HasDefaultValueSql("now()");
 101067
 101068                    b.HasKey("Id")
 101069                        .HasName("pk_scope_permission");
 101070
 101071                    b.HasIndex("PublicId")
 101072                        .IsUnique()
 101073                        .HasDatabaseName("ix_scope_permission_public_id");
 101074
 101075                    b.HasIndex("ScopeId")
 101076                        .HasDatabaseName("ix_scope_permission_scope_id");
 101077
 101078                    b.ToTable("scope_permission", "heimdall");
 201079                });
 1080
 101081            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeUser", b =>
 101082                {
 101083                    b.Property<long>("ScopeId")
 101084                        .HasColumnType("bigint")
 101085                        .HasColumnName("scope_id");
 101086
 101087                    b.Property<long>("PersonId")
 101088                        .HasColumnType("bigint")
 101089                        .HasColumnName("person_id");
 101090
 101091                    b.HasKey("ScopeId", "PersonId")
 101092                        .HasName("pk_scope_user");
 101093
 101094                    b.HasIndex("PersonId")
 101095                        .IsUnique()
 101096                        .HasDatabaseName("ix_scope_user_person_id");
 101097
 101098                    b.ToTable("scope_user", "heimdall");
 201099                });
 1100
 101101            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 101102                {
 101103                    b.Property<long>("Id")
 101104                        .ValueGeneratedOnAdd()
 101105                        .HasColumnType("bigint")
 101106                        .HasColumnName("id")
 101107                        .HasColumnOrder(1);
 101108
 101109                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 101110
 101111                    b.Property<bool>("AppEnabled")
 101112                        .ValueGeneratedOnAdd()
 101113                        .HasColumnType("boolean")
 101114                        .HasDefaultValue(false)
 101115                        .HasColumnName("app_enabled");
 101116
 101117                    b.Property<int>("ChallengeAttempts")
 101118                        .ValueGeneratedOnAdd()
 101119                        .HasColumnType("integer")
 101120                        .HasDefaultValue(0)
 101121                        .HasColumnName("challenge_attempts");
 101122
 101123                    b.Property<Guid?>("ChallengeId")
 101124                        .HasColumnType("uuid")
 101125                        .HasColumnName("challenge_id");
 101126
 101127                    b.Property<DateTime>("CreatedAt")
 101128                        .ValueGeneratedOnAdd()
 101129                        .HasColumnType("timestamp with time zone")
 101130                        .HasColumnName("created_at")
 101131                        .HasDefaultValueSql("now()");
 101132
 101133                    b.Property<int>("EmailCodeReissueCount")
 101134                        .ValueGeneratedOnAdd()
 101135                        .HasColumnType("integer")
 101136                        .HasDefaultValue(0)
 101137                        .HasColumnName("email_code_reissue_count");
 101138
 101139                    b.Property<bool>("EmailEnabled")
 101140                        .ValueGeneratedOnAdd()
 101141                        .HasColumnType("boolean")
 101142                        .HasDefaultValue(false)
 101143                        .HasColumnName("email_enabled");
 101144
 101145                    b.Property<bool>("IsActive")
 101146                        .ValueGeneratedOnAdd()
 101147                        .HasColumnType("boolean")
 101148                        .HasDefaultValue(false)
 101149                        .HasColumnName("is_active");
 101150
 101151                    b.Property<long?>("LastTotpTimeStepUsed")
 101152                        .HasColumnType("bigint")
 101153                        .HasColumnName("last_totp_time_step_used");
 101154
 101155                    b.Property<long>("PersonId")
 101156                        .HasColumnType("bigint")
 101157                        .HasColumnName("person_id");
 101158
 101159                    b.Property<byte[]>("TotpSecretEncrypted")
 101160                        .HasColumnType("bytea")
 101161                        .HasColumnName("totp_secret_encrypted");
 101162
 101163                    b.Property<DateTime>("UpdatedAt")
 101164                        .ValueGeneratedOnAdd()
 101165                        .HasColumnType("timestamp with time zone")
 101166                        .HasColumnName("updated_at")
 101167                        .HasDefaultValueSql("now()");
 101168
 101169                    b.HasKey("Id")
 101170                        .HasName("pk_two_factor_auth");
 101171
 101172                    b.HasIndex("PersonId")
 101173                        .IsUnique()
 101174                        .HasDatabaseName("ix_two_factor_auth_person_id");
 101175
 101176                    b.ToTable("two_factor_auth", "heimdall");
 201177                });
 1178
 101179            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorEmailCode", b =>
 101180                {
 101181                    b.Property<long>("Id")
 101182                        .ValueGeneratedOnAdd()
 101183                        .HasColumnType("bigint")
 101184                        .HasColumnName("id")
 101185                        .HasColumnOrder(1);
 101186
 101187                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 101188
 101189                    b.Property<byte[]>("CodeHash")
 101190                        .IsRequired()
 101191                        .HasColumnType("bytea")
 101192                        .HasColumnName("code_hash");
 101193
 101194                    b.Property<DateTime>("CreatedAt")
 101195                        .ValueGeneratedOnAdd()
 101196                        .HasColumnType("timestamp with time zone")
 101197                        .HasColumnName("created_at")
 101198                        .HasDefaultValueSql("now()");
 101199
 101200                    b.Property<DateTime>("ExpiresAt")
 101201                        .HasColumnType("timestamp with time zone")
 101202                        .HasColumnName("expires_at");
 101203
 101204                    b.Property<int>("FailedAttempts")
 101205                        .HasColumnType("integer")
 101206                        .HasColumnName("failed_attempts");
 101207
 101208                    b.Property<byte[]>("Salt")
 101209                        .IsRequired()
 101210                        .HasColumnType("bytea")
 101211                        .HasColumnName("salt");
 101212
 101213                    b.Property<long>("TwoFactorAuthId")
 101214                        .HasColumnType("bigint")
 101215                        .HasColumnName("two_factor_auth_id");
 101216
 101217                    b.Property<bool>("Used")
 101218                        .ValueGeneratedOnAdd()
 101219                        .HasColumnType("boolean")
 101220                        .HasDefaultValue(false)
 101221                        .HasColumnName("used");
 101222
 101223                    b.HasKey("Id")
 101224                        .HasName("pk_two_factor_email_code");
 101225
 101226                    b.HasIndex("TwoFactorAuthId")
 101227                        .HasDatabaseName("ix_two_factor_email_code_two_factor_auth_id");
 101228
 101229                    b.ToTable("two_factor_email_code", "heimdall");
 201230                });
 1231
 101232            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorRecoveryCode", b =>
 101233                {
 101234                    b.Property<long>("Id")
 101235                        .ValueGeneratedOnAdd()
 101236                        .HasColumnType("bigint")
 101237                        .HasColumnName("id")
 101238                        .HasColumnOrder(1);
 101239
 101240                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 101241
 101242                    b.Property<byte[]>("CodeHash")
 101243                        .IsRequired()
 101244                        .HasColumnType("bytea")
 101245                        .HasColumnName("code_hash");
 101246
 101247                    b.Property<DateTime>("CreatedAt")
 101248                        .ValueGeneratedOnAdd()
 101249                        .HasColumnType("timestamp with time zone")
 101250                        .HasColumnName("created_at")
 101251                        .HasDefaultValueSql("now()");
 101252
 101253                    b.Property<long>("TwoFactorAuthId")
 101254                        .HasColumnType("bigint")
 101255                        .HasColumnName("two_factor_auth_id");
 101256
 101257                    b.Property<bool>("Used")
 101258                        .ValueGeneratedOnAdd()
 101259                        .HasColumnType("boolean")
 101260                        .HasDefaultValue(false)
 101261                        .HasColumnName("used");
 101262
 101263                    b.Property<DateTime?>("UsedAt")
 101264                        .HasColumnType("timestamp with time zone")
 101265                        .HasColumnName("used_at");
 101266
 101267                    b.HasKey("Id")
 101268                        .HasName("pk_two_factor_recovery_code");
 101269
 101270                    b.HasIndex("TwoFactorAuthId")
 101271                        .HasDatabaseName("ix_two_factor_recovery_code_two_factor_auth_id");
 101272
 101273                    b.ToTable("two_factor_recovery_code", "heimdall");
 201274                });
 1275
 101276            modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b =>
 101277                {
 101278                    b.Property<int>("Id")
 101279                        .ValueGeneratedOnAdd()
 101280                        .HasColumnType("integer")
 101281                        .HasColumnName("id");
 101282
 101283                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 101284
 101285                    b.Property<string>("FriendlyName")
 101286                        .HasColumnType("text")
 101287                        .HasColumnName("friendly_name");
 101288
 101289                    b.Property<string>("Xml")
 101290                        .HasColumnType("text")
 101291                        .HasColumnName("xml");
 101292
 101293                    b.HasKey("Id")
 101294                        .HasName("pk_data_protection_keys");
 101295
 101296                    b.ToTable("data_protection_keys", "heimdall");
 201297                });
 1298
 101299            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 101300                {
 101301                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Owner")
 101302                        .WithMany("OwnedApplications")
 101303                        .HasForeignKey("OwnerId")
 101304                        .OnDelete(DeleteBehavior.Cascade)
 101305                        .IsRequired()
 101306                        .HasConstraintName("fk_application_person_owner_id");
 101307
 101308                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101309                        .WithMany("Applications")
 101310                        .HasForeignKey("ScopeId")
 101311                        .OnDelete(DeleteBehavior.Cascade)
 101312                        .IsRequired()
 101313                        .HasConstraintName("fk_application_scope_scope_id");
 101314
 101315                    b.Navigation("Owner");
 101316
 101317                    b.Navigation("Scope");
 201318                });
 1319
 101320            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ApplicationCredential", b =>
 101321                {
 101322                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Application", "Application")
 101323                        .WithMany("Credentials")
 101324                        .HasForeignKey("ApplicationId")
 101325                        .OnDelete(DeleteBehavior.Cascade)
 101326                        .IsRequired()
 101327                        .HasConstraintName("fk_application_credential_application_application_id");
 101328
 101329                    b.Navigation("Application");
 201330                });
 1331
 101332            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.EmailVerificationToken", b =>
 101333                {
 101334                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101335                        .WithMany("EmailVerificationTokens")
 101336                        .HasForeignKey("PersonId")
 101337                        .OnDelete(DeleteBehavior.Cascade)
 101338                        .IsRequired()
 101339                        .HasConstraintName("fk_email_verification_token_person_person_id");
 101340
 101341                    b.Navigation("Person");
 201342                });
 1343
 101344            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.GoogleUser", b =>
 101345                {
 101346                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101347                        .WithMany("GoogleUsers")
 101348                        .HasForeignKey("ScopeId")
 101349                        .OnDelete(DeleteBehavior.Cascade)
 101350                        .IsRequired()
 101351                        .HasConstraintName("fk_google_user_scope_scope_id");
 101352
 101353                    b.Navigation("Scope");
 201354                });
 1355
 101356            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PasswordResetToken", b =>
 101357                {
 101358                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101359                        .WithMany("PasswordResetTokens")
 101360                        .HasForeignKey("PersonId")
 101361                        .OnDelete(DeleteBehavior.Cascade)
 101362                        .IsRequired()
 101363                        .HasConstraintName("fk_password_reset_token_person_person_id");
 101364
 101365                    b.Navigation("Person");
 201366                });
 1367
 101368            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PendingRegistration", b =>
 101369                {
 101370                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101371                        .WithMany()
 101372                        .HasForeignKey("ScopeId")
 101373                        .OnDelete(DeleteBehavior.Cascade)
 101374                        .IsRequired()
 101375                        .HasConstraintName("fk_pending_registration_scope_scope_id");
 101376
 101377                    b.Navigation("Scope");
 201378                });
 1379
 101380            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 101381                {
 101382                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Role", "Role")
 101383                        .WithMany("Persons")
 101384                        .HasForeignKey("RoleId")
 101385                        .OnDelete(DeleteBehavior.Restrict)
 101386                        .IsRequired()
 101387                        .HasConstraintName("fk_person_roles_role_id");
 101388
 101389                    b.Navigation("Role");
 201390                });
 1391
 101392            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwner", b =>
 101393                {
 101394                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101395                        .WithMany("ScopeOwnerships")
 101396                        .HasForeignKey("PersonId")
 101397                        .OnDelete(DeleteBehavior.Cascade)
 101398                        .IsRequired()
 101399                        .HasConstraintName("fk_scope_owner_person_person_id");
 101400
 101401                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101402                        .WithMany("Owners")
 101403                        .HasForeignKey("ScopeId")
 101404                        .OnDelete(DeleteBehavior.Cascade)
 101405                        .IsRequired()
 101406                        .HasConstraintName("fk_scope_owner_scope_scope_id");
 101407
 101408                    b.Navigation("Person");
 101409
 101410                    b.Navigation("Scope");
 201411                });
 1412
 101413            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwnerInvitation", b =>
 101414                {
 101415                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "InvitedBy")
 101416                        .WithMany()
 101417                        .HasForeignKey("InvitedByPersonId")
 101418                        .OnDelete(DeleteBehavior.SetNull)
 101419                        .HasConstraintName("fk_scope_owner_invitation_person_invited_by_person_id");
 101420
 101421                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Invitee")
 101422                        .WithMany()
 101423                        .HasForeignKey("InviteePersonId")
 101424                        .OnDelete(DeleteBehavior.Cascade)
 101425                        .IsRequired()
 101426                        .HasConstraintName("fk_scope_owner_invitation_person_invitee_person_id");
 101427
 101428                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101429                        .WithMany()
 101430                        .HasForeignKey("ScopeId")
 101431                        .OnDelete(DeleteBehavior.Cascade)
 101432                        .IsRequired()
 101433                        .HasConstraintName("fk_scope_owner_invitation_scope_scope_id");
 101434
 101435                    b.Navigation("InvitedBy");
 101436
 101437                    b.Navigation("Invitee");
 101438
 101439                    b.Navigation("Scope");
 201440                });
 1441
 101442            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopePermission", b =>
 101443                {
 101444                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101445                        .WithMany("ScopePermissions")
 101446                        .HasForeignKey("ScopeId")
 101447                        .OnDelete(DeleteBehavior.Cascade)
 101448                        .IsRequired()
 101449                        .HasConstraintName("fk_scope_permission_scope_scope_id");
 101450
 101451                    b.Navigation("Scope");
 201452                });
 1453
 101454            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeUser", b =>
 101455                {
 101456                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101457                        .WithOne("ScopeMembership")
 101458                        .HasForeignKey("ArturRios.Heimdall.Domain.Entities.ScopeUser", "PersonId")
 101459                        .OnDelete(DeleteBehavior.Cascade)
 101460                        .IsRequired()
 101461                        .HasConstraintName("fk_scope_user_person_person_id");
 101462
 101463                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 101464                        .WithMany("Users")
 101465                        .HasForeignKey("ScopeId")
 101466                        .OnDelete(DeleteBehavior.Cascade)
 101467                        .IsRequired()
 101468                        .HasConstraintName("fk_scope_user_scope_scope_id");
 101469
 101470                    b.Navigation("Person");
 101471
 101472                    b.Navigation("Scope");
 201473                });
 1474
 101475            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 101476                {
 101477                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 101478                        .WithOne("TwoFactorAuth")
 101479                        .HasForeignKey("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "PersonId")
 101480                        .OnDelete(DeleteBehavior.Cascade)
 101481                        .IsRequired()
 101482                        .HasConstraintName("fk_two_factor_auth_person_person_id");
 101483
 101484                    b.Navigation("Person");
 201485                });
 1486
 101487            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorEmailCode", b =>
 101488                {
 101489                    b.HasOne("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "TwoFactorAuth")
 101490                        .WithMany("EmailCodes")
 101491                        .HasForeignKey("TwoFactorAuthId")
 101492                        .OnDelete(DeleteBehavior.Cascade)
 101493                        .IsRequired()
 101494                        .HasConstraintName("fk_two_factor_email_code_two_factor_auth_two_factor_auth_id");
 101495
 101496                    b.Navigation("TwoFactorAuth");
 201497                });
 1498
 101499            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorRecoveryCode", b =>
 101500                {
 101501                    b.HasOne("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "TwoFactorAuth")
 101502                        .WithMany("RecoveryCodes")
 101503                        .HasForeignKey("TwoFactorAuthId")
 101504                        .OnDelete(DeleteBehavior.Cascade)
 101505                        .IsRequired()
 101506                        .HasConstraintName("fk_two_factor_recovery_code_two_factor_auth_two_factor_auth_id");
 101507
 101508                    b.Navigation("TwoFactorAuth");
 201509                });
 1510
 101511            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 101512                {
 101513                    b.Navigation("Credentials");
 201514                });
 1515
 101516            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 101517                {
 101518                    b.Navigation("EmailVerificationTokens");
 101519
 101520                    b.Navigation("OwnedApplications");
 101521
 101522                    b.Navigation("PasswordResetTokens");
 101523
 101524                    b.Navigation("ScopeMembership");
 101525
 101526                    b.Navigation("ScopeOwnerships");
 101527
 101528                    b.Navigation("TwoFactorAuth");
 201529                });
 1530
 101531            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Role", b =>
 101532                {
 101533                    b.Navigation("Persons");
 201534                });
 1535
 101536            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Scope", b =>
 101537                {
 101538                    b.Navigation("Applications");
 101539
 101540                    b.Navigation("GoogleUsers");
 101541
 101542                    b.Navigation("Owners");
 101543
 101544                    b.Navigation("ScopePermissions");
 101545
 101546                    b.Navigation("Users");
 201547                });
 1548
 101549            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 101550                {
 101551                    b.Navigation("EmailCodes");
 101552
 101553                    b.Navigation("RecoveryCodes");
 201554                });
 1555#pragma warning restore 612, 618
 101556        }
 1557    }
 1558}