# GBCM Server API Contrats d'API et DTOs pour la plateforme GBCM (Global Business Consulting and Management). ## Description Ce module contient les définitions d'interfaces, DTOs (Data Transfer Objects), énumérations et exceptions partagées entre le client et le serveur GBCM. ## Technologies - **Java 17** - Langage de programmation - **Jakarta Validation 3.0** - Validation des données - **Jakarta REST 3.1** - Annotations REST - **Jackson** - Sérialisation JSON - **Swagger/OpenAPI 3** - Documentation API - **Maven** - Gestion des dépendances ## Structure du projet ``` src/main/java/com/gbcm/server/api/ ├── dto/ # Data Transfer Objects │ ├── auth/ # DTOs authentification │ ├── user/ # DTOs utilisateurs │ ├── coaching/ # DTOs coaching │ ├── workshop/ # DTOs ateliers │ ├── billing/ # DTOs facturation │ └── common/ # DTOs communs ├── interfaces/ # Interfaces de service │ ├── AuthService.java │ ├── UserService.java │ ├── CoachingService.java │ └── WorkshopService.java ├── enums/ # Énumérations │ ├── UserRole.java │ ├── ServiceType.java │ └── PaymentStatus.java └── exceptions/ # Exceptions métier ├── GBCMException.java ├── AuthenticationException.java └── ValidationException.java ``` ## Installation ```bash git clone https://git.lions.dev/gbcm/gbcm-server-api.git cd gbcm-server-api mvn clean install ``` ## Utilisation Ce module est une dépendance partagée utilisée par : - `gbcm-client-impl-quarkus` - Interface web - `gbcm-server-impl-quarkus` - Implémentation serveur - `gbcm-mobile-app` - Application mobile (via REST) ### Ajout de la dépendance ```xml com.gbcm gbcm-server-api 1.0.0-SNAPSHOT ``` ## DTOs Principaux ### Authentification - `LoginRequestDTO` - Requête de connexion - `LoginResponseDTO` - Réponse de connexion - `UserDTO` - Informations utilisateur ### Services - `WorkshopDTO` - Informations atelier - `CoachingSessionDTO` - Session de coaching - `InvoiceDTO` - Facturation ## Interfaces de Service ### AuthService - `login()` - Authentification - `logout()` - Déconnexion - `refreshToken()` - Rafraîchissement token - `validateToken()` - Validation token ### UserService - `createUser()` - Création utilisateur - `updateUser()` - Mise à jour - `getUserById()` - Récupération par ID ## Énumérations ### UserRole - `ADMIN` - Administrateur - `COACH` - Coach/Consultant - `CLIENT` - Client - `PROSPECT` - Prospect - `MANAGER` - Manager ## Validation Toutes les DTOs incluent des annotations de validation Jakarta : - `@NotNull`, `@NotBlank` - Champs obligatoires - `@Email` - Format email - `@Size` - Taille des chaînes - `@Valid` - Validation en cascade ## Documentation OpenAPI La documentation API est générée automatiquement via les annotations Swagger : - Descriptions des endpoints - Schémas des DTOs - Exemples de requêtes/réponses ## Tests ```bash mvn test ``` ## Build ```bash # Build standard mvn clean package # Installation locale mvn clean install # Déploiement (si configuré) mvn deploy ``` ## Versioning Ce module suit le versioning sémantique : - `MAJOR.MINOR.PATCH` - Changements breaking = MAJOR - Nouvelles fonctionnalités = MINOR - Corrections de bugs = PATCH ## Support - Email: support@gbcm.com - Documentation: https://docs.gbcm.com/api ## Licence Propriétaire - GBCM LLC © 2024