< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Data.Migrations.AppDbContextModelSnapshot
Assembly: ArturRios.Heimdall.Data
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Infrastructure/ArturRios.Heimdall.Data/Migrations/AppDbContextModelSnapshot.cs
Line coverage
100%
Covered lines: 1374
Uncovered lines: 0
Coverable lines: 1374
Total lines: 1433
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/runner/work/heimdall-api/heimdall-api/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
 219            modelBuilder
 220                .HasDefaultSchema("heimdall")
 221                .HasAnnotation("ProductVersion", "10.0.13")
 222                .HasAnnotation("Relational:MaxIdentifierLength", 63);
 23
 224            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 25
 226            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 227                {
 228                    b.Property<long>("Id")
 229                        .ValueGeneratedOnAdd()
 230                        .HasColumnType("bigint")
 231                        .HasColumnName("id")
 232                        .HasColumnOrder(1);
 233
 234                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 235
 236                    b.Property<DateTime>("CreatedAt")
 237                        .ValueGeneratedOnAdd()
 238                        .HasColumnType("timestamp with time zone")
 239                        .HasColumnName("created_at")
 240                        .HasDefaultValueSql("now()");
 241
 242                    b.Property<bool>("IsDeleted")
 243                        .ValueGeneratedOnAdd()
 244                        .HasColumnType("boolean")
 245                        .HasDefaultValue(false)
 246                        .HasColumnName("is_deleted");
 247
 248                    b.Property<string>("Name")
 249                        .IsRequired()
 250                        .HasMaxLength(200)
 251                        .HasColumnType("character varying(200)")
 252                        .HasColumnName("name");
 253
 254                    b.Property<long>("OwnerId")
 255                        .HasColumnType("bigint")
 256                        .HasColumnName("owner_id");
 257
 258                    b.Property<Guid>("PublicId")
 259                        .HasColumnType("uuid")
 260                        .HasColumnName("public_id");
 261
 262                    b.Property<long>("ScopeId")
 263                        .HasColumnType("bigint")
 264                        .HasColumnName("scope_id");
 265
 266                    b.Property<DateTime>("UpdatedAt")
 267                        .ValueGeneratedOnAdd()
 268                        .HasColumnType("timestamp with time zone")
 269                        .HasColumnName("updated_at")
 270                        .HasDefaultValueSql("now()");
 271
 272                    b.HasKey("Id")
 273                        .HasName("pk_application");
 274
 275                    b.HasIndex("OwnerId")
 276                        .HasDatabaseName("ix_application_owner_id");
 277
 278                    b.HasIndex("PublicId")
 279                        .IsUnique()
 280                        .HasDatabaseName("ix_application_public_id");
 281
 282                    b.HasIndex("ScopeId")
 283                        .HasDatabaseName("ix_application_scope_id");
 284
 285                    b.ToTable("application", "heimdall");
 486                });
 87
 288            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ApplicationCredential", b =>
 289                {
 290                    b.Property<long>("Id")
 291                        .ValueGeneratedOnAdd()
 292                        .HasColumnType("bigint")
 293                        .HasColumnName("id")
 294                        .HasColumnOrder(1);
 295
 296                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 297
 298                    b.Property<long>("ApplicationId")
 299                        .HasColumnType("bigint")
 2100                        .HasColumnName("application_id");
 2101
 2102                    b.Property<DateTime>("CreatedAt")
 2103                        .HasColumnType("timestamp with time zone")
 2104                        .HasColumnName("created_at");
 2105
 2106                    b.Property<DateTime?>("ExpiresAt")
 2107                        .HasColumnType("timestamp with time zone")
 2108                        .HasColumnName("expires_at");
 2109
 2110                    b.Property<DateTime?>("LastUsedAt")
 2111                        .HasColumnType("timestamp with time zone")
 2112                        .HasColumnName("last_used_at");
 2113
 2114                    b.Property<Guid>("PublicId")
 2115                        .HasColumnType("uuid")
 2116                        .HasColumnName("public_id");
 2117
 2118                    b.Property<DateTime?>("RevokedAt")
 2119                        .HasColumnType("timestamp with time zone")
 2120                        .HasColumnName("revoked_at");
 2121
 2122                    b.Property<string>("SecretHash")
 2123                        .IsRequired()
 2124                        .HasMaxLength(64)
 2125                        .HasColumnType("character varying(64)")
 2126                        .HasColumnName("secret_hash");
 2127
 2128                    b.HasKey("Id")
 2129                        .HasName("pk_application_credential");
 2130
 2131                    b.HasIndex("ApplicationId")
 2132                        .HasDatabaseName("ix_application_credential_application_id");
 2133
 2134                    b.HasIndex("PublicId")
 2135                        .IsUnique()
 2136                        .HasDatabaseName("ix_application_credential_public_id");
 2137
 2138                    b.HasIndex("SecretHash")
 2139                        .IsUnique()
 2140                        .HasDatabaseName("ix_application_credential_secret_hash");
 2141
 2142                    b.ToTable("application_credential", "heimdall");
 4143                });
 144
 2145            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.AttemptNoticeBudget", b =>
 2146                {
 2147                    b.Property<long>("Id")
 2148                        .ValueGeneratedOnAdd()
 2149                        .HasColumnType("bigint")
 2150                        .HasColumnName("id")
 2151                        .HasColumnOrder(1);
 2152
 2153                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2154
 2155                    b.Property<string>("AddressHash")
 2156                        .IsRequired()
 2157                        .HasMaxLength(64)
 2158                        .HasColumnType("character varying(64)")
 2159                        .HasColumnName("address_hash");
 2160
 2161                    b.Property<int>("NoticesSent")
 2162                        .HasColumnType("integer")
 2163                        .HasColumnName("notices_sent");
 2164
 2165                    b.Property<DateTime>("WindowEndsAt")
 2166                        .HasColumnType("timestamp with time zone")
 2167                        .HasColumnName("window_ends_at");
 2168
 2169                    b.HasKey("Id")
 2170                        .HasName("pk_attempt_notice_budget");
 2171
 2172                    b.HasIndex("AddressHash")
 2173                        .IsUnique()
 2174                        .HasDatabaseName("ix_attempt_notice_budget_address_hash");
 2175
 2176                    b.HasIndex("WindowEndsAt")
 2177                        .HasDatabaseName("ix_attempt_notice_budget_window_ends_at");
 2178
 2179                    b.ToTable("attempt_notice_budget", "heimdall");
 4180                });
 181
 2182            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.AuditLog", b =>
 2183                {
 2184                    b.Property<long>("Id")
 2185                        .ValueGeneratedOnAdd()
 2186                        .HasColumnType("bigint")
 2187                        .HasColumnName("id")
 2188                        .HasColumnOrder(1);
 2189
 2190                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2191
 2192                    b.Property<string>("Action")
 2193                        .IsRequired()
 2194                        .HasMaxLength(200)
 2195                        .HasColumnType("character varying(200)")
 2196                        .HasColumnName("action");
 2197
 2198                    b.Property<Guid?>("ActorPersonId")
 2199                        .HasColumnType("uuid")
 2200                        .HasColumnName("actor_person_id");
 2201
 2202                    b.Property<int?>("ActorRole")
 2203                        .HasColumnType("integer")
 2204                        .HasColumnName("actor_role");
 2205
 2206                    b.Property<DateTime>("CreatedAt")
 2207                        .ValueGeneratedOnAdd()
 2208                        .HasColumnType("timestamp with time zone")
 2209                        .HasColumnName("created_at")
 2210                        .HasDefaultValueSql("now()");
 2211
 2212                    b.Property<string>("FailureReason")
 2213                        .HasMaxLength(500)
 2214                        .HasColumnType("character varying(500)")
 2215                        .HasColumnName("failure_reason");
 2216
 2217                    b.Property<Guid>("PublicId")
 2218                        .HasColumnType("uuid")
 2219                        .HasColumnName("public_id");
 2220
 2221                    b.Property<bool>("Succeeded")
 2222                        .HasColumnType("boolean")
 2223                        .HasColumnName("succeeded");
 2224
 2225                    b.Property<Guid?>("TargetId")
 2226                        .HasColumnType("uuid")
 2227                        .HasColumnName("target_id");
 2228
 2229                    b.HasKey("Id")
 2230                        .HasName("pk_audit_log");
 2231
 2232                    b.HasIndex("ActorPersonId")
 2233                        .HasDatabaseName("ix_audit_log_actor_person_id");
 2234
 2235                    b.HasIndex("CreatedAt")
 2236                        .HasDatabaseName("ix_audit_log_created_at");
 2237
 2238                    b.HasIndex("PublicId")
 2239                        .IsUnique()
 2240                        .HasDatabaseName("ix_audit_log_public_id");
 2241
 2242                    b.HasIndex("TargetId")
 2243                        .HasDatabaseName("ix_audit_log_target_id");
 2244
 2245                    b.ToTable("audit_log", "heimdall");
 4246                });
 247
 2248            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.EmailVerificationToken", b =>
 2249                {
 2250                    b.Property<long>("Id")
 2251                        .ValueGeneratedOnAdd()
 2252                        .HasColumnType("bigint")
 2253                        .HasColumnName("id")
 2254                        .HasColumnOrder(1);
 2255
 2256                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2257
 2258                    b.Property<DateTime>("ExpiresAt")
 2259                        .HasColumnType("timestamp with time zone")
 2260                        .HasColumnName("expires_at");
 2261
 2262                    b.Property<long>("PersonId")
 2263                        .HasColumnType("bigint")
 2264                        .HasColumnName("person_id");
 2265
 2266                    b.Property<string>("TokenHash")
 2267                        .IsRequired()
 2268                        .HasMaxLength(64)
 2269                        .HasColumnType("character varying(64)")
 2270                        .HasColumnName("token_hash");
 2271
 2272                    b.Property<bool>("Used")
 2273                        .ValueGeneratedOnAdd()
 2274                        .HasColumnType("boolean")
 2275                        .HasDefaultValue(false)
 2276                        .HasColumnName("used");
 2277
 2278                    b.HasKey("Id")
 2279                        .HasName("pk_email_verification_token");
 2280
 2281                    b.HasIndex("PersonId")
 2282                        .HasDatabaseName("ix_email_verification_token_person_id");
 2283
 2284                    b.HasIndex("TokenHash")
 2285                        .IsUnique()
 2286                        .HasDatabaseName("ix_email_verification_token_token_hash");
 2287
 2288                    b.ToTable("email_verification_token", "heimdall");
 4289                });
 290
 2291            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ErasedSubject", b =>
 2292                {
 2293                    b.Property<Guid>("Id")
 2294                        .HasColumnType("uuid")
 2295                        .HasColumnName("public_id")
 2296                        .HasColumnOrder(1);
 2297
 2298                    b.Property<DateTime>("CreatedAt")
 2299                        .ValueGeneratedOnAdd()
 2300                        .HasColumnType("timestamp with time zone")
 2301                        .HasColumnName("created_at")
 2302                        .HasDefaultValueSql("now()");
 2303
 2304                    b.Property<int>("Kind")
 2305                        .HasColumnType("integer")
 2306                        .HasColumnName("kind");
 2307
 2308                    b.HasKey("Id")
 2309                        .HasName("pk_erased_subject");
 2310
 2311                    b.HasIndex("CreatedAt")
 2312                        .HasDatabaseName("ix_erased_subject_created_at");
 2313
 2314                    b.ToTable("erased_subject", "heimdall");
 4315                });
 316
 2317            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.GoogleUser", b =>
 2318                {
 2319                    b.Property<long>("Id")
 2320                        .ValueGeneratedOnAdd()
 2321                        .HasColumnType("bigint")
 2322                        .HasColumnName("id")
 2323                        .HasColumnOrder(1);
 2324
 2325                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2326
 2327                    b.Property<DateTime?>("AnonymisedAt")
 2328                        .HasColumnType("timestamp with time zone")
 2329                        .HasColumnName("anonymised_at");
 2330
 2331                    b.Property<DateTime?>("BasisRecordedAt")
 2332                        .HasColumnType("timestamp with time zone")
 2333                        .HasColumnName("basis_recorded_at");
 2334
 2335                    b.Property<DateTime>("CreatedAt")
 2336                        .ValueGeneratedOnAdd()
 2337                        .HasColumnType("timestamp with time zone")
 2338                        .HasColumnName("created_at")
 2339                        .HasDefaultValueSql("now()");
 2340
 2341                    b.Property<DateTime?>("DeletedAt")
 2342                        .HasColumnType("timestamp with time zone")
 2343                        .HasColumnName("deleted_at");
 2344
 2345                    b.Property<int?>("DeletionKind")
 2346                        .HasColumnType("integer")
 2347                        .HasColumnName("deletion_kind");
 2348
 2349                    b.Property<string>("Email")
 2350                        .IsRequired()
 2351                        .HasMaxLength(256)
 2352                        .HasColumnType("character varying(256)")
 2353                        .HasColumnName("email");
 2354
 2355                    b.Property<bool>("EmailVerified")
 2356                        .ValueGeneratedOnAdd()
 2357                        .HasColumnType("boolean")
 2358                        .HasDefaultValue(false)
 2359                        .HasColumnName("email_verified");
 2360
 2361                    b.Property<string>("ErasureBlockedReason")
 2362                        .HasMaxLength(500)
 2363                        .HasColumnType("character varying(500)")
 2364                        .HasColumnName("erasure_blocked_reason");
 2365
 2366                    b.Property<DateTime?>("ErasureDueAt")
 2367                        .HasColumnType("timestamp with time zone")
 2368                        .HasColumnName("erasure_due_at");
 2369
 2370                    b.Property<DateTime?>("ErasureRequestedAt")
 2371                        .HasColumnType("timestamp with time zone")
 2372                        .HasColumnName("erasure_requested_at");
 2373
 2374                    b.Property<string>("GoogleId")
 2375                        .IsRequired()
 2376                        .HasMaxLength(255)
 2377                        .HasColumnType("character varying(255)")
 2378                        .HasColumnName("google_id");
 2379
 2380                    b.Property<bool>("IsDeleted")
 2381                        .ValueGeneratedOnAdd()
 2382                        .HasColumnType("boolean")
 2383                        .HasDefaultValue(false)
 2384                        .HasColumnName("is_deleted");
 2385
 2386                    b.Property<int>("LegalBasis")
 2387                        .ValueGeneratedOnAdd()
 2388                        .HasColumnType("integer")
 2389                        .HasDefaultValue(0)
 2390                        .HasColumnName("legal_basis");
 2391
 2392                    b.Property<string>("Name")
 2393                        .IsRequired()
 2394                        .HasMaxLength(200)
 2395                        .HasColumnType("character varying(200)")
 2396                        .HasColumnName("name");
 2397
 2398                    b.Property<string>("PrivacyNoticeVersion")
 2399                        .HasMaxLength(50)
 2400                        .HasColumnType("character varying(50)")
 2401                        .HasColumnName("privacy_notice_version");
 2402
 2403                    b.Property<DateTime?>("ProcessingRestrictedAt")
 2404                        .HasColumnType("timestamp with time zone")
 2405                        .HasColumnName("processing_restricted_at");
 2406
 2407                    b.Property<string>("ProfilePictureUrl")
 2408                        .HasMaxLength(2048)
 2409                        .HasColumnType("character varying(2048)")
 2410                        .HasColumnName("profile_picture_url");
 2411
 2412                    b.Property<Guid>("PublicId")
 2413                        .HasColumnType("uuid")
 2414                        .HasColumnName("public_id");
 2415
 2416                    b.Property<int?>("RestrictionGround")
 2417                        .HasColumnType("integer")
 2418                        .HasColumnName("restriction_ground");
 2419
 2420                    b.Property<DateTime?>("RestrictionLiftNotifiedAt")
 2421                        .HasColumnType("timestamp with time zone")
 2422                        .HasColumnName("restriction_lift_notified_at");
 2423
 2424                    b.Property<long>("ScopeId")
 2425                        .HasColumnType("bigint")
 2426                        .HasColumnName("scope_id");
 2427
 2428                    b.Property<DateTime>("UpdatedAt")
 2429                        .ValueGeneratedOnAdd()
 2430                        .HasColumnType("timestamp with time zone")
 2431                        .HasColumnName("updated_at")
 2432                        .HasDefaultValueSql("now()");
 2433
 2434                    b.HasKey("Id")
 2435                        .HasName("pk_google_user");
 2436
 2437                    b.HasIndex("DeletedAt")
 2438                        .HasDatabaseName("ix_google_user_deleted_at")
 2439                        .HasFilter("is_deleted = true AND anonymised_at IS NULL");
 2440
 2441                    b.HasIndex("ProcessingRestrictedAt")
 2442                        .HasDatabaseName("ix_google_user_processing_restricted_at")
 2443                        .HasFilter("processing_restricted_at IS NOT NULL");
 2444
 2445                    b.HasIndex("PublicId")
 2446                        .IsUnique()
 2447                        .HasDatabaseName("ix_google_user_public_id");
 2448
 2449                    b.HasIndex("ScopeId", "Email")
 2450                        .IsUnique()
 2451                        .HasDatabaseName("ix_google_user_scope_id_email");
 2452
 2453                    b.HasIndex("ScopeId", "GoogleId")
 2454                        .IsUnique()
 2455                        .HasDatabaseName("ix_google_user_scope_id_google_id");
 2456
 2457                    b.ToTable("google_user", "heimdall");
 4458                });
 459
 2460            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PasswordResetToken", b =>
 2461                {
 2462                    b.Property<long>("Id")
 2463                        .ValueGeneratedOnAdd()
 2464                        .HasColumnType("bigint")
 2465                        .HasColumnName("id")
 2466                        .HasColumnOrder(1);
 2467
 2468                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2469
 2470                    b.Property<DateTime>("ExpiresAt")
 2471                        .HasColumnType("timestamp with time zone")
 2472                        .HasColumnName("expires_at");
 2473
 2474                    b.Property<long>("PersonId")
 2475                        .HasColumnType("bigint")
 2476                        .HasColumnName("person_id");
 2477
 2478                    b.Property<string>("TokenHash")
 2479                        .IsRequired()
 2480                        .HasMaxLength(64)
 2481                        .HasColumnType("character varying(64)")
 2482                        .HasColumnName("token_hash");
 2483
 2484                    b.Property<bool>("Used")
 2485                        .ValueGeneratedOnAdd()
 2486                        .HasColumnType("boolean")
 2487                        .HasDefaultValue(false)
 2488                        .HasColumnName("used");
 2489
 2490                    b.HasKey("Id")
 2491                        .HasName("pk_password_reset_token");
 2492
 2493                    b.HasIndex("PersonId")
 2494                        .HasDatabaseName("ix_password_reset_token_person_id");
 2495
 2496                    b.HasIndex("TokenHash")
 2497                        .IsUnique()
 2498                        .HasDatabaseName("ix_password_reset_token_token_hash");
 2499
 2500                    b.ToTable("password_reset_token", "heimdall");
 4501                });
 502
 2503            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PendingRegistration", b =>
 2504                {
 2505                    b.Property<long>("Id")
 2506                        .ValueGeneratedOnAdd()
 2507                        .HasColumnType("bigint")
 2508                        .HasColumnName("id")
 2509                        .HasColumnOrder(1);
 2510
 2511                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2512
 2513                    b.Property<DateTime>("CreatedAt")
 2514                        .ValueGeneratedOnAdd()
 2515                        .HasColumnType("timestamp with time zone")
 2516                        .HasColumnName("created_at")
 2517                        .HasDefaultValueSql("now()");
 2518
 2519                    b.Property<string>("Email")
 2520                        .IsRequired()
 2521                        .HasMaxLength(256)
 2522                        .HasColumnType("character varying(256)")
 2523                        .HasColumnName("email");
 2524
 2525                    b.Property<DateTime>("ExpiresAt")
 2526                        .HasColumnType("timestamp with time zone")
 2527                        .HasColumnName("expires_at");
 2528
 2529                    b.Property<int>("FailedAttempts")
 2530                        .ValueGeneratedOnAdd()
 2531                        .HasColumnType("integer")
 2532                        .HasDefaultValue(0)
 2533                        .HasColumnName("failed_attempts");
 2534
 2535                    b.Property<string>("Name")
 2536                        .IsRequired()
 2537                        .HasMaxLength(200)
 2538                        .HasColumnType("character varying(200)")
 2539                        .HasColumnName("name");
 2540
 2541                    b.Property<byte[]>("PasswordHash")
 2542                        .IsRequired()
 2543                        .HasColumnType("bytea")
 2544                        .HasColumnName("password_hash");
 2545
 2546                    b.Property<Guid>("PublicId")
 2547                        .HasColumnType("uuid")
 2548                        .HasColumnName("public_id");
 2549
 2550                    b.Property<byte[]>("Salt")
 2551                        .IsRequired()
 2552                        .HasColumnType("bytea")
 2553                        .HasColumnName("salt");
 2554
 2555                    b.Property<long>("ScopeId")
 2556                        .HasColumnType("bigint")
 2557                        .HasColumnName("scope_id");
 2558
 2559                    b.Property<string>("TokenHash")
 2560                        .IsRequired()
 2561                        .HasMaxLength(64)
 2562                        .HasColumnType("character varying(64)")
 2563                        .HasColumnName("token_hash");
 2564
 2565                    b.HasKey("Id")
 2566                        .HasName("pk_pending_registration");
 2567
 2568                    b.HasIndex("PublicId")
 2569                        .IsUnique()
 2570                        .HasDatabaseName("ix_pending_registration_public_id");
 2571
 2572                    b.HasIndex("ScopeId")
 2573                        .HasDatabaseName("ix_pending_registration_scope_id");
 2574
 2575                    b.HasIndex("TokenHash")
 2576                        .IsUnique()
 2577                        .HasDatabaseName("ix_pending_registration_token_hash");
 2578
 2579                    b.ToTable("pending_registration", "heimdall");
 4580                });
 581
 2582            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 2583                {
 2584                    b.Property<long>("Id")
 2585                        .ValueGeneratedOnAdd()
 2586                        .HasColumnType("bigint")
 2587                        .HasColumnName("id")
 2588                        .HasColumnOrder(1);
 2589
 2590                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2591
 2592                    b.Property<DateTime?>("AccountEmailLastSentAt")
 2593                        .HasColumnType("timestamp with time zone")
 2594                        .HasColumnName("account_email_last_sent_at");
 2595
 2596                    b.Property<DateTime?>("AccountEmailWindowEndsAt")
 2597                        .HasColumnType("timestamp with time zone")
 2598                        .HasColumnName("account_email_window_ends_at");
 2599
 2600                    b.Property<int>("AccountEmailsSent")
 2601                        .HasColumnType("integer")
 2602                        .HasColumnName("account_emails_sent");
 2603
 2604                    b.Property<DateTime?>("AnonymisedAt")
 2605                        .HasColumnType("timestamp with time zone")
 2606                        .HasColumnName("anonymised_at");
 2607
 2608                    b.Property<DateTime?>("BasisRecordedAt")
 2609                        .HasColumnType("timestamp with time zone")
 2610                        .HasColumnName("basis_recorded_at");
 2611
 2612                    b.Property<DateTime>("CreatedAt")
 2613                        .ValueGeneratedOnAdd()
 2614                        .HasColumnType("timestamp with time zone")
 2615                        .HasColumnName("created_at")
 2616                        .HasDefaultValueSql("now()");
 2617
 2618                    b.Property<DateTime?>("DeletedAt")
 2619                        .HasColumnType("timestamp with time zone")
 2620                        .HasColumnName("deleted_at");
 2621
 2622                    b.Property<int?>("DeletionKind")
 2623                        .HasColumnType("integer")
 2624                        .HasColumnName("deletion_kind");
 2625
 2626                    b.Property<string>("Email")
 2627                        .IsRequired()
 2628                        .HasMaxLength(256)
 2629                        .HasColumnType("character varying(256)")
 2630                        .HasColumnName("email");
 2631
 2632                    b.Property<bool>("EmailVerified")
 2633                        .ValueGeneratedOnAdd()
 2634                        .HasColumnType("boolean")
 2635                        .HasDefaultValue(false)
 2636                        .HasColumnName("email_verified");
 2637
 2638                    b.Property<string>("ErasureBlockedReason")
 2639                        .HasMaxLength(500)
 2640                        .HasColumnType("character varying(500)")
 2641                        .HasColumnName("erasure_blocked_reason");
 2642
 2643                    b.Property<DateTime?>("ErasureDueAt")
 2644                        .HasColumnType("timestamp with time zone")
 2645                        .HasColumnName("erasure_due_at");
 2646
 2647                    b.Property<DateTime?>("ErasureRequestedAt")
 2648                        .HasColumnType("timestamp with time zone")
 2649                        .HasColumnName("erasure_requested_at");
 2650
 2651                    b.Property<int>("FailedLoginAttempts")
 2652                        .HasColumnType("integer")
 2653                        .HasColumnName("failed_login_attempts");
 2654
 2655                    b.Property<int>("FailedReauthenticationAttempts")
 2656                        .HasColumnType("integer")
 2657                        .HasColumnName("failed_reauthentication_attempts");
 2658
 2659                    b.Property<int>("FailedSecondFactorAttempts")
 2660                        .HasColumnType("integer")
 2661                        .HasColumnName("failed_second_factor_attempts");
 2662
 2663                    b.Property<bool>("IsDeleted")
 2664                        .ValueGeneratedOnAdd()
 2665                        .HasColumnType("boolean")
 2666                        .HasDefaultValue(false)
 2667                        .HasColumnName("is_deleted");
 2668
 2669                    b.Property<int>("LegalBasis")
 2670                        .ValueGeneratedOnAdd()
 2671                        .HasColumnType("integer")
 2672                        .HasDefaultValue(0)
 2673                        .HasColumnName("legal_basis");
 2674
 2675                    b.Property<DateTime?>("LockedOutUntil")
 2676                        .HasColumnType("timestamp with time zone")
 2677                        .HasColumnName("locked_out_until");
 2678
 2679                    b.Property<string>("Name")
 2680                        .IsRequired()
 2681                        .HasMaxLength(200)
 2682                        .HasColumnType("character varying(200)")
 2683                        .HasColumnName("name");
 2684
 2685                    b.Property<byte[]>("PasswordHash")
 2686                        .IsRequired()
 2687                        .HasColumnType("bytea")
 2688                        .HasColumnName("password_hash");
 2689
 2690                    b.Property<string>("PrivacyNoticeVersion")
 2691                        .HasMaxLength(50)
 2692                        .HasColumnType("character varying(50)")
 2693                        .HasColumnName("privacy_notice_version");
 2694
 2695                    b.Property<DateTime?>("ProcessingRestrictedAt")
 2696                        .HasColumnType("timestamp with time zone")
 2697                        .HasColumnName("processing_restricted_at");
 2698
 2699                    b.Property<Guid>("PublicId")
 2700                        .HasColumnType("uuid")
 2701                        .HasColumnName("public_id");
 2702
 2703                    b.Property<DateTime?>("ReauthenticationPausedUntil")
 2704                        .HasColumnType("timestamp with time zone")
 2705                        .HasColumnName("reauthentication_paused_until");
 2706
 2707                    b.Property<DateTime?>("ReauthenticationWindowStartedAt")
 2708                        .HasColumnType("timestamp with time zone")
 2709                        .HasColumnName("reauthentication_window_started_at");
 2710
 2711                    b.Property<int?>("RestrictionGround")
 2712                        .HasColumnType("integer")
 2713                        .HasColumnName("restriction_ground");
 2714
 2715                    b.Property<DateTime?>("RestrictionLiftNotifiedAt")
 2716                        .HasColumnType("timestamp with time zone")
 2717                        .HasColumnName("restriction_lift_notified_at");
 2718
 2719                    b.Property<long>("RoleId")
 2720                        .HasColumnType("bigint")
 2721                        .HasColumnName("role_id");
 2722
 2723                    b.Property<byte[]>("Salt")
 2724                        .IsRequired()
 2725                        .HasColumnType("bytea")
 2726                        .HasColumnName("salt");
 2727
 2728                    b.Property<long?>("ScopeId")
 2729                        .HasColumnType("bigint")
 2730                        .HasColumnName("scope_id");
 2731
 2732                    b.Property<DateTime?>("SecondFactorLockedOutUntil")
 2733                        .HasColumnType("timestamp with time zone")
 2734                        .HasColumnName("second_factor_locked_out_until");
 2735
 2736                    b.Property<int>("SecondFactorLockouts")
 2737                        .HasColumnType("integer")
 2738                        .HasColumnName("second_factor_lockouts");
 2739
 2740                    b.Property<Guid>("SecurityStamp")
 2741                        .ValueGeneratedOnAdd()
 2742                        .HasColumnType("uuid")
 2743                        .HasColumnName("security_stamp")
 2744                        .HasDefaultValueSql("gen_random_uuid()");
 2745
 2746                    b.Property<DateTime>("UpdatedAt")
 2747                        .ValueGeneratedOnAdd()
 2748                        .HasColumnType("timestamp with time zone")
 2749                        .HasColumnName("updated_at")
 2750                        .HasDefaultValueSql("now()");
 2751
 2752                    b.HasKey("Id")
 2753                        .HasName("pk_person");
 2754
 2755                    b.HasIndex("DeletedAt")
 2756                        .HasDatabaseName("ix_person_deleted_at")
 2757                        .HasFilter("is_deleted = true AND anonymised_at IS NULL");
 2758
 2759                    b.HasIndex("Email")
 2760                        .HasDatabaseName("ix_person_email");
 2761
 2762                    b.HasIndex("ProcessingRestrictedAt")
 2763                        .HasDatabaseName("ix_person_processing_restricted_at")
 2764                        .HasFilter("processing_restricted_at IS NOT NULL");
 2765
 2766                    b.HasIndex("PublicId")
 2767                        .IsUnique()
 2768                        .HasDatabaseName("ix_person_public_id");
 2769
 2770                    b.HasIndex("RoleId")
 2771                        .HasDatabaseName("ix_person_role_id");
 2772
 2773                    b.ToTable("person", "heimdall");
 4774                });
 775
 2776            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Role", b =>
 2777                {
 2778                    b.Property<long>("Id")
 2779                        .HasColumnType("bigint")
 2780                        .HasColumnName("id")
 2781                        .HasColumnOrder(1);
 2782
 2783                    b.Property<string>("Description")
 2784                        .HasMaxLength(500)
 2785                        .HasColumnType("character varying(500)")
 2786                        .HasColumnName("description");
 2787
 2788                    b.Property<string>("Name")
 2789                        .IsRequired()
 2790                        .HasMaxLength(200)
 2791                        .HasColumnType("character varying(200)")
 2792                        .HasColumnName("name");
 2793
 2794                    b.Property<Guid>("PublicId")
 2795                        .HasColumnType("uuid")
 2796                        .HasColumnName("public_id");
 2797
 2798                    b.HasKey("Id")
 2799                        .HasName("pk_role");
 2800
 2801                    b.HasIndex("Name")
 2802                        .IsUnique()
 2803                        .HasDatabaseName("ix_role_name");
 2804
 2805                    b.HasIndex("PublicId")
 2806                        .IsUnique()
 2807                        .HasDatabaseName("ix_role_public_id");
 2808
 2809                    b.ToTable("role", "heimdall");
 4810                });
 811
 2812            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Scope", b =>
 2813                {
 2814                    b.Property<long>("Id")
 2815                        .ValueGeneratedOnAdd()
 2816                        .HasColumnType("bigint")
 2817                        .HasColumnName("id")
 2818                        .HasColumnOrder(1);
 2819
 2820                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2821
 2822                    b.Property<DateTime>("CreatedAt")
 2823                        .ValueGeneratedOnAdd()
 2824                        .HasColumnType("timestamp with time zone")
 2825                        .HasColumnName("created_at")
 2826                        .HasDefaultValueSql("now()");
 2827
 2828                    b.Property<int?>("DefaultLegalBasis")
 2829                        .HasColumnType("integer")
 2830                        .HasColumnName("default_legal_basis");
 2831
 2832                    b.Property<string>("Description")
 2833                        .HasMaxLength(500)
 2834                        .HasColumnType("character varying(500)")
 2835                        .HasColumnName("description");
 2836
 2837                    b.Property<string>("EmailVerificationUrl")
 2838                        .HasMaxLength(2048)
 2839                        .HasColumnType("character varying(2048)")
 2840                        .HasColumnName("email_verification_url");
 2841
 2842                    b.Property<bool>("GoogleSignInEnabled")
 2843                        .ValueGeneratedOnAdd()
 2844                        .HasColumnType("boolean")
 2845                        .HasDefaultValue(false)
 2846                        .HasColumnName("google_sign_in_enabled");
 2847
 2848                    b.Property<bool>("IsDeleted")
 2849                        .ValueGeneratedOnAdd()
 2850                        .HasColumnType("boolean")
 2851                        .HasDefaultValue(false)
 2852                        .HasColumnName("is_deleted");
 2853
 2854                    b.Property<string>("Name")
 2855                        .IsRequired()
 2856                        .HasMaxLength(200)
 2857                        .HasColumnType("character varying(200)")
 2858                        .HasColumnName("name");
 2859
 2860                    b.Property<string>("PasswordResetUrl")
 2861                        .HasMaxLength(2048)
 2862                        .HasColumnType("character varying(2048)")
 2863                        .HasColumnName("password_reset_url");
 2864
 2865                    b.Property<string>("PrivacyNoticeUri")
 2866                        .HasMaxLength(2048)
 2867                        .HasColumnType("character varying(2048)")
 2868                        .HasColumnName("privacy_notice_uri");
 2869
 2870                    b.Property<Guid>("PublicId")
 2871                        .HasColumnType("uuid")
 2872                        .HasColumnName("public_id");
 2873
 2874                    b.Property<bool>("SelfRegistrationEnabled")
 2875                        .ValueGeneratedOnAdd()
 2876                        .HasColumnType("boolean")
 2877                        .HasDefaultValue(false)
 2878                        .HasColumnName("self_registration_enabled");
 2879
 2880                    b.Property<DateTime>("UpdatedAt")
 2881                        .ValueGeneratedOnAdd()
 2882                        .HasColumnType("timestamp with time zone")
 2883                        .HasColumnName("updated_at")
 2884                        .HasDefaultValueSql("now()");
 2885
 2886                    b.HasKey("Id")
 2887                        .HasName("pk_scope");
 2888
 2889                    b.HasIndex("Name")
 2890                        .IsUnique()
 2891                        .HasDatabaseName("ix_scope_name");
 2892
 2893                    b.HasIndex("PublicId")
 2894                        .IsUnique()
 2895                        .HasDatabaseName("ix_scope_public_id");
 2896
 2897                    b.ToTable("scope", "heimdall");
 4898                });
 899
 2900            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwner", b =>
 2901                {
 2902                    b.Property<long>("ScopeId")
 2903                        .HasColumnType("bigint")
 2904                        .HasColumnName("scope_id");
 2905
 2906                    b.Property<long>("PersonId")
 2907                        .HasColumnType("bigint")
 2908                        .HasColumnName("person_id");
 2909
 2910                    b.HasKey("ScopeId", "PersonId")
 2911                        .HasName("pk_scope_owner");
 2912
 2913                    b.HasIndex("PersonId")
 2914                        .HasDatabaseName("ix_scope_owner_person_id");
 2915
 2916                    b.ToTable("scope_owner", "heimdall");
 4917                });
 918
 2919            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopePermission", b =>
 2920                {
 2921                    b.Property<long>("Id")
 2922                        .ValueGeneratedOnAdd()
 2923                        .HasColumnType("bigint")
 2924                        .HasColumnName("id")
 2925                        .HasColumnOrder(1);
 2926
 2927                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 2928
 2929                    b.Property<DateTime>("CreatedAt")
 2930                        .ValueGeneratedOnAdd()
 2931                        .HasColumnType("timestamp with time zone")
 2932                        .HasColumnName("created_at")
 2933                        .HasDefaultValueSql("now()");
 2934
 2935                    b.Property<string>("Description")
 2936                        .HasMaxLength(500)
 2937                        .HasColumnType("character varying(500)")
 2938                        .HasColumnName("description");
 2939
 2940                    b.Property<bool>("IncludeAsJwtClaim")
 2941                        .ValueGeneratedOnAdd()
 2942                        .HasColumnType("boolean")
 2943                        .HasDefaultValue(false)
 2944                        .HasColumnName("include_as_jwt_claim");
 2945
 2946                    b.Property<bool>("IsDeleted")
 2947                        .ValueGeneratedOnAdd()
 2948                        .HasColumnType("boolean")
 2949                        .HasDefaultValue(false)
 2950                        .HasColumnName("is_deleted");
 2951
 2952                    b.Property<string>("Name")
 2953                        .IsRequired()
 2954                        .HasMaxLength(200)
 2955                        .HasColumnType("character varying(200)")
 2956                        .HasColumnName("name");
 2957
 2958                    b.Property<Guid>("PublicId")
 2959                        .HasColumnType("uuid")
 2960                        .HasColumnName("public_id");
 2961
 2962                    b.Property<long>("ScopeId")
 2963                        .HasColumnType("bigint")
 2964                        .HasColumnName("scope_id");
 2965
 2966                    b.Property<DateTime>("UpdatedAt")
 2967                        .ValueGeneratedOnAdd()
 2968                        .HasColumnType("timestamp with time zone")
 2969                        .HasColumnName("updated_at")
 2970                        .HasDefaultValueSql("now()");
 2971
 2972                    b.HasKey("Id")
 2973                        .HasName("pk_scope_permission");
 2974
 2975                    b.HasIndex("PublicId")
 2976                        .IsUnique()
 2977                        .HasDatabaseName("ix_scope_permission_public_id");
 2978
 2979                    b.HasIndex("ScopeId")
 2980                        .HasDatabaseName("ix_scope_permission_scope_id");
 2981
 2982                    b.ToTable("scope_permission", "heimdall");
 4983                });
 984
 2985            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeUser", b =>
 2986                {
 2987                    b.Property<long>("ScopeId")
 2988                        .HasColumnType("bigint")
 2989                        .HasColumnName("scope_id");
 2990
 2991                    b.Property<long>("PersonId")
 2992                        .HasColumnType("bigint")
 2993                        .HasColumnName("person_id");
 2994
 2995                    b.HasKey("ScopeId", "PersonId")
 2996                        .HasName("pk_scope_user");
 2997
 2998                    b.HasIndex("PersonId")
 2999                        .IsUnique()
 21000                        .HasDatabaseName("ix_scope_user_person_id");
 21001
 21002                    b.ToTable("scope_user", "heimdall");
 41003                });
 1004
 21005            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 21006                {
 21007                    b.Property<long>("Id")
 21008                        .ValueGeneratedOnAdd()
 21009                        .HasColumnType("bigint")
 21010                        .HasColumnName("id")
 21011                        .HasColumnOrder(1);
 21012
 21013                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 21014
 21015                    b.Property<bool>("AppEnabled")
 21016                        .ValueGeneratedOnAdd()
 21017                        .HasColumnType("boolean")
 21018                        .HasDefaultValue(false)
 21019                        .HasColumnName("app_enabled");
 21020
 21021                    b.Property<int>("ChallengeAttempts")
 21022                        .ValueGeneratedOnAdd()
 21023                        .HasColumnType("integer")
 21024                        .HasDefaultValue(0)
 21025                        .HasColumnName("challenge_attempts");
 21026
 21027                    b.Property<Guid?>("ChallengeId")
 21028                        .HasColumnType("uuid")
 21029                        .HasColumnName("challenge_id");
 21030
 21031                    b.Property<DateTime>("CreatedAt")
 21032                        .ValueGeneratedOnAdd()
 21033                        .HasColumnType("timestamp with time zone")
 21034                        .HasColumnName("created_at")
 21035                        .HasDefaultValueSql("now()");
 21036
 21037                    b.Property<int>("EmailCodeReissueCount")
 21038                        .ValueGeneratedOnAdd()
 21039                        .HasColumnType("integer")
 21040                        .HasDefaultValue(0)
 21041                        .HasColumnName("email_code_reissue_count");
 21042
 21043                    b.Property<bool>("EmailEnabled")
 21044                        .ValueGeneratedOnAdd()
 21045                        .HasColumnType("boolean")
 21046                        .HasDefaultValue(false)
 21047                        .HasColumnName("email_enabled");
 21048
 21049                    b.Property<bool>("IsActive")
 21050                        .ValueGeneratedOnAdd()
 21051                        .HasColumnType("boolean")
 21052                        .HasDefaultValue(false)
 21053                        .HasColumnName("is_active");
 21054
 21055                    b.Property<long?>("LastTotpTimeStepUsed")
 21056                        .HasColumnType("bigint")
 21057                        .HasColumnName("last_totp_time_step_used");
 21058
 21059                    b.Property<long>("PersonId")
 21060                        .HasColumnType("bigint")
 21061                        .HasColumnName("person_id");
 21062
 21063                    b.Property<byte[]>("TotpSecretEncrypted")
 21064                        .HasColumnType("bytea")
 21065                        .HasColumnName("totp_secret_encrypted");
 21066
 21067                    b.Property<DateTime>("UpdatedAt")
 21068                        .ValueGeneratedOnAdd()
 21069                        .HasColumnType("timestamp with time zone")
 21070                        .HasColumnName("updated_at")
 21071                        .HasDefaultValueSql("now()");
 21072
 21073                    b.HasKey("Id")
 21074                        .HasName("pk_two_factor_auth");
 21075
 21076                    b.HasIndex("PersonId")
 21077                        .IsUnique()
 21078                        .HasDatabaseName("ix_two_factor_auth_person_id");
 21079
 21080                    b.ToTable("two_factor_auth", "heimdall");
 41081                });
 1082
 21083            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorEmailCode", b =>
 21084                {
 21085                    b.Property<long>("Id")
 21086                        .ValueGeneratedOnAdd()
 21087                        .HasColumnType("bigint")
 21088                        .HasColumnName("id")
 21089                        .HasColumnOrder(1);
 21090
 21091                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 21092
 21093                    b.Property<byte[]>("CodeHash")
 21094                        .IsRequired()
 21095                        .HasColumnType("bytea")
 21096                        .HasColumnName("code_hash");
 21097
 21098                    b.Property<DateTime>("CreatedAt")
 21099                        .ValueGeneratedOnAdd()
 21100                        .HasColumnType("timestamp with time zone")
 21101                        .HasColumnName("created_at")
 21102                        .HasDefaultValueSql("now()");
 21103
 21104                    b.Property<DateTime>("ExpiresAt")
 21105                        .HasColumnType("timestamp with time zone")
 21106                        .HasColumnName("expires_at");
 21107
 21108                    b.Property<int>("FailedAttempts")
 21109                        .HasColumnType("integer")
 21110                        .HasColumnName("failed_attempts");
 21111
 21112                    b.Property<byte[]>("Salt")
 21113                        .IsRequired()
 21114                        .HasColumnType("bytea")
 21115                        .HasColumnName("salt");
 21116
 21117                    b.Property<long>("TwoFactorAuthId")
 21118                        .HasColumnType("bigint")
 21119                        .HasColumnName("two_factor_auth_id");
 21120
 21121                    b.Property<bool>("Used")
 21122                        .ValueGeneratedOnAdd()
 21123                        .HasColumnType("boolean")
 21124                        .HasDefaultValue(false)
 21125                        .HasColumnName("used");
 21126
 21127                    b.HasKey("Id")
 21128                        .HasName("pk_two_factor_email_code");
 21129
 21130                    b.HasIndex("TwoFactorAuthId")
 21131                        .HasDatabaseName("ix_two_factor_email_code_two_factor_auth_id");
 21132
 21133                    b.ToTable("two_factor_email_code", "heimdall");
 41134                });
 1135
 21136            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorRecoveryCode", b =>
 21137                {
 21138                    b.Property<long>("Id")
 21139                        .ValueGeneratedOnAdd()
 21140                        .HasColumnType("bigint")
 21141                        .HasColumnName("id")
 21142                        .HasColumnOrder(1);
 21143
 21144                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
 21145
 21146                    b.Property<byte[]>("CodeHash")
 21147                        .IsRequired()
 21148                        .HasColumnType("bytea")
 21149                        .HasColumnName("code_hash");
 21150
 21151                    b.Property<DateTime>("CreatedAt")
 21152                        .ValueGeneratedOnAdd()
 21153                        .HasColumnType("timestamp with time zone")
 21154                        .HasColumnName("created_at")
 21155                        .HasDefaultValueSql("now()");
 21156
 21157                    b.Property<long>("TwoFactorAuthId")
 21158                        .HasColumnType("bigint")
 21159                        .HasColumnName("two_factor_auth_id");
 21160
 21161                    b.Property<bool>("Used")
 21162                        .ValueGeneratedOnAdd()
 21163                        .HasColumnType("boolean")
 21164                        .HasDefaultValue(false)
 21165                        .HasColumnName("used");
 21166
 21167                    b.Property<DateTime?>("UsedAt")
 21168                        .HasColumnType("timestamp with time zone")
 21169                        .HasColumnName("used_at");
 21170
 21171                    b.HasKey("Id")
 21172                        .HasName("pk_two_factor_recovery_code");
 21173
 21174                    b.HasIndex("TwoFactorAuthId")
 21175                        .HasDatabaseName("ix_two_factor_recovery_code_two_factor_auth_id");
 21176
 21177                    b.ToTable("two_factor_recovery_code", "heimdall");
 41178                });
 1179
 21180            modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b =>
 21181                {
 21182                    b.Property<int>("Id")
 21183                        .ValueGeneratedOnAdd()
 21184                        .HasColumnType("integer")
 21185                        .HasColumnName("id");
 21186
 21187                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 21188
 21189                    b.Property<string>("FriendlyName")
 21190                        .HasColumnType("text")
 21191                        .HasColumnName("friendly_name");
 21192
 21193                    b.Property<string>("Xml")
 21194                        .HasColumnType("text")
 21195                        .HasColumnName("xml");
 21196
 21197                    b.HasKey("Id")
 21198                        .HasName("pk_data_protection_keys");
 21199
 21200                    b.ToTable("data_protection_keys", "heimdall");
 41201                });
 1202
 21203            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 21204                {
 21205                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Owner")
 21206                        .WithMany("OwnedApplications")
 21207                        .HasForeignKey("OwnerId")
 21208                        .OnDelete(DeleteBehavior.Cascade)
 21209                        .IsRequired()
 21210                        .HasConstraintName("fk_application_person_owner_id");
 21211
 21212                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 21213                        .WithMany("Applications")
 21214                        .HasForeignKey("ScopeId")
 21215                        .OnDelete(DeleteBehavior.Cascade)
 21216                        .IsRequired()
 21217                        .HasConstraintName("fk_application_scope_scope_id");
 21218
 21219                    b.Navigation("Owner");
 21220
 21221                    b.Navigation("Scope");
 41222                });
 1223
 21224            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ApplicationCredential", b =>
 21225                {
 21226                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Application", "Application")
 21227                        .WithMany("Credentials")
 21228                        .HasForeignKey("ApplicationId")
 21229                        .OnDelete(DeleteBehavior.Cascade)
 21230                        .IsRequired()
 21231                        .HasConstraintName("fk_application_credential_application_application_id");
 21232
 21233                    b.Navigation("Application");
 41234                });
 1235
 21236            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.EmailVerificationToken", b =>
 21237                {
 21238                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 21239                        .WithMany("EmailVerificationTokens")
 21240                        .HasForeignKey("PersonId")
 21241                        .OnDelete(DeleteBehavior.Cascade)
 21242                        .IsRequired()
 21243                        .HasConstraintName("fk_email_verification_token_person_person_id");
 21244
 21245                    b.Navigation("Person");
 41246                });
 1247
 21248            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.GoogleUser", b =>
 21249                {
 21250                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 21251                        .WithMany("GoogleUsers")
 21252                        .HasForeignKey("ScopeId")
 21253                        .OnDelete(DeleteBehavior.Cascade)
 21254                        .IsRequired()
 21255                        .HasConstraintName("fk_google_user_scope_scope_id");
 21256
 21257                    b.Navigation("Scope");
 41258                });
 1259
 21260            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PasswordResetToken", b =>
 21261                {
 21262                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 21263                        .WithMany("PasswordResetTokens")
 21264                        .HasForeignKey("PersonId")
 21265                        .OnDelete(DeleteBehavior.Cascade)
 21266                        .IsRequired()
 21267                        .HasConstraintName("fk_password_reset_token_person_person_id");
 21268
 21269                    b.Navigation("Person");
 41270                });
 1271
 21272            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.PendingRegistration", b =>
 21273                {
 21274                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 21275                        .WithMany()
 21276                        .HasForeignKey("ScopeId")
 21277                        .OnDelete(DeleteBehavior.Cascade)
 21278                        .IsRequired()
 21279                        .HasConstraintName("fk_pending_registration_scope_scope_id");
 21280
 21281                    b.Navigation("Scope");
 41282                });
 1283
 21284            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 21285                {
 21286                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Role", "Role")
 21287                        .WithMany("Persons")
 21288                        .HasForeignKey("RoleId")
 21289                        .OnDelete(DeleteBehavior.Restrict)
 21290                        .IsRequired()
 21291                        .HasConstraintName("fk_person_roles_role_id");
 21292
 21293                    b.Navigation("Role");
 41294                });
 1295
 21296            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeOwner", b =>
 21297                {
 21298                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 21299                        .WithMany("ScopeOwnerships")
 21300                        .HasForeignKey("PersonId")
 21301                        .OnDelete(DeleteBehavior.Cascade)
 21302                        .IsRequired()
 21303                        .HasConstraintName("fk_scope_owner_person_person_id");
 21304
 21305                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 21306                        .WithMany("Owners")
 21307                        .HasForeignKey("ScopeId")
 21308                        .OnDelete(DeleteBehavior.Cascade)
 21309                        .IsRequired()
 21310                        .HasConstraintName("fk_scope_owner_scope_scope_id");
 21311
 21312                    b.Navigation("Person");
 21313
 21314                    b.Navigation("Scope");
 41315                });
 1316
 21317            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopePermission", b =>
 21318                {
 21319                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 21320                        .WithMany("ScopePermissions")
 21321                        .HasForeignKey("ScopeId")
 21322                        .OnDelete(DeleteBehavior.Cascade)
 21323                        .IsRequired()
 21324                        .HasConstraintName("fk_scope_permission_scope_scope_id");
 21325
 21326                    b.Navigation("Scope");
 41327                });
 1328
 21329            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.ScopeUser", b =>
 21330                {
 21331                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 21332                        .WithOne("ScopeMembership")
 21333                        .HasForeignKey("ArturRios.Heimdall.Domain.Entities.ScopeUser", "PersonId")
 21334                        .OnDelete(DeleteBehavior.Cascade)
 21335                        .IsRequired()
 21336                        .HasConstraintName("fk_scope_user_person_person_id");
 21337
 21338                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Scope", "Scope")
 21339                        .WithMany("Users")
 21340                        .HasForeignKey("ScopeId")
 21341                        .OnDelete(DeleteBehavior.Cascade)
 21342                        .IsRequired()
 21343                        .HasConstraintName("fk_scope_user_scope_scope_id");
 21344
 21345                    b.Navigation("Person");
 21346
 21347                    b.Navigation("Scope");
 41348                });
 1349
 21350            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 21351                {
 21352                    b.HasOne("ArturRios.Heimdall.Domain.Entities.Person", "Person")
 21353                        .WithOne("TwoFactorAuth")
 21354                        .HasForeignKey("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "PersonId")
 21355                        .OnDelete(DeleteBehavior.Cascade)
 21356                        .IsRequired()
 21357                        .HasConstraintName("fk_two_factor_auth_person_person_id");
 21358
 21359                    b.Navigation("Person");
 41360                });
 1361
 21362            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorEmailCode", b =>
 21363                {
 21364                    b.HasOne("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "TwoFactorAuth")
 21365                        .WithMany("EmailCodes")
 21366                        .HasForeignKey("TwoFactorAuthId")
 21367                        .OnDelete(DeleteBehavior.Cascade)
 21368                        .IsRequired()
 21369                        .HasConstraintName("fk_two_factor_email_code_two_factor_auth_two_factor_auth_id");
 21370
 21371                    b.Navigation("TwoFactorAuth");
 41372                });
 1373
 21374            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorRecoveryCode", b =>
 21375                {
 21376                    b.HasOne("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", "TwoFactorAuth")
 21377                        .WithMany("RecoveryCodes")
 21378                        .HasForeignKey("TwoFactorAuthId")
 21379                        .OnDelete(DeleteBehavior.Cascade)
 21380                        .IsRequired()
 21381                        .HasConstraintName("fk_two_factor_recovery_code_two_factor_auth_two_factor_auth_id");
 21382
 21383                    b.Navigation("TwoFactorAuth");
 41384                });
 1385
 21386            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Application", b =>
 21387                {
 21388                    b.Navigation("Credentials");
 41389                });
 1390
 21391            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Person", b =>
 21392                {
 21393                    b.Navigation("EmailVerificationTokens");
 21394
 21395                    b.Navigation("OwnedApplications");
 21396
 21397                    b.Navigation("PasswordResetTokens");
 21398
 21399                    b.Navigation("ScopeMembership");
 21400
 21401                    b.Navigation("ScopeOwnerships");
 21402
 21403                    b.Navigation("TwoFactorAuth");
 41404                });
 1405
 21406            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Role", b =>
 21407                {
 21408                    b.Navigation("Persons");
 41409                });
 1410
 21411            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.Scope", b =>
 21412                {
 21413                    b.Navigation("Applications");
 21414
 21415                    b.Navigation("GoogleUsers");
 21416
 21417                    b.Navigation("Owners");
 21418
 21419                    b.Navigation("ScopePermissions");
 21420
 21421                    b.Navigation("Users");
 41422                });
 1423
 21424            modelBuilder.Entity("ArturRios.Heimdall.Domain.Entities.TwoFactorAuth", b =>
 21425                {
 21426                    b.Navigation("EmailCodes");
 21427
 21428                    b.Navigation("RecoveryCodes");
 41429                });
 1430#pragma warning restore 612, 618
 21431        }
 1432    }
 1433}