diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/gehGassiApp/gehGassiApp.Core/Services/CommunicationService.cs b/gehGassiApp/gehGassiApp.Core/Services/CommunicationService.cs index 10aebcb..c7cc88d 100644 --- a/gehGassiApp/gehGassiApp.Core/Services/CommunicationService.cs +++ b/gehGassiApp/gehGassiApp.Core/Services/CommunicationService.cs @@ -352,7 +352,7 @@ namespace gehGassiApp.Core.Services var json = JsonSerializer.Serialize(registerDto, _jsonOptions); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/v2/Account/Register", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v3/Account/Register", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -453,7 +453,7 @@ namespace gehGassiApp.Core.Services var json = JsonSerializer.Serialize(registerDto, _jsonOptions); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/v2/Account/RegisterExternal", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v3/Account/RegisterExternal", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -5952,7 +5952,7 @@ namespace gehGassiApp.Core.Services var json = JsonSerializer.Serialize(requestDto, _jsonOptions); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/walks/AcceptPublicWalkRequest", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v2/walks/AcceptPublicWalkRequest", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -7499,7 +7499,7 @@ namespace gehGassiApp.Core.Services var json = JsonSerializer.Serialize(requestDto, _jsonOptions); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/walks/CancelWalk", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v2/walks/CancelWalk", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -7688,7 +7688,7 @@ namespace gehGassiApp.Core.Services var json = JsonSerializer.Serialize(requestDto, _jsonOptions); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/walks/ConfirmWalk", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v2/walks/ConfirmWalk", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -7754,7 +7754,7 @@ namespace gehGassiApp.Core.Services var json = JsonSerializer.Serialize(requestDto, _jsonOptions); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/walks/ConfirmWalkWithRating", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v2/walks/ConfirmWalkWithRating", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -7953,7 +7953,7 @@ namespace gehGassiApp.Core.Services var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/walks/CreateWalkDirect", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v2/walks/CreateWalkDirect", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -8032,7 +8032,7 @@ namespace gehGassiApp.Core.Services var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/walks/CreateWalkRequest", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v2/walks/CreateWalkRequest", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { @@ -8106,7 +8106,7 @@ namespace gehGassiApp.Core.Services var json = JsonSerializer.Serialize(requestDto, _jsonOptions); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); - var serverResult = await _httpClient.PostAsync($"api/walks/AcceptWalk", stringContent, token).ConfigureAwait(false); + var serverResult = await _httpClient.PostAsync($"api/v2/walks/AcceptWalk", stringContent, token).ConfigureAwait(false); if (serverResult.IsSuccessStatusCode) { diff --git a/gehGassiApp/gehGassiApp.Data/Infos.txt b/gehGassiApp/gehGassiApp.Data/Infos.txt index 4234914..3fdd50f 100644 --- a/gehGassiApp/gehGassiApp.Data/Infos.txt +++ b/gehGassiApp/gehGassiApp.Data/Infos.txt @@ -1,6 +1,11 @@  migrations: +dotnet ef migrations add XXX --project gehGassiApp.Data --startup-project gehGassiApp.DbConfig + +dotnet ef database update --project gehGassiApp.Data --startup-project gehGassiApp.DbConfig + + add-migration xxx -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig add-migration Initial -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig diff --git a/gehGassiApp/gehGassiApp.Data/Migrations/20250706144607_Walk_PaymentType_Added.Designer.cs b/gehGassiApp/gehGassiApp.Data/Migrations/20250706144607_Walk_PaymentType_Added.Designer.cs new file mode 100644 index 0000000..34f1ac6 --- /dev/null +++ b/gehGassiApp/gehGassiApp.Data/Migrations/20250706144607_Walk_PaymentType_Added.Designer.cs @@ -0,0 +1,1793 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using gehGassiApp.Data; + +#nullable disable + +namespace gehGassiApp.Data.Migrations +{ + [DbContext(typeof(LocalDbContext))] + [Migration("20250706144607_Walk_PaymentType_Added")] + partial class Walk_PaymentType_Added + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "8.0.12"); + + modelBuilder.Entity("gehGassiApp.Domain.Common.Rating", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("FromId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("FromType") + .HasColumnType("INTEGER"); + + b.Property("Info") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Points") + .HasColumnType("TEXT"); + + b.Property("TargetId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("TargetType") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("Ratings"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Common.SyncInfoPull", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LastUpdate") + .HasColumnType("INTEGER"); + + b.Property("Table") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("SyncInfosPull"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Common.SyncInfoPush", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("DateTime") + .HasColumnType("INTEGER"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Operation") + .HasColumnType("INTEGER"); + + b.Property("Table") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Value") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("SyncInfosPush"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Dogs.Dog", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AggressionLevel") + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("BasicCommands") + .HasColumnType("INTEGER"); + + b.Property("BirthDate") + .HasColumnType("INTEGER"); + + b.Property("Chiped") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("Description") + .HasMaxLength(5000) + .HasColumnType("TEXT"); + + b.Property("DogRaceId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Eating") + .HasColumnType("INTEGER"); + + b.Property("FeedingIndividual") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("FeedingTimes") + .HasColumnType("INTEGER"); + + b.Property("HouseTrained") + .HasColumnType("INTEGER"); + + b.Property("Hunter") + .HasColumnType("INTEGER"); + + b.Property("Intolerances") + .HasMaxLength(5000) + .HasColumnType("TEXT"); + + b.Property("IsAggressiv") + .HasColumnType("INTEGER"); + + b.Property("IsCalm") + .HasColumnType("INTEGER"); + + b.Property("IsGuard") + .HasColumnType("INTEGER"); + + b.Property("IsLoneGunner") + .HasColumnType("INTEGER"); + + b.Property("IsPeeing") + .HasColumnType("INTEGER"); + + b.Property("IsShy") + .HasColumnType("INTEGER"); + + b.Property("IsTrustful") + .HasColumnType("INTEGER"); + + b.Property("Jumper") + .HasColumnType("INTEGER"); + + b.Property("LikesAdults") + .HasColumnType("INTEGER"); + + b.Property("LikesChildren") + .HasColumnType("INTEGER"); + + b.Property("LikesConspecifics") + .HasColumnType("INTEGER"); + + b.Property("MedicalInfo") + .HasMaxLength(5000) + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Number") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Photo") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("PullsTheLeash") + .HasColumnType("INTEGER"); + + b.Property("RushesOutside") + .HasColumnType("INTEGER"); + + b.Property("Sex") + .HasColumnType("INTEGER"); + + b.Property("Size") + .HasColumnType("INTEGER"); + + b.Property("Sterilized") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.Property("WalksTheLeash") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("DogRaceId"); + + b.ToTable("Dogs"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Dogs.DogRace", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Age") + .HasMaxLength(1000) + .HasColumnType("TEXT"); + + b.Property("Care") + .HasMaxLength(1000) + .HasColumnType("TEXT"); + + b.Property("Coexistence") + .HasMaxLength(1000) + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Decision") + .HasMaxLength(2000) + .HasColumnType("TEXT"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("Description") + .HasMaxLength(5000) + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Personality") + .HasMaxLength(2000) + .HasColumnType("TEXT"); + + b.Property("Photo") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("SizeAndWeight") + .HasMaxLength(1000) + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("DogRaces"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Favourites.Favourite", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AppUserId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Table") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("Favourites"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Messages.Conversation", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Created") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "created"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("HasUnreadMessages") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "hasUnreadMessages"); + + b.Property("LastMessageId") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "lastMessageId"); + + b.Property("LastMessagePreview") + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "lastMessagePreview"); + + b.Property("ReceipientType") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "receipientType"); + + b.Property("Recipient") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "recipient"); + + b.Property("RecipientName") + .HasMaxLength(300) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "recipientName"); + + b.Property("RecipientPhoto") + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "recipientPhoto"); + + b.Property("RecipientShort") + .HasMaxLength(2) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "recipientShort"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("Conversations"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Messages.Message", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Content") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("ConversationId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("Direction") + .HasColumnType("INTEGER"); + + b.Property("Read") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.HasIndex("ConversationId"); + + b.ToTable("Messages"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Messages.SystemMessage", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AppUserId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("AppUserType") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("Expires") + .HasColumnType("INTEGER"); + + b.Property("Key") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Message") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Read") + .HasColumnType("INTEGER"); + + b.Property("ReadDate") + .HasColumnType("INTEGER"); + + b.Property("Table") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("SystemMessages"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.News.NewsCategory", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("Description") + .HasColumnType("TEXT"); + + b.Property("Image") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("ImageLanguage") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Language") + .IsRequired() + .HasMaxLength(2) + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("OnlineStatus") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("NewsCategories"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Payment.Payout", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Ammount") + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Bic") + .HasMaxLength(4) + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Currency") + .IsRequired() + .HasMaxLength(3) + .HasColumnType("TEXT"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("ExecutionDate") + .HasColumnType("INTEGER"); + + b.Property("Iban") + .IsRequired() + .HasMaxLength(4) + .HasColumnType("TEXT"); + + b.Property("MangoPayBankId") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("MangoPayId") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("MangoPayUserId") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("MangoPayWalletId") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("RefundReasonMessage") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("RefundReasonType") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("Refunded") + .HasColumnType("INTEGER"); + + b.Property("ResultCode") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("ResultMessage") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.Property("WalletId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Payouts"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Payment.TransactionFee", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("Fixed") + .HasColumnType("TEXT"); + + b.Property("PayInType") + .HasColumnType("INTEGER"); + + b.Property("Percent") + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("TransactionFees"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Users.AppUser", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AutoPayout") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "autoPayout"); + + b.Property("BankId") + .HasMaxLength(255) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "bankId"); + + b.Property("BirthDate") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "birthDate"); + + b.Property("Created") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "created"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "firstName"); + + b.Property("KycPassed") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "kycPassed"); + + b.Property("KycPassedDate") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "kycPassedDate"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "lastName"); + + b.Property("Lat") + .HasColumnType("REAL") + .HasAnnotation("Relational:JsonPropertyName", "lat"); + + b.Property("Lng") + .HasColumnType("REAL") + .HasAnnotation("Relational:JsonPropertyName", "lng"); + + b.Property("Locked") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "locked"); + + b.Property("LockedUntil") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "lockedUntil"); + + b.Property("MainResidenceCode") + .HasMaxLength(2) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "mainResidenceCode"); + + b.Property("NationalityCode") + .HasMaxLength(2) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "nationalityCode"); + + b.Property("PaymentId") + .HasMaxLength(255) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "paymentId"); + + b.Property("PaymentTermsAccepted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "paymentTermsAccepted"); + + b.Property("PaymentTermsAcceptedDate") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "paymentTermsAcceptedDate"); + + b.Property("Photo") + .HasMaxLength(500) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "photo"); + + b.Property("PrivacyAccepted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "privacyAccepted"); + + b.Property("PrivacyAcceptedDate") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "privacyAcceptedDate"); + + b.Property("Sex") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "sex"); + + b.Property("TermsAccepted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "termsAccepted"); + + b.Property("TermsAcceptedDate") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "termsAcceptedDate"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "title"); + + b.Property("Type") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "type"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Verified") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "verified"); + + b.Property("VerifiedDate") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "verifiedDate"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("AppUsers"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Users.DogWalkerProfile", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("About") + .HasMaxLength(300) + .HasColumnType("TEXT"); + + b.Property("AcceptedSize") + .HasColumnType("INTEGER"); + + b.Property("AggressionLevel") + .HasColumnType("INTEGER"); + + b.Property("AllowedRequests") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("DifficultAllowed") + .HasColumnType("INTEGER"); + + b.Property("NotAvailable") + .HasColumnType("INTEGER"); + + b.Property("NotAvailableInfo") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("PriceDay") + .HasColumnType("TEXT"); + + b.Property("PriceSitting") + .HasColumnType("TEXT"); + + b.Property("PriceWalk") + .HasColumnType("TEXT"); + + b.Property("PuppyAllowed") + .HasColumnType("INTEGER"); + + b.Property("Radius") + .HasColumnType("REAL"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("DogWalkerProfiles"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Users.User", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("AccessTokenExpires") + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("TEXT"); + + b.Property("LastLoginDate") + .HasColumnType("INTEGER"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("TEXT"); + + b.Property("Photo") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("RefreshTokenExpires") + .HasColumnType("INTEGER"); + + b.Property("RegistrationDate") + .HasColumnType("INTEGER"); + + b.Property("Roles") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Walkers.WalkingTime", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Day") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("DogWalkerId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Enabled") + .HasColumnType("INTEGER"); + + b.Property("End") + .HasColumnType("INTEGER"); + + b.Property("Start") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("WalkingTimes"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Walks.PublicWalkRequest", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("DogCount") + .HasColumnType("INTEGER"); + + b.Property("DogId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("DogOwnerId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("DogWalkerId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("DogsJson") + .HasColumnType("TEXT"); + + b.Property("EndDate") + .HasColumnType("INTEGER"); + + b.Property("Exclusive") + .HasColumnType("INTEGER"); + + b.Property("ExpirationDate") + .HasColumnType("INTEGER"); + + b.Property("Info") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Lat") + .HasColumnType("REAL") + .HasAnnotation("Relational:JsonPropertyName", "lat"); + + b.Property("Lng") + .HasColumnType("REAL") + .HasAnnotation("Relational:JsonPropertyName", "lng"); + + b.Property("PlacedDate") + .HasColumnType("INTEGER"); + + b.Property("Price") + .HasColumnType("TEXT"); + + b.Property("PublicWalkResponseId") + .HasColumnType("TEXT"); + + b.Property("RequestType") + .HasColumnType("INTEGER"); + + b.Property("ResponseCount") + .HasColumnType("INTEGER"); + + b.Property("StartDate") + .HasColumnType("INTEGER"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("PublicWalkRequests"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Walks.PublicWalkRequestWithNames", b => + { + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER"); + + b.Property("DogCount") + .HasColumnType("INTEGER"); + + b.Property("DogId") + .HasColumnType("TEXT"); + + b.Property("DogName") + .HasColumnType("TEXT"); + + b.Property("DogOwnerId") + .HasColumnType("TEXT"); + + b.Property("DogPhoto") + .HasColumnType("TEXT"); + + b.Property("DogWalkerId") + .HasColumnType("TEXT"); + + b.Property("DogsJson") + .HasColumnType("TEXT"); + + b.Property("EndDate") + .HasColumnType("INTEGER"); + + b.Property("Exclusive") + .HasColumnType("INTEGER"); + + b.Property("ExpirationDate") + .HasColumnType("INTEGER"); + + b.Property("Id") + .HasColumnType("TEXT"); + + b.Property("Info") + .HasColumnType("TEXT"); + + b.Property("Lat") + .HasColumnType("REAL"); + + b.Property("Lng") + .HasColumnType("REAL"); + + b.Property("PickupAddress_AddressLine1") + .HasColumnType("TEXT"); + + b.Property("PickupAddress_AddressLine2") + .HasColumnType("TEXT"); + + b.Property("PickupAddress_City") + .HasColumnType("TEXT"); + + b.Property("PickupAddress_CountryCode") + .HasColumnType("TEXT"); + + b.Property("PickupAddress_State") + .HasColumnType("TEXT"); + + b.Property("PickupAddress_Zip") + .HasColumnType("TEXT"); + + b.Property("PlacedDate") + .HasColumnType("INTEGER"); + + b.Property("Price") + .HasColumnType("TEXT"); + + b.Property("PublicWalkResponseId") + .HasColumnType("TEXT"); + + b.Property("RequestType") + .HasColumnType("INTEGER"); + + b.Property("ResponseCount") + .HasColumnType("INTEGER"); + + b.Property("StartDate") + .HasColumnType("INTEGER"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER"); + + b.Property("Version") + .HasColumnType("BLOB"); + + b.ToTable((string)null); + + b.ToView("vw_PublicWalkRequestWithNames", (string)null); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Walks.PublicWalkResponse", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Answer") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("CancellationReason") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("DogWalkerId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Info") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Price") + .HasColumnType("TEXT"); + + b.Property("PublicWalkRequestId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("PublicWalkResponses"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Walks.Walk", b => + { + b.Property("Id") + .HasMaxLength(128) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CancelledBy") + .HasColumnType("INTEGER"); + + b.Property("CancelledReason") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("ComplainReason") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Complained") + .HasColumnType("INTEGER"); + + b.Property("Completed") + .HasColumnType("INTEGER"); + + b.Property("CompletedInfo") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Confirmed") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("INTEGER"); + + b.Property("DeclinedReason") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Defactation") + .HasColumnType("INTEGER"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "deleted"); + + b.Property("DogCount") + .HasColumnType("INTEGER"); + + b.Property("DogOwnerId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("DogWalkerId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("DogsJson") + .HasColumnType("TEXT"); + + b.Property("End") + .HasColumnType("INTEGER"); + + b.Property("Info") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("PaymentStatus") + .HasColumnType("INTEGER"); + + b.Property("PaymentType") + .HasColumnType("INTEGER"); + + b.Property("PickupAddressLat") + .HasColumnType("REAL"); + + b.Property("PickupAddressLng") + .HasColumnType("REAL"); + + b.Property("Price") + .HasColumnType("TEXT"); + + b.Property("PublicWalkRequestId") + .HasMaxLength(128) + .HasColumnType("TEXT"); + + b.Property("ReturnAddressLat") + .HasColumnType("REAL"); + + b.Property("ReturnAddressLng") + .HasColumnType("REAL"); + + b.Property("ServiceType") + .HasColumnType("INTEGER"); + + b.Property("Start") + .HasColumnType("INTEGER"); + + b.Property("Started") + .HasColumnType("INTEGER"); + + b.Property("Status") + .HasColumnType("INTEGER"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.Property("UpdatedAt") + .HasColumnType("INTEGER") + .HasAnnotation("Relational:JsonPropertyName", "updatedAt"); + + b.Property("Version") + .IsConcurrencyToken() + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("BLOB") + .HasAnnotation("Relational:JsonPropertyName", "version"); + + b.HasKey("Id"); + + b.ToTable("Walks"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Dogs.Dog", b => + { + b.HasOne("gehGassiApp.Domain.Dogs.DogRace", null) + .WithMany() + .HasForeignKey("DogRaceId"); + + b.OwnsOne("gehGassiApp.Domain.Common.RatingStatistics", "RatingStatistics", b1 => + { + b1.Property("DogId") + .HasColumnType("TEXT"); + + b1.Property("AverageRating") + .HasColumnType("TEXT"); + + b1.Property("TotalPoints") + .HasColumnType("TEXT"); + + b1.Property("TotalRatings") + .HasColumnType("INTEGER"); + + b1.HasKey("DogId"); + + b1.ToTable("Dogs"); + + b1.WithOwner() + .HasForeignKey("DogId"); + }); + + b.Navigation("RatingStatistics"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Messages.Message", b => + { + b.HasOne("gehGassiApp.Domain.Messages.Conversation", null) + .WithMany() + .HasForeignKey("ConversationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Users.AppUser", b => + { + b.OwnsOne("gehGassiApp.Domain.Common.ContactMin", "Contact", b1 => + { + b1.Property("AppUserId") + .HasColumnType("TEXT"); + + b1.Property("Email") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "email"); + + b1.Property("Mobile") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "mobile"); + + b1.Property("Phone") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "phone"); + + b1.HasKey("AppUserId"); + + b1.ToTable("AppUsers"); + + b1.HasAnnotation("Relational:JsonPropertyName", "contact"); + + b1.WithOwner() + .HasForeignKey("AppUserId"); + }); + + b.OwnsOne("gehGassiApp.Domain.Common.SocialMedia", "SocialMedia", b1 => + { + b1.Property("AppUserId") + .HasColumnType("TEXT"); + + b1.Property("Blog") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Facebook") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Instagram") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("LinkedIn") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Pinterest") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Reddit") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Show") + .HasColumnType("INTEGER"); + + b1.Property("SnapChat") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("TikTok") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Twitter") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Vimeo") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("Xing") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.Property("YouTube") + .HasMaxLength(255) + .HasColumnType("TEXT"); + + b1.HasKey("AppUserId"); + + b1.ToTable("AppUsers"); + + b1.HasAnnotation("Relational:JsonPropertyName", "socialMedia"); + + b1.WithOwner() + .HasForeignKey("AppUserId"); + }); + + b.OwnsOne("gehGassiApp.Domain.Common.Address", "Address", b1 => + { + b1.Property("AppUserId") + .HasColumnType("TEXT"); + + b1.Property("AddressLine1") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine1"); + + b1.Property("AddressLine2") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine2"); + + b1.Property("City") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "city"); + + b1.Property("CountryCode") + .IsRequired() + .HasMaxLength(2) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "countryCode"); + + b1.Property("State") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "state"); + + b1.Property("Zip") + .HasMaxLength(20) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "zip"); + + b1.HasKey("AppUserId"); + + b1.ToTable("AppUsers"); + + b1.HasAnnotation("Relational:JsonPropertyName", "address"); + + b1.WithOwner() + .HasForeignKey("AppUserId"); + }); + + b.OwnsOne("gehGassiApp.Domain.Common.RatingStatistics", "RatingStatistics", b1 => + { + b1.Property("AppUserId") + .HasColumnType("TEXT"); + + b1.Property("AverageRating") + .HasColumnType("TEXT"); + + b1.Property("TotalPoints") + .HasColumnType("TEXT"); + + b1.Property("TotalRatings") + .HasColumnType("INTEGER"); + + b1.HasKey("AppUserId"); + + b1.ToTable("AppUsers"); + + b1.HasAnnotation("Relational:JsonPropertyName", "ratingStatistics"); + + b1.WithOwner() + .HasForeignKey("AppUserId"); + }); + + b.OwnsOne("gehGassiApp.Domain.Common.RatingStatistics", "RatingStatisticsWalker", b1 => + { + b1.Property("AppUserId") + .HasColumnType("TEXT"); + + b1.Property("AverageRating") + .HasColumnType("TEXT"); + + b1.Property("TotalPoints") + .HasColumnType("TEXT"); + + b1.Property("TotalRatings") + .HasColumnType("INTEGER"); + + b1.HasKey("AppUserId"); + + b1.ToTable("AppUsers"); + + b1.HasAnnotation("Relational:JsonPropertyName", "ratingStatisticsWalker"); + + b1.WithOwner() + .HasForeignKey("AppUserId"); + }); + + b.Navigation("Address"); + + b.Navigation("Contact"); + + b.Navigation("RatingStatistics"); + + b.Navigation("RatingStatisticsWalker"); + + b.Navigation("SocialMedia"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Walks.PublicWalkRequest", b => + { + b.OwnsOne("gehGassiApp.Domain.Common.Address", "PickupAddress", b1 => + { + b1.Property("PublicWalkRequestId") + .HasColumnType("TEXT"); + + b1.Property("AddressLine1") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine1"); + + b1.Property("AddressLine2") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine2"); + + b1.Property("City") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "city"); + + b1.Property("CountryCode") + .IsRequired() + .HasMaxLength(2) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "countryCode"); + + b1.Property("State") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "state"); + + b1.Property("Zip") + .HasMaxLength(20) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "zip"); + + b1.HasKey("PublicWalkRequestId"); + + b1.ToTable("PublicWalkRequests"); + + b1.WithOwner() + .HasForeignKey("PublicWalkRequestId"); + }); + + b.Navigation("PickupAddress"); + }); + + modelBuilder.Entity("gehGassiApp.Domain.Walks.Walk", b => + { + b.OwnsOne("gehGassiApp.Domain.Common.Address", "PickupAddress", b1 => + { + b1.Property("WalkId") + .HasColumnType("TEXT"); + + b1.Property("AddressLine1") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine1"); + + b1.Property("AddressLine2") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine2"); + + b1.Property("City") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "city"); + + b1.Property("CountryCode") + .IsRequired() + .HasMaxLength(2) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "countryCode"); + + b1.Property("State") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "state"); + + b1.Property("Zip") + .HasMaxLength(20) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "zip"); + + b1.HasKey("WalkId"); + + b1.ToTable("Walks"); + + b1.WithOwner() + .HasForeignKey("WalkId"); + }); + + b.OwnsOne("gehGassiApp.Domain.Common.Address", "ReturnAddress", b1 => + { + b1.Property("WalkId") + .HasColumnType("TEXT"); + + b1.Property("AddressLine1") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine1"); + + b1.Property("AddressLine2") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "addressLine2"); + + b1.Property("City") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "city"); + + b1.Property("CountryCode") + .IsRequired() + .HasMaxLength(2) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "countryCode"); + + b1.Property("State") + .HasMaxLength(100) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "state"); + + b1.Property("Zip") + .HasMaxLength(20) + .HasColumnType("TEXT") + .HasAnnotation("Relational:JsonPropertyName", "zip"); + + b1.HasKey("WalkId"); + + b1.ToTable("Walks"); + + b1.WithOwner() + .HasForeignKey("WalkId"); + }); + + b.Navigation("PickupAddress"); + + b.Navigation("ReturnAddress"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/gehGassiApp/gehGassiApp.Data/Migrations/20250706144607_Walk_PaymentType_Added.cs b/gehGassiApp/gehGassiApp.Data/Migrations/20250706144607_Walk_PaymentType_Added.cs new file mode 100644 index 0000000..e8ca947 --- /dev/null +++ b/gehGassiApp/gehGassiApp.Data/Migrations/20250706144607_Walk_PaymentType_Added.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace gehGassiApp.Data.Migrations +{ + /// + public partial class Walk_PaymentType_Added : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "PaymentType", + table: "Walks", + type: "INTEGER", + nullable: false, + defaultValue: 0); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "PaymentType", + table: "Walks"); + } + } +} diff --git a/gehGassiApp/gehGassiApp.Data/Migrations/LocalDbContextModelSnapshot.cs b/gehGassiApp/gehGassiApp.Data/Migrations/LocalDbContextModelSnapshot.cs index 3f3be2c..f7ac548 100644 --- a/gehGassiApp/gehGassiApp.Data/Migrations/LocalDbContextModelSnapshot.cs +++ b/gehGassiApp/gehGassiApp.Data/Migrations/LocalDbContextModelSnapshot.cs @@ -15,7 +15,7 @@ namespace gehGassiApp.Data.Migrations protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); + modelBuilder.HasAnnotation("ProductVersion", "8.0.12"); modelBuilder.Entity("gehGassiApp.Domain.Common.Rating", b => { @@ -1345,6 +1345,9 @@ namespace gehGassiApp.Data.Migrations b.Property("PaymentStatus") .HasColumnType("INTEGER"); + b.Property("PaymentType") + .HasColumnType("INTEGER"); + b.Property("PickupAddressLat") .HasColumnType("REAL"); diff --git a/gehGassiApp/gehGassiApp.DbConfig/Config.db b/gehGassiApp/gehGassiApp.DbConfig/Config.db index a19d0a6..5545764 100644 Binary files a/gehGassiApp/gehGassiApp.DbConfig/Config.db and b/gehGassiApp/gehGassiApp.DbConfig/Config.db differ diff --git a/gehGassiApp/gehGassiApp.Domain/Common/Enums.cs b/gehGassiApp/gehGassiApp.Domain/Common/Enums.cs index 6742872..5cb4628 100644 --- a/gehGassiApp/gehGassiApp.Domain/Common/Enums.cs +++ b/gehGassiApp/gehGassiApp.Domain/Common/Enums.cs @@ -130,7 +130,20 @@ namespace gehGassiApp.Domain.Common /// GehGassi = 10 } - + /// + /// Zahlungsart für einen Walk + /// + public enum WalkPaymentType + { + /// + /// Mit MangoPay bezahlen (z.B. Kreditkarte) + /// + MangoPay = 1, + /// + /// Barzahlung + /// + Cash = 10 + } /// /// Zahlungsstatus in der App /// diff --git a/gehGassiApp/gehGassiApp.Domain/Walks/Walk.cs b/gehGassiApp/gehGassiApp.Domain/Walks/Walk.cs index ba12ac6..441caa3 100644 --- a/gehGassiApp/gehGassiApp.Domain/Walks/Walk.cs +++ b/gehGassiApp/gehGassiApp.Domain/Walks/Walk.cs @@ -176,7 +176,11 @@ namespace gehGassiApp.Domain.Walks /// [Required] public PaymentStatus PaymentStatus { get; set; } - + /// + /// Welche Art von Bezahlung wurde verwendet + /// + [Required] + public WalkPaymentType PaymentType { get; set; } /// /// Datum der Erstellung des Walks /// @@ -437,7 +441,11 @@ namespace gehGassiApp.Domain.Walks /// Zahlungsstatus des Walks /// public PaymentStatus PaymentStatus { get; set; } - + /// + /// Welche Art von Bezahlung wurde verwendet + /// + [Required] + public WalkPaymentType PaymentType { get; set; } /// /// Id des Gutscheins der verwendet wurde, wenn einer verwendet wurde /// diff --git a/gehGassiApp/gehGassiApp/MauiProgram.cs b/gehGassiApp/gehGassiApp/MauiProgram.cs index 2817271..27eb2c2 100644 --- a/gehGassiApp/gehGassiApp/MauiProgram.cs +++ b/gehGassiApp/gehGassiApp/MauiProgram.cs @@ -103,7 +103,7 @@ public static class MauiProgram fonts.AddFont("Inter-Medium.ttf", "InterMedium"); fonts.AddFont("Inter-SemiBold.ttf", "InterSemiBold"); fonts.AddFont("icomoon.ttf", "IconMoon"); - fonts.AddFont("MaterialIcons-Regular.ttf", "IconFont"); + fonts.AddFont("MaterialIcons-Regular.ttf", "MaterialIconsRegular"); }).UseLocalNotifications() .ConfigureMauiHandlers((handlers) => { diff --git a/gehGassiApp/gehGassiApp/Platforms/iOS/Info.plist b/gehGassiApp/gehGassiApp/Platforms/iOS/Info.plist index 2af6d8d..078b812 100644 --- a/gehGassiApp/gehGassiApp/Platforms/iOS/Info.plist +++ b/gehGassiApp/gehGassiApp/Platforms/iOS/Info.plist @@ -27,8 +27,6 @@ Assets.xcassets/appicon.appiconset CFBundleIdentifier - CFBundleShortVersionString - 1.271 NSAppTransportSecurity NSAllowsArbitraryLoads @@ -69,7 +67,5 @@ remote-notification - CFBundleVersion - 271 diff --git a/gehGassiApp/gehGassiApp/Resources/Templates/ControlTemplates.xaml b/gehGassiApp/gehGassiApp/Resources/Templates/ControlTemplates.xaml index be172fe..6de3e13 100644 --- a/gehGassiApp/gehGassiApp/Resources/Templates/ControlTemplates.xaml +++ b/gehGassiApp/gehGassiApp/Resources/Templates/ControlTemplates.xaml @@ -184,7 +184,7 @@ @@ -217,7 +217,7 @@ @@ -505,7 +505,7 @@ Background="Transparent" Command="{TemplateBinding BindingContext.NavigateBackCommand}" FontAttributes="Bold" - FontFamily="IconFont" + FontFamily="MaterialIconsRegular" FontSize="40" HorizontalOptions="End" Text="close" diff --git a/gehGassiApp/gehGassiApp/Views/Dogs/DogAddView.xaml b/gehGassiApp/gehGassiApp/Views/Dogs/DogAddView.xaml index 71ca15e..f327783 100644 --- a/gehGassiApp/gehGassiApp/Views/Dogs/DogAddView.xaml +++ b/gehGassiApp/gehGassiApp/Views/Dogs/DogAddView.xaml @@ -77,7 +77,7 @@ WidthRequest="40"> diff --git a/gehGassiApp/gehGassiApp/Views/Dogs/DogUpdateView.xaml b/gehGassiApp/gehGassiApp/Views/Dogs/DogUpdateView.xaml index 4f17e7c..ef051c1 100644 --- a/gehGassiApp/gehGassiApp/Views/Dogs/DogUpdateView.xaml +++ b/gehGassiApp/gehGassiApp/Views/Dogs/DogUpdateView.xaml @@ -76,7 +76,7 @@ WidthRequest="40"> diff --git a/gehGassiApp/gehGassiApp/Views/Onboarding/OnboardingView.xaml b/gehGassiApp/gehGassiApp/Views/Onboarding/OnboardingView.xaml index e1545a1..dd06eef 100644 --- a/gehGassiApp/gehGassiApp/Views/Onboarding/OnboardingView.xaml +++ b/gehGassiApp/gehGassiApp/Views/Onboarding/OnboardingView.xaml @@ -136,7 +136,7 @@ BorderWidth="1" Command="{Binding PreviousStepCommand}" CornerRadius="30" - FontFamily="IconFont" + FontFamily="MaterialIconsRegular" FontSize="40" HeightRequest="60" HorizontalOptions="Start" @@ -158,7 +158,7 @@ BorderWidth="1" Command="{Binding NextStepCommand}" CornerRadius="30" - FontFamily="IconFont" + FontFamily="MaterialIconsRegular" FontSize="40" HeightRequest="60" HorizontalOptions="End" diff --git a/gehGassiApp/gehGassiApp/Views/Popups/SubscriptionOfferPopup.xaml b/gehGassiApp/gehGassiApp/Views/Popups/SubscriptionOfferPopup.xaml index 815d965..f7d12d6 100644 --- a/gehGassiApp/gehGassiApp/Views/Popups/SubscriptionOfferPopup.xaml +++ b/gehGassiApp/gehGassiApp/Views/Popups/SubscriptionOfferPopup.xaml @@ -36,7 +36,7 @@ Background="Transparent" Command="{Binding DeclineCommand}" FontAttributes="Bold" - FontFamily="IconFont" + FontFamily="MaterialIconsRegular" FontSize="40" HorizontalOptions="End" Text="close" @@ -53,7 +53,7 @@