gehgassi_app/CLAUDE.md
Max Mannstein c03154672b Merge features/paymenttype-cash into net9-upgrade
- 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
2025-12-02 13:51:15 +01:00

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.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)