- Add PaymentInfoPopup for cash payment type selection - Adapt popup to .NET 9 IPopupService pattern - Update BookWalkViewModel and PublicWalkResponseShowViewModel to use IPopupService - Add cashonly.svg icon - Extend IPublicWalkRequestService.AcceptResponseAsync with paymentType parameter
3.3 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
gehGassiApp is a .NET MAUI mobile application for iOS and Android that connects dog owners with dog walkers. The app enables users to find dog walkers, book walks, manage payments, and communicate via real-time messaging.
Build Commands
Build solution:
dotnet build gehGassiApp/gehGassiApp.sln
Build specific configuration (Debug, Release, Staging, DebugStaging):
dotnet build gehGassiApp/gehGassiApp.sln -c Debug
Build for iOS:
dotnet build gehGassiApp/gehGassiApp/gehGassiApp.csproj -f net8.0-ios
Build for Android:
dotnet build gehGassiApp/gehGassiApp/gehGassiApp.csproj -f net8.0-android
Database Migrations
Migrations use EF Core with the DbConfig project as startup project:
# Add migration
add-migration MigrationName -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig
# Remove last migration
remove-migration -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig
# Update database
update-database -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig
Architecture
Solution Structure
The solution follows a layered architecture with these projects:
- gehGassiApp - Main MAUI app with Views, ViewModels, Controls, and platform-specific code
- gehGassiApp.Core - Business logic layer: services, interfaces, messaging, helpers
- gehGassiApp.Domain - Domain models organized by feature (Dogs, Walks, Users, Payments, etc.)
- gehGassiApp.Data - Data access layer with EF Core, SQLite local database, Repository/UnitOfWork pattern
- gehGassiApp.DbConfig - Console app for running EF Core migrations
- gehGassi.LocalNotifications - Cross-platform local push notification library
- gehGassi.Toolkit - Shared utilities
- gehGassi.Dto - Shared DTOs (external project from backend repo at
../../gehGassi_backend/gehGassi.Dto)
MVVM Pattern
The app uses CommunityToolkit.Mvvm for MVVM implementation:
- Views are XAML pages in
gehGassiApp/Views/ - ViewModels are in
gehGassiApp/ViewModels/ - Views and ViewModels are registered in
MauiProgram.csvia DI
Dependency Injection
Services are registered as singletons in MauiProgram.cs. Key service interfaces are defined in gehGassiApp.Core/Interfaces/.
Backend Communication
- REST API communication via
ICommunicationService - Real-time messaging via SignalR through
IAppHubService - Backend URL:
https://backend.gehgassi.com(production)
Local Data
- SQLite database using EF Core
- Database path:
gehgassidb.dbin app local storage - Repository pattern via
IRepository<T>andIUnitOfWork
Build Configurations
| Configuration | Environment | App ID |
|---|---|---|
| Debug | Local dev server | com.gehgassi.local |
| DebugStaging | Staging server (debug) | com.gehgassi.local |
| Staging | Staging server | com.gehgassi.local |
| Release | Production | com.gehgassi.gehgassi |
Key Dependencies
- Microsoft.Maui.Controls 8.0.100
- CommunityToolkit.Maui / CommunityToolkit.Mvvm
- Microsoft.EntityFrameworkCore.Sqlite 8.0.12
- Microsoft.AspNetCore.SignalR.Client 8.0.12
- TinyInsights.Maui.AppInsights (Azure Application Insights)
- Plugin.InAppBilling (in-app purchases)