feat: Version 3.3.4 - Nouvelle architecture pages, optimisations widgets Flutter et API

- Mise à jour VERSION vers 3.3.4
- Optimisations et révisions architecture API (deploy-api.sh, scripts de migration)
- Ajout documentation Stripe Tap to Pay complète
- Migration vers polices Inter Variable pour Flutter
- Optimisations build Android et nettoyage fichiers temporaires
- Amélioration système de déploiement avec gestion backups
- Ajout scripts CRON et migrations base de données

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
pierre
2025-10-05 20:11:15 +02:00
parent 242a90720e
commit b6584c83fa
1625 changed files with 145669 additions and 51249 deletions

View File

@@ -17,8 +17,13 @@ import 'package:geosector_app/core/services/chat_manager.dart';
import 'package:geosector_app/presentation/auth/splash_page.dart';
import 'package:geosector_app/presentation/auth/login_page.dart';
import 'package:geosector_app/presentation/auth/register_page.dart';
import 'package:geosector_app/presentation/admin/admin_dashboard_page.dart';
import 'package:geosector_app/presentation/user/user_dashboard_page.dart';
import 'package:geosector_app/presentation/pages/history_page.dart';
import 'package:geosector_app/presentation/pages/home_page.dart';
import 'package:geosector_app/presentation/pages/map_page.dart';
import 'package:geosector_app/presentation/pages/messages_page.dart';
import 'package:geosector_app/presentation/pages/amicale_page.dart';
import 'package:geosector_app/presentation/pages/operations_page.dart';
import 'package:geosector_app/presentation/pages/field_mode_page.dart';
// Instances globales des repositories (plus besoin d'injecter ApiService)
final operationRepository = OperationRepository();
@@ -203,21 +208,121 @@ class _GeosectorAppState extends State<GeosectorApp> with WidgetsBindingObserver
return const RegisterPage();
},
),
// NOUVELLE ARCHITECTURE: Pages user avec sous-routes comme admin
GoRoute(
path: '/user',
name: 'user',
builder: (context, state) {
debugPrint('GoRoute: Affichage de UserDashboardPage');
return const UserDashboardPage();
debugPrint('GoRoute: Redirection vers /user/dashboard');
// Rediriger directement vers dashboard au lieu d'utiliser UserDashboardPage
return const HomePage();
},
routes: [
// Sous-route pour le dashboard/home
GoRoute(
path: 'dashboard',
name: 'user-dashboard',
builder: (context, state) {
debugPrint('GoRoute: Affichage de HomePage (unifiée)');
return const HomePage();
},
),
// Sous-route pour l'historique
GoRoute(
path: 'history',
name: 'user-history',
builder: (context, state) {
debugPrint('GoRoute: Affichage de HistoryPage (unifiée)');
return const HistoryPage();
},
),
// Sous-route pour les messages
GoRoute(
path: 'messages',
name: 'user-messages',
builder: (context, state) {
debugPrint('GoRoute: Affichage de MessagesPage (unifiée)');
return const MessagesPage();
},
),
// Sous-route pour la carte
GoRoute(
path: 'map',
name: 'user-map',
builder: (context, state) {
debugPrint('GoRoute: Affichage de MapPage (unifiée)');
return const MapPage();
},
),
// Sous-route pour le mode terrain
GoRoute(
path: 'field-mode',
name: 'user-field-mode',
builder: (context, state) {
debugPrint('GoRoute: Affichage de FieldModePage (unifiée)');
return const FieldModePage();
},
),
],
),
// NOUVELLE ARCHITECTURE: Pages admin autonomes
GoRoute(
path: '/admin',
name: 'admin',
builder: (context, state) {
debugPrint('GoRoute: Affichage de AdminDashboardPage');
return const AdminDashboardPage();
debugPrint('GoRoute: Affichage de HomePage (unifiée)');
return const HomePage();
},
routes: [
// Sous-route pour l'historique avec membre optionnel
GoRoute(
path: 'history',
name: 'admin-history',
builder: (context, state) {
final memberId = state.uri.queryParameters['memberId'];
debugPrint('GoRoute: Affichage de HistoryPage (admin) avec memberId=$memberId');
return HistoryPage(
memberId: memberId != null ? int.tryParse(memberId) : null,
);
},
),
// Sous-route pour la carte
GoRoute(
path: 'map',
name: 'admin-map',
builder: (context, state) {
debugPrint('GoRoute: Affichage de MapPage pour admin');
return const MapPage();
},
),
// Sous-route pour les messages
GoRoute(
path: 'messages',
name: 'admin-messages',
builder: (context, state) {
debugPrint('GoRoute: Affichage de MessagesPage (unifiée)');
return const MessagesPage();
},
),
// Sous-route pour amicale & membres (role 2 uniquement)
GoRoute(
path: 'amicale',
name: 'admin-amicale',
builder: (context, state) {
debugPrint('GoRoute: Affichage de AmicalePage (unifiée)');
return const AmicalePage();
},
),
// Sous-route pour opérations (role 2 uniquement)
GoRoute(
path: 'operations',
name: 'admin-operations',
builder: (context, state) {
debugPrint('GoRoute: Affichage de OperationsPage (unifiée)');
return const OperationsPage();
},
),
],
),
],
redirect: (context, state) {