profileShare

rasmusjy / splitapp-backend-clean-onion

Read-only snapshot

No repository description.

main default branch 429 files Expires Sep 13, 2026, 9:06 AM
20260328145416_Initial.Designer.cs 44,034 bytes
1 // <auto-generated />
2 using System;
3 using App.DAL.EF;
4 using Microsoft.EntityFrameworkCore;
5 using Microsoft.EntityFrameworkCore.Infrastructure;
6 using Microsoft.EntityFrameworkCore.Migrations;
7 using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
8 using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
9
10 #nullable disable
11
12 namespace App.DAL.EF.Migrations
13 {
14 [DbContext(typeof(AppDbContext))]
15 [Migration("20260328145416_Initial")]
16 partial class Initial
17 {
18 /// <inheritdoc />
19 protected override void BuildTargetModel(ModelBuilder modelBuilder)
20 {
21 #pragma warning disable 612, 618
22 modelBuilder
23 .HasAnnotation("ProductVersion", "10.0.5")
24 .HasAnnotation("Relational:MaxIdentifierLength", 63);
25
26 NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
27
28 modelBuilder.Entity("App.Domain.BudgetCategory", b =>
29 {
30 b.Property<Guid>("Id")
31 .ValueGeneratedOnAdd()
32 .HasColumnType("uuid");
33
34 b.Property<int>("DisplayOrder")
35 .HasColumnType("integer");
36
37 b.Property<string>("IconName")
38 .HasMaxLength(100)
39 .HasColumnType("character varying(100)");
40
41 b.Property<string>("Name")
42 .IsRequired()
43 .HasMaxLength(100)
44 .HasColumnType("character varying(100)");
45
46 b.Property<decimal?>("PlannedAmount")
47 .HasColumnType("numeric");
48
49 b.Property<Guid>("TripId")
50 .HasColumnType("uuid");
51
52 b.HasKey("Id");
53
54 b.HasIndex("TripId");
55
56 b.ToTable("BudgetCategories");
57 });
58
59 modelBuilder.Entity("App.Domain.BudgetCategoryTranslation", b =>
60 {
61 b.Property<Guid>("Id")
62 .ValueGeneratedOnAdd()
63 .HasColumnType("uuid");
64
65 b.Property<Guid>("BudgetCategoryId")
66 .HasColumnType("uuid");
67
68 b.Property<string>("Culture")
69 .IsRequired()
70 .HasMaxLength(5)
71 .HasColumnType("character varying(5)");
72
73 b.Property<string>("Name")
74 .IsRequired()
75 .HasMaxLength(100)
76 .HasColumnType("character varying(100)");
77
78 b.HasKey("Id");
79
80 b.HasIndex("BudgetCategoryId");
81
82 b.ToTable("BudgetCategoryTranslations");
83 });
84
85 modelBuilder.Entity("App.Domain.Currency", b =>
86 {
87 b.Property<Guid>("Id")
88 .ValueGeneratedOnAdd()
89 .HasColumnType("uuid");
90
91 b.Property<string>("Code")
92 .IsRequired()
93 .HasMaxLength(3)
94 .HasColumnType("character varying(3)");
95
96 b.Property<string>("Name")
97 .IsRequired()
98 .HasMaxLength(100)
99 .HasColumnType("character varying(100)");
100
101 b.Property<string>("Symbol")
102 .IsRequired()
103 .HasMaxLength(10)
104 .HasColumnType("character varying(10)");
105
106 b.HasKey("Id");
107
108 b.ToTable("Currencies");
109 });
110
111 modelBuilder.Entity("App.Domain.Expense", b =>
112 {
113 b.Property<Guid>("Id")
114 .ValueGeneratedOnAdd()
115 .HasColumnType("uuid");
116
117 b.Property<decimal>("Amount")
118 .HasColumnType("numeric");
119
120 b.Property<Guid?>("BudgetCategoryId")
121 .HasColumnType("uuid");
122
123 b.Property<Guid?>("CurrencyId")
124 .HasColumnType("uuid");
125
126 b.Property<string>("Description")
127 .HasMaxLength(500)
128 .HasColumnType("character varying(500)");
129
130 b.Property<DateTime>("ExpenseDate")
131 .HasColumnType("timestamp with time zone");
132
133 b.Property<Guid>("PaidByUserId")
134 .HasColumnType("uuid");
135
136 b.Property<int>("SplitMethod")
137 .HasColumnType("integer");
138
139 b.Property<Guid>("TripId")
140 .HasColumnType("uuid");
141
142 b.HasKey("Id");
143
144 b.HasIndex("BudgetCategoryId");
145
146 b.HasIndex("CurrencyId");
147
148 b.HasIndex("PaidByUserId");
149
150 b.HasIndex("TripId");
151
152 b.ToTable("Expenses");
153 });
154
155 modelBuilder.Entity("App.Domain.ExpenseSplit", b =>
156 {
157 b.Property<Guid>("Id")
158 .ValueGeneratedOnAdd()
159 .HasColumnType("uuid");
160
161 b.Property<decimal>("Amount")
162 .HasColumnType("numeric");
163
164 b.Property<Guid>("ExpenseId")
165 .HasColumnType("uuid");
166
167 b.Property<decimal?>("Percentage")
168 .HasColumnType("numeric");
169
170 b.Property<Guid>("UserId")
171 .HasColumnType("uuid");
172
173 b.HasKey("Id");
174
175 b.HasIndex("ExpenseId");
176
177 b.HasIndex("UserId");
178
179 b.ToTable("ExpenseSplits");
180 });
181
182 modelBuilder.Entity("App.Domain.Identity.AppRefreshToken", b =>
183 {
184 b.Property<Guid>("Id")
185 .ValueGeneratedOnAdd()
186 .HasColumnType("uuid");
187
188 b.Property<Guid>("AppUserId")
189 .HasColumnType("uuid");
190
191 b.Property<DateTime>("ExpirationDT")
192 .HasColumnType("timestamp with time zone");
193
194 b.Property<DateTime>("PreviousExpirationDT")
195 .HasColumnType("timestamp with time zone");
196
197 b.Property<string>("PreviousRefreshToken")
198 .HasMaxLength(64)
199 .HasColumnType("character varying(64)");
200
201 b.Property<string>("RefreshToken")
202 .IsRequired()
203 .HasMaxLength(64)
204 .HasColumnType("character varying(64)");
205
206 b.HasKey("Id");
207
208 b.HasIndex("AppUserId");
209
210 b.ToTable("RefreshTokens");
211 });
212
213 modelBuilder.Entity("App.Domain.Identity.AppRole", b =>
214 {
215 b.Property<Guid>("Id")
216 .ValueGeneratedOnAdd()
217 .HasColumnType("uuid");
218
219 b.Property<string>("ConcurrencyStamp")
220 .IsConcurrencyToken()
221 .HasColumnType("text");
222
223 b.Property<string>("Name")
224 .HasMaxLength(256)
225 .HasColumnType("character varying(256)");
226
227 b.Property<string>("NormalizedName")
228 .HasMaxLength(256)
229 .HasColumnType("character varying(256)");
230
231 b.HasKey("Id");
232
233 b.HasIndex("NormalizedName")
234 .IsUnique()
235 .HasDatabaseName("RoleNameIndex");
236
237 b.ToTable("AspNetRoles", (string)null);
238 });
239
240 modelBuilder.Entity("App.Domain.Identity.AppUser", b =>
241 {
242 b.Property<Guid>("Id")
243 .ValueGeneratedOnAdd()
244 .HasColumnType("uuid");
245
246 b.Property<int>("AccessFailedCount")
247 .HasColumnType("integer");
248
249 b.Property<string>("ConcurrencyStamp")
250 .IsConcurrencyToken()
251 .HasColumnType("text");
252
253 b.Property<string>("Email")
254 .HasMaxLength(256)
255 .HasColumnType("character varying(256)");
256
257 b.Property<bool>("EmailConfirmed")
258 .HasColumnType("boolean");
259
260 b.Property<string>("FirstName")
261 .IsRequired()
262 .HasMaxLength(128)
263 .HasColumnType("character varying(128)");
264
265 b.Property<string>("LastName")
266 .IsRequired()
267 .HasMaxLength(128)
268 .HasColumnType("character varying(128)");
269
270 b.Property<bool>("LockoutEnabled")
271 .HasColumnType("boolean");
272
273 b.Property<DateTimeOffset?>("LockoutEnd")
274 .HasColumnType("timestamp with time zone");
275
276 b.Property<string>("NormalizedEmail")
277 .HasMaxLength(256)
278 .HasColumnType("character varying(256)");
279
280 b.Property<string>("NormalizedUserName")
281 .HasMaxLength(256)
282 .HasColumnType("character varying(256)");
283
284 b.Property<string>("PasswordHash")
285 .HasColumnType("text");
286
287 b.Property<string>("PhoneNumber")
288 .HasColumnType("text");
289
290 b.Property<bool>("PhoneNumberConfirmed")
291 .HasColumnType("boolean");
292
293 b.Property<string>("SecurityStamp")
294 .HasColumnType("text");
295
296 b.Property<bool>("TwoFactorEnabled")
297 .HasColumnType("boolean");
298
299 b.Property<string>("UserName")
300 .HasMaxLength(256)
301 .HasColumnType("character varying(256)");
302
303 b.HasKey("Id");
304
305 b.HasIndex("NormalizedEmail")
306 .HasDatabaseName("EmailIndex");
307
308 b.HasIndex("NormalizedUserName")
309 .IsUnique()
310 .HasDatabaseName("UserNameIndex");
311
312 b.ToTable("AspNetUsers", (string)null);
313 });
314
315 modelBuilder.Entity("App.Domain.SettlementPayment", b =>
316 {
317 b.Property<Guid>("Id")
318 .ValueGeneratedOnAdd()
319 .HasColumnType("uuid");
320
321 b.Property<decimal>("Amount")
322 .HasColumnType("numeric");
323
324 b.Property<DateTime?>("ConfirmedAt")
325 .HasColumnType("timestamp with time zone");
326
327 b.Property<Guid>("FromUserId")
328 .HasColumnType("uuid");
329
330 b.Property<DateTime?>("MarkedPaidAt")
331 .HasColumnType("timestamp with time zone");
332
333 b.Property<Guid>("SettlementPlanId")
334 .HasColumnType("uuid");
335
336 b.Property<int>("Status")
337 .HasColumnType("integer");
338
339 b.Property<Guid>("ToUserId")
340 .HasColumnType("uuid");
341
342 b.HasKey("Id");
343
344 b.HasIndex("FromUserId");
345
346 b.HasIndex("SettlementPlanId");
347
348 b.HasIndex("ToUserId");
349
350 b.ToTable("SettlementPayments");
351 });
352
353 modelBuilder.Entity("App.Domain.SettlementPlan", b =>
354 {
355 b.Property<Guid>("Id")
356 .ValueGeneratedOnAdd()
357 .HasColumnType("uuid");
358
359 b.Property<DateTime?>("CompletedAt")
360 .HasColumnType("timestamp with time zone");
361
362 b.Property<Guid>("CreatedByUserId")
363 .HasColumnType("uuid");
364
365 b.Property<int>("Status")
366 .HasColumnType("integer");
367
368 b.Property<decimal>("TotalAmount")
369 .HasColumnType("numeric");
370
371 b.Property<Guid>("TripId")
372 .HasColumnType("uuid");
373
374 b.HasKey("Id");
375
376 b.HasIndex("CreatedByUserId");
377
378 b.HasIndex("TripId");
379
380 b.ToTable("SettlementPlans");
381 });
382
383 modelBuilder.Entity("App.Domain.SplitPreset", b =>
384 {
385 b.Property<Guid>("Id")
386 .ValueGeneratedOnAdd()
387 .HasColumnType("uuid");
388
389 b.Property<Guid>("CreatedById")
390 .HasColumnType("uuid");
391
392 b.Property<string>("Name")
393 .IsRequired()
394 .HasMaxLength(200)
395 .HasColumnType("character varying(200)");
396
397 b.Property<int>("SplitMethod")
398 .HasColumnType("integer");
399
400 b.Property<Guid>("TripId")
401 .HasColumnType("uuid");
402
403 b.HasKey("Id");
404
405 b.HasIndex("CreatedById");
406
407 b.HasIndex("TripId");
408
409 b.ToTable("SplitPresets");
410 });
411
412 modelBuilder.Entity("App.Domain.SplitPresetMember", b =>
413 {
414 b.Property<Guid>("Id")
415 .ValueGeneratedOnAdd()
416 .HasColumnType("uuid");
417
418 b.Property<decimal?>("Percentage")
419 .HasColumnType("numeric");
420
421 b.Property<decimal?>("ShareWeight")
422 .HasColumnType("numeric");
423
424 b.Property<Guid>("SplitPresetId")
425 .HasColumnType("uuid");
426
427 b.Property<Guid>("UserId")
428 .HasColumnType("uuid");
429
430 b.HasKey("Id");
431
432 b.HasIndex("SplitPresetId");
433
434 b.HasIndex("UserId");
435
436 b.ToTable("SplitPresetMembers");
437 });
438
439 modelBuilder.Entity("App.Domain.Trip", b =>
440 {
441 b.Property<Guid>("Id")
442 .ValueGeneratedOnAdd()
443 .HasColumnType("uuid");
444
445 b.Property<Guid>("CreatedById")
446 .HasColumnType("uuid");
447
448 b.Property<Guid>("DefaultCurrencyId")
449 .HasColumnType("uuid");
450
451 b.Property<string>("Description")
452 .HasColumnType("text");
453
454 b.Property<string>("Destination")
455 .HasMaxLength(200)
456 .HasColumnType("character varying(200)");
457
458 b.Property<DateTime?>("EndDate")
459 .HasColumnType("timestamp with time zone");
460
461 b.Property<string>("Name")
462 .IsRequired()
463 .HasMaxLength(200)
464 .HasColumnType("character varying(200)");
465
466 b.Property<DateTime?>("StartDate")
467 .HasColumnType("timestamp with time zone");
468
469 b.Property<int>("Status")
470 .HasColumnType("integer");
471
472 b.HasKey("Id");
473
474 b.HasIndex("CreatedById");
475
476 b.HasIndex("DefaultCurrencyId");
477
478 b.ToTable("Trips");
479 });
480
481 modelBuilder.Entity("App.Domain.TripInvitation", b =>
482 {
483 b.Property<Guid>("Id")
484 .ValueGeneratedOnAdd()
485 .HasColumnType("uuid");
486
487 b.Property<DateTime>("ExpiresAt")
488 .HasColumnType("timestamp with time zone");
489
490 b.Property<Guid>("InvitedByUserId")
491 .HasColumnType("uuid");
492
493 b.Property<DateTime?>("RespondedAt")
494 .HasColumnType("timestamp with time zone");
495
496 b.Property<int>("Status")
497 .HasColumnType("integer");
498
499 b.Property<string>("Token")
500 .IsRequired()
501 .HasMaxLength(256)
502 .HasColumnType("character varying(256)");
503
504 b.Property<Guid>("TripId")
505 .HasColumnType("uuid");
506
507 b.HasKey("Id");
508
509 b.HasIndex("InvitedByUserId");
510
511 b.HasIndex("Token")
512 .IsUnique();
513
514 b.HasIndex("TripId");
515
516 b.ToTable("TripInvitations");
517 });
518
519 modelBuilder.Entity("App.Domain.TripParticipant", b =>
520 {
521 b.Property<Guid>("Id")
522 .ValueGeneratedOnAdd()
523 .HasColumnType("uuid");
524
525 b.Property<bool>("IsActive")
526 .HasColumnType("boolean");
527
528 b.Property<DateTime>("JoinedAt")
529 .HasColumnType("timestamp with time zone");
530
531 b.Property<DateTime?>("LeftAt")
532 .HasColumnType("timestamp with time zone");
533
534 b.Property<string>("Nickname")
535 .HasMaxLength(100)
536 .HasColumnType("character varying(100)");
537
538 b.Property<int>("Role")
539 .HasColumnType("integer");
540
541 b.Property<Guid>("TripId")
542 .HasColumnType("uuid");
543
544 b.Property<Guid>("UserId")
545 .HasColumnType("uuid");
546
547 b.HasKey("Id");
548
549 b.HasIndex("UserId");
550
551 b.HasIndex("TripId", "UserId")
552 .IsUnique();
553
554 b.ToTable("TripParticipants");
555 });
556
557 modelBuilder.Entity("App.Domain.TripPoll", b =>
558 {
559 b.Property<Guid>("Id")
560 .ValueGeneratedOnAdd()
561 .HasColumnType("uuid");
562
563 b.Property<bool>("AllowMultipleVotes")
564 .HasColumnType("boolean");
565
566 b.Property<DateTime?>("ClosedAt")
567 .HasColumnType("timestamp with time zone");
568
569 b.Property<Guid>("CreatedByUserId")
570 .HasColumnType("uuid");
571
572 b.Property<bool>("IsAnonymous")
573 .HasColumnType("boolean");
574
575 b.Property<string>("Question")
576 .IsRequired()
577 .HasMaxLength(500)
578 .HasColumnType("character varying(500)");
579
580 b.Property<Guid>("TripId")
581 .HasColumnType("uuid");
582
583 b.HasKey("Id");
584
585 b.HasIndex("CreatedByUserId");
586
587 b.HasIndex("TripId");
588
589 b.ToTable("TripPolls");
590 });
591
592 modelBuilder.Entity("App.Domain.TripPollOption", b =>
593 {
594 b.Property<Guid>("Id")
595 .ValueGeneratedOnAdd()
596 .HasColumnType("uuid");
597
598 b.Property<int>("DisplayOrder")
599 .HasColumnType("integer");
600
601 b.Property<Guid>("PollId")
602 .HasColumnType("uuid");
603
604 b.Property<string>("Text")
605 .IsRequired()
606 .HasMaxLength(300)
607 .HasColumnType("character varying(300)");
608
609 b.HasKey("Id");
610
611 b.HasIndex("PollId");
612
613 b.ToTable("TripPollOptions");
614 });
615
616 modelBuilder.Entity("App.Domain.TripPollVote", b =>
617 {
618 b.Property<Guid>("Id")
619 .ValueGeneratedOnAdd()
620 .HasColumnType("uuid");
621
622 b.Property<Guid>("PollOptionId")
623 .HasColumnType("uuid");
624
625 b.Property<Guid>("UserId")
626 .HasColumnType("uuid");
627
628 b.HasKey("Id");
629
630 b.HasIndex("UserId");
631
632 b.HasIndex("PollOptionId", "UserId")
633 .IsUnique();
634
635 b.ToTable("TripPollVotes");
636 });
637
638 modelBuilder.Entity("App.Domain.TripWishlistItem", b =>
639 {
640 b.Property<Guid>("Id")
641 .ValueGeneratedOnAdd()
642 .HasColumnType("uuid");
643
644 b.Property<Guid>("AddedByUserId")
645 .HasColumnType("uuid");
646
647 b.Property<int>("Category")
648 .HasColumnType("integer");
649
650 b.Property<DateTime?>("CompletedAt")
651 .HasColumnType("timestamp with time zone");
652
653 b.Property<string>("Description")
654 .HasColumnType("text");
655
656 b.Property<int>("DisplayOrder")
657 .HasColumnType("integer");
658
659 b.Property<decimal?>("EstimatedCost")
660 .HasColumnType("numeric");
661
662 b.Property<bool>("IsCompleted")
663 .HasColumnType("boolean");
664
665 b.Property<string>("Location")
666 .HasMaxLength(300)
667 .HasColumnType("character varying(300)");
668
669 b.Property<int>("Priority")
670 .HasColumnType("integer");
671
672 b.Property<string>("Title")
673 .IsRequired()
674 .HasMaxLength(200)
675 .HasColumnType("character varying(200)");
676
677 b.Property<Guid>("TripId")
678 .HasColumnType("uuid");
679
680 b.Property<string>("Url")
681 .HasMaxLength(500)
682 .HasColumnType("character varying(500)");
683
684 b.HasKey("Id");
685
686 b.HasIndex("AddedByUserId");
687
688 b.HasIndex("TripId");
689
690 b.ToTable("TripWishlistItems");
691 });
692
693 modelBuilder.Entity("App.Domain.TripWishlistVote", b =>
694 {
695 b.Property<Guid>("Id")
696 .ValueGeneratedOnAdd()
697 .HasColumnType("uuid");
698
699 b.Property<bool>("IsInterested")
700 .HasColumnType("boolean");
701
702 b.Property<Guid>("UserId")
703 .HasColumnType("uuid");
704
705 b.Property<Guid>("WishlistItemId")
706 .HasColumnType("uuid");
707
708 b.HasKey("Id");
709
710 b.HasIndex("UserId");
711
712 b.HasIndex("WishlistItemId", "UserId")
713 .IsUnique();
714
715 b.ToTable("TripWishlistVotes");
716 });
717
718 modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b =>
719 {
720 b.Property<int>("Id")
721 .ValueGeneratedOnAdd()
722 .HasColumnType("integer");
723
724 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
725
726 b.Property<string>("FriendlyName")
727 .HasColumnType("text");
728
729 b.Property<string>("Xml")
730 .HasColumnType("text");
731
732 b.HasKey("Id");
733
734 b.ToTable("DataProtectionKeys");
735 });
736
737 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
738 {
739 b.Property<int>("Id")
740 .ValueGeneratedOnAdd()
741 .HasColumnType("integer");
742
743 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
744
745 b.Property<string>("ClaimType")
746 .HasColumnType("text");
747
748 b.Property<string>("ClaimValue")
749 .HasColumnType("text");
750
751 b.Property<Guid>("RoleId")
752 .HasColumnType("uuid");
753
754 b.HasKey("Id");
755
756 b.HasIndex("RoleId");
757
758 b.ToTable("AspNetRoleClaims", (string)null);
759 });
760
761 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
762 {
763 b.Property<int>("Id")
764 .ValueGeneratedOnAdd()
765 .HasColumnType("integer");
766
767 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
768
769 b.Property<string>("ClaimType")
770 .HasColumnType("text");
771
772 b.Property<string>("ClaimValue")
773 .HasColumnType("text");
774
775 b.Property<Guid>("UserId")
776 .HasColumnType("uuid");
777
778 b.HasKey("Id");
779
780 b.HasIndex("UserId");
781
782 b.ToTable("AspNetUserClaims", (string)null);
783 });
784
785 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
786 {
787 b.Property<string>("LoginProvider")
788 .HasColumnType("text");
789
790 b.Property<string>("ProviderKey")
791 .HasColumnType("text");
792
793 b.Property<string>("ProviderDisplayName")
794 .HasColumnType("text");
795
796 b.Property<Guid>("UserId")
797 .HasColumnType("uuid");
798
799 b.HasKey("LoginProvider", "ProviderKey");
800
801 b.HasIndex("UserId");
802
803 b.ToTable("AspNetUserLogins", (string)null);
804 });
805
806 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
807 {
808 b.Property<Guid>("UserId")
809 .HasColumnType("uuid");
810
811 b.Property<Guid>("RoleId")
812 .HasColumnType("uuid");
813
814 b.HasKey("UserId", "RoleId");
815
816 b.HasIndex("RoleId");
817
818 b.ToTable("AspNetUserRoles", (string)null);
819 });
820
821 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
822 {
823 b.Property<Guid>("UserId")
824 .HasColumnType("uuid");
825
826 b.Property<string>("LoginProvider")
827 .HasColumnType("text");
828
829 b.Property<string>("Name")
830 .HasColumnType("text");
831
832 b.Property<string>("Value")
833 .HasColumnType("text");
834
835 b.HasKey("UserId", "LoginProvider", "Name");
836
837 b.ToTable("AspNetUserTokens", (string)null);
838 });
839
840 modelBuilder.Entity("App.Domain.BudgetCategory", b =>
841 {
842 b.HasOne("App.Domain.Trip", "Trip")
843 .WithMany("BudgetCategories")
844 .HasForeignKey("TripId")
845 .OnDelete(DeleteBehavior.Restrict)
846 .IsRequired();
847
848 b.Navigation("Trip");
849 });
850
851 modelBuilder.Entity("App.Domain.BudgetCategoryTranslation", b =>
852 {
853 b.HasOne("App.Domain.BudgetCategory", "BudgetCategory")
854 .WithMany("Translations")
855 .HasForeignKey("BudgetCategoryId")
856 .OnDelete(DeleteBehavior.Restrict)
857 .IsRequired();
858
859 b.Navigation("BudgetCategory");
860 });
861
862 modelBuilder.Entity("App.Domain.Expense", b =>
863 {
864 b.HasOne("App.Domain.BudgetCategory", "BudgetCategory")
865 .WithMany("Expenses")
866 .HasForeignKey("BudgetCategoryId")
867 .OnDelete(DeleteBehavior.Restrict);
868
869 b.HasOne("App.Domain.Currency", "Currency")
870 .WithMany()
871 .HasForeignKey("CurrencyId")
872 .OnDelete(DeleteBehavior.Restrict);
873
874 b.HasOne("App.Domain.Identity.AppUser", "PaidByUser")
875 .WithMany()
876 .HasForeignKey("PaidByUserId")
877 .OnDelete(DeleteBehavior.Restrict)
878 .IsRequired();
879
880 b.HasOne("App.Domain.Trip", "Trip")
881 .WithMany("Expenses")
882 .HasForeignKey("TripId")
883 .OnDelete(DeleteBehavior.Restrict)
884 .IsRequired();
885
886 b.Navigation("BudgetCategory");
887
888 b.Navigation("Currency");
889
890 b.Navigation("PaidByUser");
891
892 b.Navigation("Trip");
893 });
894
895 modelBuilder.Entity("App.Domain.ExpenseSplit", b =>
896 {
897 b.HasOne("App.Domain.Expense", "Expense")
898 .WithMany("Splits")
899 .HasForeignKey("ExpenseId")
900 .OnDelete(DeleteBehavior.Restrict)
901 .IsRequired();
902
903 b.HasOne("App.Domain.Identity.AppUser", "User")
904 .WithMany()
905 .HasForeignKey("UserId")
906 .OnDelete(DeleteBehavior.Restrict)
907 .IsRequired();
908
909 b.Navigation("Expense");
910
911 b.Navigation("User");
912 });
913
914 modelBuilder.Entity("App.Domain.Identity.AppRefreshToken", b =>
915 {
916 b.HasOne("App.Domain.Identity.AppUser", "AppUser")
917 .WithMany("RefreshTokens")
918 .HasForeignKey("AppUserId")
919 .OnDelete(DeleteBehavior.Restrict)
920 .IsRequired();
921
922 b.Navigation("AppUser");
923 });
924
925 modelBuilder.Entity("App.Domain.SettlementPayment", b =>
926 {
927 b.HasOne("App.Domain.Identity.AppUser", "FromUser")
928 .WithMany()
929 .HasForeignKey("FromUserId")
930 .OnDelete(DeleteBehavior.Restrict)
931 .IsRequired();
932
933 b.HasOne("App.Domain.SettlementPlan", "SettlementPlan")
934 .WithMany("Payments")
935 .HasForeignKey("SettlementPlanId")
936 .OnDelete(DeleteBehavior.Restrict)
937 .IsRequired();
938
939 b.HasOne("App.Domain.Identity.AppUser", "ToUser")
940 .WithMany()
941 .HasForeignKey("ToUserId")
942 .OnDelete(DeleteBehavior.Restrict)
943 .IsRequired();
944
945 b.Navigation("FromUser");
946
947 b.Navigation("SettlementPlan");
948
949 b.Navigation("ToUser");
950 });
951
952 modelBuilder.Entity("App.Domain.SettlementPlan", b =>
953 {
954 b.HasOne("App.Domain.Identity.AppUser", "CreatedByUser")
955 .WithMany()
956 .HasForeignKey("CreatedByUserId")
957 .OnDelete(DeleteBehavior.Restrict)
958 .IsRequired();
959
960 b.HasOne("App.Domain.Trip", "Trip")
961 .WithMany("SettlementPlans")
962 .HasForeignKey("TripId")
963 .OnDelete(DeleteBehavior.Restrict)
964 .IsRequired();
965
966 b.Navigation("CreatedByUser");
967
968 b.Navigation("Trip");
969 });
970
971 modelBuilder.Entity("App.Domain.SplitPreset", b =>
972 {
973 b.HasOne("App.Domain.Identity.AppUser", "CreatedBy")
974 .WithMany()
975 .HasForeignKey("CreatedById")
976 .OnDelete(DeleteBehavior.Restrict)
977 .IsRequired();
978
979 b.HasOne("App.Domain.Trip", "Trip")
980 .WithMany()
981 .HasForeignKey("TripId")
982 .OnDelete(DeleteBehavior.Restrict)
983 .IsRequired();
984
985 b.Navigation("CreatedBy");
986
987 b.Navigation("Trip");
988 });
989
990 modelBuilder.Entity("App.Domain.SplitPresetMember", b =>
991 {
992 b.HasOne("App.Domain.SplitPreset", "SplitPreset")
993 .WithMany("Members")
994 .HasForeignKey("SplitPresetId")
995 .OnDelete(DeleteBehavior.Restrict)
996 .IsRequired();
997
998 b.HasOne("App.Domain.Identity.AppUser", "User")
999 .WithMany()
1000 .HasForeignKey("UserId")
1001 .OnDelete(DeleteBehavior.Restrict)
1002 .IsRequired();
1003
1004 b.Navigation("SplitPreset");
1005
1006 b.Navigation("User");
1007 });
1008
1009 modelBuilder.Entity("App.Domain.Trip", b =>
1010 {
1011 b.HasOne("App.Domain.Identity.AppUser", "CreatedBy")
1012 .WithMany()
1013 .HasForeignKey("CreatedById")
1014 .OnDelete(DeleteBehavior.Restrict)
1015 .IsRequired();
1016
1017 b.HasOne("App.Domain.Currency", "DefaultCurrency")
1018 .WithMany()
1019 .HasForeignKey("DefaultCurrencyId")
1020 .OnDelete(DeleteBehavior.Restrict)
1021 .IsRequired();
1022
1023 b.Navigation("CreatedBy");
1024
1025 b.Navigation("DefaultCurrency");
1026 });
1027
1028 modelBuilder.Entity("App.Domain.TripInvitation", b =>
1029 {
1030 b.HasOne("App.Domain.Identity.AppUser", "InvitedByUser")
1031 .WithMany()
1032 .HasForeignKey("InvitedByUserId")
1033 .OnDelete(DeleteBehavior.Restrict)
1034 .IsRequired();
1035
1036 b.HasOne("App.Domain.Trip", "Trip")
1037 .WithMany("Invitations")
1038 .HasForeignKey("TripId")
1039 .OnDelete(DeleteBehavior.Restrict)
1040 .IsRequired();
1041
1042 b.Navigation("InvitedByUser");
1043
1044 b.Navigation("Trip");
1045 });
1046
1047 modelBuilder.Entity("App.Domain.TripParticipant", b =>
1048 {
1049 b.HasOne("App.Domain.Trip", "Trip")
1050 .WithMany("Participants")
1051 .HasForeignKey("TripId")
1052 .OnDelete(DeleteBehavior.Restrict)
1053 .IsRequired();
1054
1055 b.HasOne("App.Domain.Identity.AppUser", "User")
1056 .WithMany("TripParticipants")
1057 .HasForeignKey("UserId")
1058 .OnDelete(DeleteBehavior.Restrict)
1059 .IsRequired();
1060
1061 b.Navigation("Trip");
1062
1063 b.Navigation("User");
1064 });
1065
1066 modelBuilder.Entity("App.Domain.TripPoll", b =>
1067 {
1068 b.HasOne("App.Domain.Identity.AppUser", "CreatedByUser")
1069 .WithMany()
1070 .HasForeignKey("CreatedByUserId")
1071 .OnDelete(DeleteBehavior.Restrict)
1072 .IsRequired();
1073
1074 b.HasOne("App.Domain.Trip", "Trip")
1075 .WithMany("Polls")
1076 .HasForeignKey("TripId")
1077 .OnDelete(DeleteBehavior.Restrict)
1078 .IsRequired();
1079
1080 b.Navigation("CreatedByUser");
1081
1082 b.Navigation("Trip");
1083 });
1084
1085 modelBuilder.Entity("App.Domain.TripPollOption", b =>
1086 {
1087 b.HasOne("App.Domain.TripPoll", "Poll")
1088 .WithMany("Options")
1089 .HasForeignKey("PollId")
1090 .OnDelete(DeleteBehavior.Restrict)
1091 .IsRequired();
1092
1093 b.Navigation("Poll");
1094 });
1095
1096 modelBuilder.Entity("App.Domain.TripPollVote", b =>
1097 {
1098 b.HasOne("App.Domain.TripPollOption", "PollOption")
1099 .WithMany("Votes")
1100 .HasForeignKey("PollOptionId")
1101 .OnDelete(DeleteBehavior.Restrict)
1102 .IsRequired();
1103
1104 b.HasOne("App.Domain.Identity.AppUser", "User")
1105 .WithMany()
1106 .HasForeignKey("UserId")
1107 .OnDelete(DeleteBehavior.Restrict)
1108 .IsRequired();
1109
1110 b.Navigation("PollOption");
1111
1112 b.Navigation("User");
1113 });
1114
1115 modelBuilder.Entity("App.Domain.TripWishlistItem", b =>
1116 {
1117 b.HasOne("App.Domain.Identity.AppUser", "AddedByUser")
1118 .WithMany()
1119 .HasForeignKey("AddedByUserId")
1120 .OnDelete(DeleteBehavior.Restrict)
1121 .IsRequired();
1122
1123 b.HasOne("App.Domain.Trip", "Trip")
1124 .WithMany("WishlistItems")
1125 .HasForeignKey("TripId")
1126 .OnDelete(DeleteBehavior.Restrict)
1127 .IsRequired();
1128
1129 b.Navigation("AddedByUser");
1130
1131 b.Navigation("Trip");
1132 });
1133
1134 modelBuilder.Entity("App.Domain.TripWishlistVote", b =>
1135 {
1136 b.HasOne("App.Domain.Identity.AppUser", "User")
1137 .WithMany()
1138 .HasForeignKey("UserId")
1139 .OnDelete(DeleteBehavior.Restrict)
1140 .IsRequired();
1141
1142 b.HasOne("App.Domain.TripWishlistItem", "WishlistItem")
1143 .WithMany("Votes")
1144 .HasForeignKey("WishlistItemId")
1145 .OnDelete(DeleteBehavior.Restrict)
1146 .IsRequired();
1147
1148 b.Navigation("User");
1149
1150 b.Navigation("WishlistItem");
1151 });
1152
1153 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
1154 {
1155 b.HasOne("App.Domain.Identity.AppRole", null)
1156 .WithMany()
1157 .HasForeignKey("RoleId")
1158 .OnDelete(DeleteBehavior.Restrict)
1159 .IsRequired();
1160 });
1161
1162 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
1163 {
1164 b.HasOne("App.Domain.Identity.AppUser", null)
1165 .WithMany()
1166 .HasForeignKey("UserId")
1167 .OnDelete(DeleteBehavior.Restrict)
1168 .IsRequired();
1169 });
1170
1171 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
1172 {
1173 b.HasOne("App.Domain.Identity.AppUser", null)
1174 .WithMany()
1175 .HasForeignKey("UserId")
1176 .OnDelete(DeleteBehavior.Restrict)
1177 .IsRequired();
1178 });
1179
1180 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
1181 {
1182 b.HasOne("App.Domain.Identity.AppRole", null)
1183 .WithMany()
1184 .HasForeignKey("RoleId")
1185 .OnDelete(DeleteBehavior.Restrict)
1186 .IsRequired();
1187
1188 b.HasOne("App.Domain.Identity.AppUser", null)
1189 .WithMany()
1190 .HasForeignKey("UserId")
1191 .OnDelete(DeleteBehavior.Restrict)
1192 .IsRequired();
1193 });
1194
1195 modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
1196 {
1197 b.HasOne("App.Domain.Identity.AppUser", null)
1198 .WithMany()
1199 .HasForeignKey("UserId")
1200 .OnDelete(DeleteBehavior.Restrict)
1201 .IsRequired();
1202 });
1203
1204 modelBuilder.Entity("App.Domain.BudgetCategory", b =>
1205 {
1206 b.Navigation("Expenses");
1207
1208 b.Navigation("Translations");
1209 });
1210
1211 modelBuilder.Entity("App.Domain.Expense", b =>
1212 {
1213 b.Navigation("Splits");
1214 });
1215
1216 modelBuilder.Entity("App.Domain.Identity.AppUser", b =>
1217 {
1218 b.Navigation("RefreshTokens");
1219
1220 b.Navigation("TripParticipants");
1221 });
1222
1223 modelBuilder.Entity("App.Domain.SettlementPlan", b =>
1224 {
1225 b.Navigation("Payments");
1226 });
1227
1228 modelBuilder.Entity("App.Domain.SplitPreset", b =>
1229 {
1230 b.Navigation("Members");
1231 });
1232
1233 modelBuilder.Entity("App.Domain.Trip", b =>
1234 {
1235 b.Navigation("BudgetCategories");
1236
1237 b.Navigation("Expenses");
1238
1239 b.Navigation("Invitations");
1240
1241 b.Navigation("Participants");
1242
1243 b.Navigation("Polls");
1244
1245 b.Navigation("SettlementPlans");
1246
1247 b.Navigation("WishlistItems");
1248 });
1249
1250 modelBuilder.Entity("App.Domain.TripPoll", b =>
1251 {
1252 b.Navigation("Options");
1253 });
1254
1255 modelBuilder.Entity("App.Domain.TripPollOption", b =>
1256 {
1257 b.Navigation("Votes");
1258 });
1259
1260 modelBuilder.Entity("App.Domain.TripWishlistItem", b =>
1261 {
1262 b.Navigation("Votes");
1263 });
1264 #pragma warning restore 612, 618
1265 }
1266 }
1267 }
1268