- 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
100 lines
3.3 KiB
Markdown
100 lines
3.3 KiB
Markdown
# 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:
|
|
```bash
|
|
dotnet build gehGassiApp/gehGassiApp.sln
|
|
```
|
|
|
|
Build specific configuration (Debug, Release, Staging, DebugStaging):
|
|
```bash
|
|
dotnet build gehGassiApp/gehGassiApp.sln -c Debug
|
|
```
|
|
|
|
Build for iOS:
|
|
```bash
|
|
dotnet build gehGassiApp/gehGassiApp/gehGassiApp.csproj -f net8.0-ios
|
|
```
|
|
|
|
Build for Android:
|
|
```bash
|
|
dotnet build gehGassiApp/gehGassiApp/gehGassiApp.csproj -f net8.0-android
|
|
```
|
|
|
|
## Database Migrations
|
|
|
|
Migrations use EF Core with the DbConfig project as startup project:
|
|
```powershell
|
|
# 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.cs` via 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.db` in app local storage
|
|
- Repository pattern via `IRepository<T>` and `IUnitOfWork`
|
|
|
|
## 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)
|