{"openapi":"3.1.0","info":{"title":"oauth-civicperson-backend","version":"1.0.0"},"paths":{"/api/v1/persons/list":{"get":{"tags":["persons"],"summary":"List Persons","description":"List persons for a country with offset/limit pagination.\n\nS2S endpoint for bulk listing (graph-engine ETL, etc.).\nNo text search — returns all persons matching filters.\ncountry_code uses the partition key for efficient ScyllaDB reads.","operationId":"list_persons_api_v1_persons_list_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code (partition key)","title":"Country Code"},"description":"Country code (partition key)"},{"name":"person_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: HUMAN, MORAL, GROUP","title":"Person Type"},"description":"Filter by type: HUMAN, MORAL, GROUP"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of records to skip","default":0,"title":"Offset"},"description":"Number of records to skip"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"description":"Max records to return (up to 500)","default":100,"title":"Limit"},"description":"Max records to return (up to 500)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonResponse"},"title":"Response List Persons Api V1 Persons List Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/search":{"get":{"tags":["persons"],"summary":"Search Persons","description":"Rechercher des personnes par nom ou industrie.\n\nUtilisé notamment pour:\n- Rechercher un établissement scolaire (MORAL + EDUCATION)\n- Rechercher des entreprises pour les missions\n- Rechercher des groupes\n\nImportant: country_code utilise la partition key pour eviter un full scan ScyllaDB.","operationId":"search_persons_api_v1_persons_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Search query — multi-token: 'lycee hugo' matches 'Lycee Victor Hugo'","title":"Query"},"description":"Search query — multi-token: 'lycee hugo' matches 'Lycee Victor Hugo'"},{"name":"person_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: HUMAN, MORAL, GROUP","title":"Person Type"},"description":"Filter by type: HUMAN, MORAL, GROUP"},{"name":"moral_industry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by industry for MORAL","title":"Moral Industry"},"description":"Filter by industry for MORAL"},{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by country","title":"Country Code"},"description":"Filter by country"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonResponse"},"title":"Response Search Persons Api V1 Persons Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/schools":{"post":{"tags":["persons"],"summary":"Create School","description":"Creer un etablissement scolaire (Person MORAL EDUCATION).\n\nEndpoint leger pour le parcours etudiant — tout citoyen authentifie\npeut enregistrer un etablissement.","operationId":"create_school_api_v1_persons_schools_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/persons/":{"post":{"tags":["persons"],"summary":"Create Person","description":"Créer ou mettre à jour une personne (HUMAN, MORAL, GROUP).\n\nAuthentification requise.\n\nRègles de permissions:\n- HUMAN: L'utilisateur ne peut créer que son propre profil\n- MORAL: Nécessite une permission accordée par Profil Manager\n- GROUP: Nécessite une permission accordée par Profil Manager","operationId":"create_person_api_v1_persons__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/persons/by-identity/{identity_user_id}":{"get":{"tags":["persons"],"summary":"Get Person By Identity","description":"Récupérer une personne par son identity_user_id (UUID de l'utilisateur Identity).\n\nAuthentification requise.\n\nUtilisé par l'app mobile pour obtenir le person_code à partir de l'identity_user_id.","operationId":"get_person_by_identity_api_v1_persons_by_identity__identity_user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"identity_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Identity User Id"}},{"name":"person_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: HUMAN, MORAL, GROUP","title":"Person Type"},"description":"Filter by type: HUMAN, MORAL, GROUP"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/me":{"get":{"tags":["persons"],"summary":"Get My Person","description":"Récupérer mon profil Person à partir de mon token d'authentification.\n\nL'endpoint utilise l'identity_user_id du token JWT pour trouver le Person correspondant.\nPar défaut, retourne le profil HUMAN.","operationId":"get_my_person_api_v1_persons_me_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Type: HUMAN, MORAL, GROUP","default":"HUMAN","title":"Person Type"},"description":"Type: HUMAN, MORAL, GROUP"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}":{"get":{"tags":["persons"],"summary":"Get Person","description":"Récupérer une personne par son code unique.\n\nAuthentification optionnelle (pour les profils publics).","operationId":"get_person_api_v1_persons__person_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["persons"],"summary":"Update Person","description":"Mettre à jour une personne.\n\nAuthentification requise.\nL'utilisateur ne peut mettre à jour que ses propres entités.","operationId":"update_person_api_v1_persons__person_code__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/documents":{"get":{"tags":["documents"],"summary":"Liste des documents d'une personne","description":"Retourne tous les documents lies a une personne. Seul le proprietaire peut consulter ses documents.","operationId":"list_person_documents_api_v1_persons__person_code__documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"document_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre par type: SELFIE, CNI, PASSPORT, DIPLOMA...","title":"Document Type"},"description":"Filtre par type: SELFIE, CNI, PASSPORT, DIPLOMA..."},{"name":"document_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre par categorie: BIOMETRIC, IDENTITY, EDUCATION...","title":"Document Category"},"description":"Filtre par categorie: BIOMETRIC, IDENTITY, EDUCATION..."},{"name":"verification_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre par statut: PENDING, VERIFIED, REJECTED","title":"Verification Status"},"description":"Filtre par statut: PENDING, VERIFIED, REJECTED"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filtrer les documents actifs","default":true,"title":"Is Active"},"description":"Filtrer les documents actifs"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"description":"Nombre max de resultats","default":50,"title":"Limit"},"description":"Nombre max de resultats"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDocumentsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/documents/biometric-summary":{"get":{"tags":["documents"],"summary":"Resume biometrique d'une personne","description":"Resume du statut de verification biometrique avec les etapes et le statut des documents.","operationId":"get_biometric_summary_api_v1_persons__person_code__documents_biometric_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BiometricSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/documents/{document_id}":{"get":{"tags":["documents"],"summary":"Detail d'un document","description":"Retourne les metadonnees completes d'un document. Incremente le compteur de vues.","operationId":"get_document_detail_api_v1_persons__person_code__documents__document_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDocumentDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/profiles/":{"post":{"tags":["profiles"],"summary":"Create Profile","description":"Create or update a civic profile.","operationId":"create_profile_api_v1_profiles__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicProfileCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/profiles/{profile_code}":{"get":{"tags":["profiles"],"summary":"Get Profile","description":"Get a civic profile by code.","operationId":"get_profile_api_v1_profiles__profile_code__get","parameters":[{"name":"profile_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/engagements/":{"post":{"tags":["engagements"],"summary":"Create Engagement","description":"Create or update a civic engagement.","operationId":"create_engagement_api_v1_engagements__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEngagementCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEngagementResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/engagements/{engagement_code}":{"get":{"tags":["engagements"],"summary":"Get Engagement","description":"Get a civic engagement by code.","operationId":"get_engagement_api_v1_engagements__engagement_code__get","parameters":[{"name":"engagement_code","in":"path","required":true,"schema":{"type":"string","title":"Engagement Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEngagementResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events/":{"post":{"tags":["events"],"summary":"Create Event","description":"Create or update a civic event (election, protest, school trip, etc.).","operationId":"create_event_api_v1_events__post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEventCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEventResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["events"],"summary":"List Events","description":"List events with optional filters.","operationId":"list_events_api_v1_events__get","parameters":[{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}},{"name":"event_type","in":"query","required":false,"schema":{"type":"string","title":"Event Type"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CivicEventResponse"},"title":"Response List Events Api V1 Events  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events/{event_code}":{"get":{"tags":["events"],"summary":"Get Event","description":"Get an event by its unique code.","operationId":"get_event_api_v1_events__event_code__get","parameters":[{"name":"event_code","in":"path","required":true,"schema":{"type":"string","title":"Event Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEventResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["events"],"summary":"Update Event","description":"Update an event's mutable fields.","operationId":"update_event_api_v1_events__event_code__patch","parameters":[{"name":"event_code","in":"path","required":true,"schema":{"type":"string","title":"Event Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEventUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CivicEventResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/event-participations/":{"post":{"tags":["event-participations"],"summary":"Create Participation","description":"Create or update a person's participation in an event.","operationId":"create_participation_api_v1_event_participations__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEventParticipationCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEventParticipationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/event-participations/{participation_code}":{"get":{"tags":["event-participations"],"summary":"Get Participation","description":"Get a participation by its unique code.","operationId":"get_participation_api_v1_event_participations__participation_code__get","parameters":[{"name":"participation_code","in":"path","required":true,"schema":{"type":"string","title":"Participation Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEventParticipationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["event-participations"],"summary":"Update Participation","description":"Update a participation's mutable fields.","operationId":"update_participation_api_v1_event_participations__participation_code__patch","parameters":[{"name":"participation_code","in":"path","required":true,"schema":{"type":"string","title":"Participation Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEventParticipationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEventParticipationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/event-participations/person/{person_id}":{"get":{"tags":["event-participations"],"summary":"List Person Participations","description":"List all participations for a specific person.","operationId":"list_person_participations_api_v1_event_participations_person__person_id__get","parameters":[{"name":"person_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Person Id"}},{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonEventParticipationResponse"},"title":"Response List Person Participations Api V1 Event Participations Person  Person Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/event-participations/event/{event_id}":{"get":{"tags":["event-participations"],"summary":"List Event Participations","description":"List all participations for a specific event.","operationId":"list_event_participations_api_v1_event_participations_event__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Id"}},{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonEventParticipationResponse"},"title":"Response List Event Participations Api V1 Event Participations Event  Event Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/pillars/":{"get":{"tags":["pillars"],"summary":"Get All Pillars","description":"Récupérer tous les scores des piliers d'une personne.\n\nAuthentification optionnelle.","operationId":"get_all_pillars_api_v1_persons__person_code__pillars__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarScoresResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["pillars"],"summary":"Bulk Update Pillars","description":"Mettre à jour tous les scores des piliers en une seule requête.\n\nAuthentification requise.","operationId":"bulk_update_pillars_api_v1_persons__person_code__pillars__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarScoreBulkCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarScoresResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/pillars/{pillar_code}":{"get":{"tags":["pillars"],"summary":"Get Pillar","description":"Récupérer un score de pilier spécifique.\n\nAuthentification optionnelle.","operationId":"get_pillar_api_v1_persons__person_code__pillars__pillar_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"pillar_code","in":"path","required":true,"schema":{"type":"string","title":"Pillar Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarScoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["pillars"],"summary":"Update Pillar","description":"Mettre à jour un score de pilier spécifique.\n\nAuthentification requise.","operationId":"update_pillar_api_v1_persons__person_code__pillars__pillar_code__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"pillar_code","in":"path","required":true,"schema":{"type":"string","title":"Pillar Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarScoreUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarScoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/pillars/recalculate":{"post":{"tags":["pillars"],"summary":"Recalculate Pillars","description":"Recalculer les scores des piliers depuis les données sources.\n\nAuthentification requise.\n\nNote: Cette fonctionnalité sera implémentée pour calculer automatiquement\nles scores depuis les données (education, experience, etc.).","operationId":"recalculate_pillars_api_v1_persons__person_code__pillars_recalculate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/happiness-card/":{"get":{"tags":["happiness-card"],"summary":"Get Happiness Card","description":"Récupérer la carte bonheur d'une personne.\n\nAuthentification optionnelle (pour les profils publics).\nLa carte bonheur agrège les scores des 12 piliers fondamentaux.","operationId":"get_happiness_card_api_v1_persons__person_code__happiness_card__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HappinessCardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["happiness-card"],"summary":"Update Happiness Card","description":"Mettre à jour la carte bonheur d'une personne.\n\nAuthentification requise.\nNote: Normalement la carte bonheur est calculée automatiquement\ndepuis les scores des piliers. Cette API permet des ajustements manuels.","operationId":"update_happiness_card_api_v1_persons__person_code__happiness_card__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HappinessCardUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HappinessCardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/happiness-card/recalculate":{"post":{"tags":["happiness-card"],"summary":"Recalculate Happiness Card","description":"Recalculer la carte bonheur depuis les scores des piliers.\n\nAuthentification requise.\n\nLa carte bonheur est calculée en agrégeant les 12 scores de piliers:\n- Score global = moyenne pondérée des scores\n- Niveau global = selon seuils (CRITICAL, FRAGILE, STABLE, GOOD, EXCELLENT)\n- Distribution des piliers par niveau\n- Détection des besoins de support si piliers en CRITICAL/FRAGILE","operationId":"recalculate_happiness_card_api_v1_persons__person_code__happiness_card_recalculate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HappinessCardRecalculateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HappinessCardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/home-page":{"get":{"tags":["home-page"],"summary":"Get Home Page Config","description":"Récupérer la configuration de la Home Page d'une personne.\n\nAuthentification requise (seul le propriétaire peut voir la config complète).","operationId":"get_home_page_config_api_v1_persons__person_code__home_page_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["home-page"],"summary":"Create Home Page Config","description":"Créer la configuration de la Home Page d'une personne.\n\nAuthentification requise.","operationId":"create_home_page_config_api_v1_persons__person_code__home_page_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageConfigCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["home-page"],"summary":"Update Home Page Config","description":"Mettre à jour la configuration de la Home Page d'une personne.\n\nAuthentification requise.","operationId":"update_home_page_config_api_v1_persons__person_code__home_page_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageConfigUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/home-page/url":{"get":{"tags":["home-page"],"summary":"Get Home Page Url","description":"Récupérer l'URL de la Home Page d'une personne.\n\nAuthentification optionnelle.","operationId":"get_home_page_url_api_v1_persons__person_code__home_page_url_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/p/{slug}":{"get":{"tags":["home-page"],"summary":"Get Public Home Page Human","description":"Accès public à la Home Page d'une personne physique (HUMAN).\n\nURL pattern: civicperson.app/p/{slug}\n\nPas d'authentification requise - données filtrées selon les paramètres de visibilité.","operationId":"get_public_home_page_human_api_v1_home_page_p__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePagePublicResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/c/{slug}":{"get":{"tags":["home-page"],"summary":"Get Public Home Page Company","description":"Accès public à la Home Page d'une entreprise (MORAL).\n\nURL pattern: civicperson.app/c/{slug}\n\nPas d'authentification requise - données filtrées selon les paramètres de visibilité.","operationId":"get_public_home_page_company_api_v1_home_page_c__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePagePublicResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/g/{slug}":{"get":{"tags":["home-page"],"summary":"Get Public Home Page Group","description":"Accès public à la Home Page d'un groupe/collectif (GROUP).\n\nURL pattern: civicperson.app/g/{slug}\n\nPas d'authentification requise - données filtrées selon les paramètres de visibilité.","operationId":"get_public_home_page_group_api_v1_home_page_g__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePagePublicResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/rich/p/{slug}":{"get":{"tags":["home-page"],"summary":"Get Rich Home Page Human","description":"Accès public à la Home Page RICHE d'une personne physique (HUMAN).\n\nRetourne toutes les sections du CV/Portfolio:\n- Hero (nom, photo, bio, badge de vérification)\n- 12 Piliers avec scores (graphique radar)\n- Happiness Card (bien-être global)\n- Compétences avec niveaux\n- Certifications\n- Éducation (timeline)\n- Expériences professionnelles (timeline)\n- Badges/Profiles assignés\n- Contact et liens sociaux\n- Statistiques de connexions\n\nURL pattern: civicperson.app/p/{slug}","operationId":"get_rich_home_page_human_api_v1_home_page_rich_p__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageHumanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/rich/c/{slug}":{"get":{"tags":["home-page"],"summary":"Get Rich Home Page Company","description":"Accès public à la Home Page RICHE d'une entreprise (MORAL).\n\nRetourne:\n- Hero (nom, logo, description, secteur)\n- Informations business (SIRET, forme juridique, effectifs)\n- Scores RSE / Piliers sociaux\n- Certifications entreprise\n- Connexions (employés, anciens employés)\n- Contact\n\nURL pattern: civicperson.app/c/{slug}","operationId":"get_rich_home_page_company_api_v1_home_page_rich_c__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageMoralResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/rich/g/{slug}":{"get":{"tags":["home-page"],"summary":"Get Rich Home Page Group","description":"Accès public à la Home Page RICHE d'un groupe/collectif (GROUP).\n\nRetourne:\n- Hero (nom, type, mission)\n- Informations groupe (nombre membres, date création)\n- Scores piliers du groupe\n- Liste des membres\n- Contact\n\nURL pattern: civicperson.app/g/{slug}","operationId":"get_rich_home_page_group_api_v1_home_page_rich_g__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomePageGroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/pdf/p/{slug}":{"get":{"tags":["home-page"],"summary":"Export Human Pdf","description":"Export le CV/Portfolio d'une personne physique (HUMAN) en PDF.\n\nGénère un document PDF riche incluant:\n- En-tête avec photo et informations principales\n- Graphique radar des 12 piliers\n- Carte bonheur\n- Compétences avec niveaux\n- Timeline des expériences\n- Timeline des formations\n- Certifications\n- Badges et profils assignés\n- Informations de contact\n\nLe PDF inclut un code de vérification pour authentifier le document.","operationId":"export_human_pdf_api_v1_home_page_pdf_p__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/pdf/c/{slug}":{"get":{"tags":["home-page"],"summary":"Export Moral Pdf","description":"Export la fiche entreprise (MORAL) en PDF.\n\nGénère un document PDF incluant:\n- En-tête avec logo et informations principales\n- Informations légales (SIRET, forme juridique, etc.)\n- Indicateurs RSE (piliers sociaux/environnementaux)\n- Certifications et labels\n- Statistiques collaborateurs\n\nLe PDF inclut un code de vérification pour authentifier le document.","operationId":"export_moral_pdf_api_v1_home_page_pdf_c__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/pdf/g/{slug}":{"get":{"tags":["home-page"],"summary":"Export Group Pdf","description":"Export la fiche groupe/collectif (GROUP) en PDF.\n\nGénère un document PDF incluant:\n- En-tête avec informations du groupe\n- Statistiques (membres, actifs)\n- Informations du groupe (type, mission, statut)\n- Indicateurs collectifs\n- Liste des membres\n\nLe PDF inclut un code de vérification pour authentifier le document.","operationId":"export_group_pdf_api_v1_home_page_pdf_g__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/home-page/html/p/{slug}":{"get":{"tags":["home-page"],"summary":"Get Html Preview Human","description":"Retourne le HTML du CV/Portfolio pour prévisualisation.\n\nUtile pour:\n- Prévisualisation avant export PDF\n- Intégration dans une iframe\n- Personnalisation du rendu","operationId":"get_html_preview_human_api_v1_home_page_html_p__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/connections":{"get":{"tags":["connections"],"summary":"Get Person Connections","description":"Récupérer toutes les connexions d'une personne.\n\nAuthentification optionnelle.\n\nRetourne les connexions groupées par type:\n- WORKED_AT: Entreprises où la personne a travaillé\n- STUDIED_AT: Institutions éducatives\n- CERTIFIED_BY: Organismes de certification\n- COLLEAGUE: Collègues/Connaissances professionnelles\n- FOUNDED: Entreprises/Groupes fondés\n- etc.","operationId":"get_person_connections_api_v1_persons__person_code__connections_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["connections"],"summary":"Create Connection","description":"Créer une connexion entre deux personnes.\n\nAuthentification requise.\n\nTypes de connexions disponibles:\n- WORKED_AT / WORKS_AT: Relation employé/entreprise\n- STUDIED_AT: Relation étudiant/institution\n- CERTIFIED_BY: Relation certifié/certificateur\n- COLLEAGUE: Collègue de travail\n- FOUNDED: Fondateur d'une organisation\n- MEMBER_OF: Membre d'un groupe\n- PARTNER_OF: Partenariat entre organisations\n- Et plus...","operationId":"create_connection_api_v1_persons__person_code__connections_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConnectionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/connections/{connection_id}":{"get":{"tags":["connections"],"summary":"Get Connection","description":"Récupérer une connexion spécifique.\n\nAuthentification optionnelle.","operationId":"get_connection_api_v1_persons__person_code__connections__connection_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["connections"],"summary":"Update Connection","description":"Mettre à jour une connexion.\n\nAuthentification requise.","operationId":"update_connection_api_v1_persons__person_code__connections__connection_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConnectionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["connections"],"summary":"Delete Connection","description":"Supprimer une connexion.\n\nAuthentification requise.","operationId":"delete_connection_api_v1_persons__person_code__connections__connection_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graph/search":{"get":{"tags":["connections"],"summary":"Search Graph","description":"Recherche dans la toile d'araignée professionnelle.\n\nPermet de trouver des personnes (HUMAN, MORAL, GROUP) par:\n- Nom/Titre\n- Compétences\n- Industrie\n- Localisation\n\nCette recherche explore le graphe social professionnel CivicPerson.","operationId":"search_graph_api_v1_graph_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Terme de recherche","title":"Q"},"description":"Terme de recherche"},{"name":"person_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Type de personne: HUMAN, MORAL, GROUP","title":"Person Type"},"description":"Type de personne: HUMAN, MORAL, GROUP"},{"name":"industry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre par industrie","title":"Industry"},"description":"Filtre par industrie"},{"name":"skill","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre par compétence","title":"Skill"},"description":"Filtre par compétence"},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtre par localisation","title":"Location"},"description":"Filtre par localisation"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"description":"Nombre de résultats","default":20,"title":"Limit"},"description":"Nombre de résultats"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Offset pour pagination","default":0,"title":"Offset"},"description":"Offset pour pagination"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/graph/path":{"post":{"tags":["connections"],"summary":"Find Path Between Persons","description":"Trouver le chemin le plus court entre deux personnes dans le graphe.\n\nUtilise un algorithme BFS pour trouver les connexions communes.\n\nExemple: Pierre → Amundi (WORKED_AT) → Marie (COLLEAGUE)","operationId":"find_path_between_persons_api_v1_graph_path_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphPathRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphPathResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cv-import/upload":{"post":{"tags":["cv-import"],"summary":"Upload Cv","description":"Upload un fichier CV pour analyse.\n\nAuthentification requise.\n\nTypes de fichiers supportés:\n- PDF: Documents PDF\n- DOCX/DOC: Documents Word\n- PNG/JPG/JPEG: Images (scans de CV)\n- TXT/MD: Fichiers texte\n\nLe CV sera ensuite analysé par IA pour extraire les données structurées.","operationId":"upload_cv_api_v1_cv_import_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_cv_api_v1_cv_import_upload_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cv-import/{import_id}/parse":{"post":{"tags":["cv-import"],"summary":"Parse Cv","description":"Parse le CV uploadé avec l'IA.\n\nAuthentification requise.\n\nProviders AI disponibles:\n- claude: Anthropic Claude (recommandé)\n- openai: OpenAI GPT\n- local: Modèle local\n\nL'IA extrait:\n- Informations personnelles (nom, bio)\n- Expériences professionnelles\n- Formation\n- Compétences\n- Certifications\n- Langues\n\nEn plus, le système matche les entreprises mentionnées avec les\nPerson MORAL existantes dans CivicPerson.","operationId":"parse_cv_api_v1_cv_import__import_id__parse_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"import_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Import Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportParseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportParseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cv-import/{import_id}/preview":{"get":{"tags":["cv-import"],"summary":"Get Preview","description":"Récupère les données extraites pour validation avant injection.\n\nAuthentification requise.\n\nPermet de visualiser et modifier les données avant confirmation.","operationId":"get_preview_api_v1_cv_import__import_id__preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"import_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Import Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["cv-import"],"summary":"Update Preview","description":"Modifier les données extraites avant confirmation.\n\nAuthentification requise.\n\nPermet de corriger les erreurs d'extraction avant injection.\nLes modifications sont spécifiées par chemin (e.g., 'person.human_display_name').","operationId":"update_preview_api_v1_cv_import__import_id__preview_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"import_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Import Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportPreviewUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cv-import/{import_id}/confirm":{"post":{"tags":["cv-import"],"summary":"Confirm Import","description":"Confirme les données et les injecte dans CivicPerson.\n\nAuthentification requise.\n\nCette action:\n1. Crée la Person HUMAN avec les données du CV\n2. Crée les Person MORAL pour les entreprises non existantes (si demandé)\n3. Crée les connexions WORKED_AT, STUDIED_AT, etc.\n4. Crée la Home Page pour la personne\n\nCette action est irréversible.","operationId":"confirm_import_api_v1_cv_import__import_id__confirm_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"import_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Import Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportConfirmRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportConfirmResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cv-import/{import_id}/status":{"get":{"tags":["cv-import"],"summary":"Get Status","description":"Récupère le statut d'un import CV.\n\nAuthentification requise.\n\nStatuts possibles:\n- UPLOADED: Fichier uploadé, en attente de parsing\n- PARSING: Parsing en cours\n- PARSED: Parsing terminé, en attente de validation\n- VALIDATING: Validation en cours\n- CONFIRMED: Confirmé, en attente d'injection\n- INJECTING: Injection en cours\n- COMPLETED: Terminé avec succès\n- FAILED: Échec\n- CANCELLED: Annulé","operationId":"get_status_api_v1_cv_import__import_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"import_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Import Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cv-import/{import_id}/cancel":{"post":{"tags":["cv-import"],"summary":"Cancel Import","description":"Annuler un import CV.\n\nAuthentification requise.\n\nNe peut être annulé que si le statut est UPLOADED, PARSED, ou VALIDATING.","operationId":"cancel_import_api_v1_cv_import__import_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"import_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Import Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cv-import/":{"get":{"tags":["cv-import"],"summary":"List Imports","description":"Liste tous les imports CV de l'utilisateur.\n\nAuthentification requise.","operationId":"list_imports_api_v1_cv_import__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVImportListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/simulation/load-local":{"post":{"tags":["simulation"],"summary":"Load Local Simulation","description":"Charger tous les fichiers de simulation locaux via les APIs internes.\n\nCette opération:\n1. Lit tous les fichiers JSON du répertoire simulation-data/persons/\n2. Pour chaque fichier, appelle les APIs internes pour créer:\n   - Person (HUMAN, MORAL, GROUP)\n   - PillarScores (12 piliers)\n   - HappinessCard\n   - HomePageConfig\n3. Retourne un résumé avec statistiques\n\n**Important**: Cette opération utilise les APIs internes (PersonService,\nPillarScoreService, etc.) et non une insertion directe en base de données.\n\nArgs:\n    request: Configuration du chargement\n        - directory: Répertoire des fichiers (défaut: simulation-data/persons/)\n        - mode: 'upsert' ou 'create_only'\n        - dry_run: Valider sans sauvegarder\n        - batch_size: Taille des lots\n        - continue_on_error: Continuer en cas d'erreur\n\nReturns:\n    Résumé du chargement avec statistiques","operationId":"load_local_simulation_api_v1_simulation_load_local_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadLocalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Load Local Simulation Api V1 Simulation Load Local Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/simulation/status":{"get":{"tags":["simulation"],"summary":"Get Simulation Status","description":"Récupérer le statut du chargement de simulation en cours.\n\nReturns:\n    - session_id: ID de la session de simulation\n    - status: 'idle', 'running', 'completed', 'failed'\n    - total_files: Nombre total de fichiers\n    - processed_files: Nombre de fichiers traités\n    - successful: Nombre de succès\n    - failed: Nombre d'échecs\n    - progress_percent: Pourcentage de progression\n    - stats: Statistiques (persons_created, pillar_scores_created, etc.)\n    - errors: Liste des erreurs (10 dernières)\n    - current_file: Fichier en cours de traitement","operationId":"get_simulation_status_api_v1_simulation_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulationStatusResponse"}}}}}}},"/api/v1/simulation/files":{"get":{"tags":["simulation"],"summary":"List Simulation Files","description":"Lister tous les fichiers de simulation disponibles.\n\nArgs:\n    directory: Répertoire à scanner (optionnel)\n\nReturns:\n    - directory: Répertoire scanné\n    - total_files: Nombre total de fichiers\n    - files: Liste des fichiers avec métadonnées\n    - by_type: Répartition par type (HUMAN, MORAL, GROUP)\n    - by_country: Répartition par pays (FR, BE, etc.)","operationId":"list_simulation_files_api_v1_simulation_files_get","parameters":[{"name":"directory","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Directory"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/simulation/load-file":{"post":{"tags":["simulation"],"summary":"Load Single File","description":"Charger un fichier de simulation spécifique.\n\nUtile pour tester ou recharger un fichier particulier.\n\nArgs:\n    request:\n        - filepath: Chemin complet vers le fichier JSON\n        - dry_run: Valider sans sauvegarder\n\nReturns:\n    Résultat du chargement avec les entités créées","operationId":"load_single_file_api_v1_simulation_load_file_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadFileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Load Single File Api V1 Simulation Load File Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/simulation/clear":{"delete":{"tags":["simulation"],"summary":"Clear Simulation Data","description":"Effacer toutes les données de simulation.\n\n**ATTENTION**: Cette opération supprime toutes les personnes et données associées!\n\nPour des raisons de sécurité, cette fonctionnalité n'est pas encore implémentée.\nUtilisez les commandes de base de données directes si nécessaire.","operationId":"clear_simulation_data_api_v1_simulation_clear_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Clear Simulation Data Api V1 Simulation Clear Delete"}}}}}}},"/api/v1/simulation/summary":{"get":{"tags":["simulation"],"summary":"Get Simulation Summary","description":"Récupérer un résumé des données de simulation chargées.\n\nCompte le nombre de Persons, PillarScores, etc. actuellement en base.","operationId":"get_simulation_summary_api_v1_simulation_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Simulation Summary Api V1 Simulation Summary Get"}}}}}}},"/api/v1/persons/{person_code}/education/":{"get":{"tags":["education"],"summary":"List Education","description":"Liste toutes les formations d'une personne.","operationId":"list_education_api_v1_persons__person_code__education__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["education"],"summary":"Create Education","description":"Ajouter une formation.","operationId":"create_education_api_v1_persons__person_code__education__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/education/{education_id}":{"get":{"tags":["education"],"summary":"Get Education","description":"Récupérer une formation spécifique.","operationId":"get_education_api_v1_persons__person_code__education__education_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"education_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Education Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["education"],"summary":"Update Education","description":"Modifier une formation.","operationId":"update_education_api_v1_persons__person_code__education__education_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"education_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Education Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["education"],"summary":"Delete Education","description":"Supprimer une formation.","operationId":"delete_education_api_v1_persons__person_code__education__education_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"education_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Education Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/experiences/":{"get":{"tags":["experiences"],"summary":"List Experiences","description":"Liste toutes les expériences d'une personne.","operationId":"list_experiences_api_v1_persons__person_code__experiences__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["experiences"],"summary":"Create Experience","description":"Ajouter une expérience.","operationId":"create_experience_api_v1_persons__person_code__experiences__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/experiences/{experience_id}":{"get":{"tags":["experiences"],"summary":"Get Experience","description":"Récupérer une expérience spécifique.","operationId":"get_experience_api_v1_persons__person_code__experiences__experience_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"experience_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Experience Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["experiences"],"summary":"Update Experience","description":"Modifier une expérience.","operationId":"update_experience_api_v1_persons__person_code__experiences__experience_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"experience_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Experience Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperienceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["experiences"],"summary":"Delete Experience","description":"Supprimer une expérience.","operationId":"delete_experience_api_v1_persons__person_code__experiences__experience_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"experience_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Experience Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/skills/":{"get":{"tags":["skills"],"summary":"List Skills","description":"Liste toutes les compétences d'une personne.","operationId":"list_skills_api_v1_persons__person_code__skills__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["skills"],"summary":"Create Skill","description":"Ajouter une compétence.","operationId":"create_skill_api_v1_persons__person_code__skills__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["skills"],"summary":"Bulk Update Skills","description":"Mise à jour en lot des compétences.","operationId":"bulk_update_skills_api_v1_persons__person_code__skills__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillBulkCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/skills/{skill_id}":{"get":{"tags":["skills"],"summary":"Get Skill","description":"Récupérer une compétence spécifique.","operationId":"get_skill_api_v1_persons__person_code__skills__skill_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"skill_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Skill Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["skills"],"summary":"Update Skill","description":"Modifier une compétence.","operationId":"update_skill_api_v1_persons__person_code__skills__skill_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"skill_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Skill Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["skills"],"summary":"Delete Skill","description":"Supprimer une compétence.","operationId":"delete_skill_api_v1_persons__person_code__skills__skill_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"skill_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Skill Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/certifications/":{"get":{"tags":["certifications"],"summary":"List Certifications","description":"Liste toutes les certifications d'une personne.","operationId":"list_certifications_api_v1_persons__person_code__certifications__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["certifications"],"summary":"Create Certification","description":"Ajouter une certification.","operationId":"create_certification_api_v1_persons__person_code__certifications__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/certifications/{certification_id}":{"get":{"tags":["certifications"],"summary":"Get Certification","description":"Récupérer une certification spécifique.","operationId":"get_certification_api_v1_persons__person_code__certifications__certification_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"certification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Certification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["organization"],"summary":"Update Certification","description":"Mettre a jour une certification.","operationId":"update_certification_api_v1_persons__person_code__certifications__certification_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"certification_id","in":"path","required":true,"schema":{"type":"string","title":"Certification Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoralCertificationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoralCertificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["organization"],"summary":"Delete Certification","description":"Supprimer une certification.","operationId":"delete_certification_api_v1_persons__person_code__certifications__certification_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"certification_id","in":"path","required":true,"schema":{"type":"string","title":"Certification Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/assigned-profiles/":{"get":{"tags":["assigned-profiles"],"summary":"List Assigned Profiles","description":"Liste tous les profils assignés d'une personne.","operationId":"list_assigned_profiles_api_v1_persons__person_code__assigned_profiles__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignedProfileListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["assigned-profiles"],"summary":"Assign Profiles","description":"Assigner des profils à une personne (bulk).","operationId":"assign_profiles_api_v1_persons__person_code__assigned_profiles__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignedProfileBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignedProfileListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/assigned-profiles/{profile_code}":{"get":{"tags":["assigned-profiles"],"summary":"Get Assigned Profile","description":"Récupérer un profil assigné spécifique.","operationId":"get_assigned_profile_api_v1_persons__person_code__assigned_profiles__profile_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"profile_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignedProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["assigned-profiles"],"summary":"Revoke Assigned Profile","description":"Révoquer un profil assigné.","operationId":"revoke_assigned_profile_api_v1_persons__person_code__assigned_profiles__profile_code__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"profile_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/assigned-profiles/{profile_id}":{"patch":{"tags":["assigned-profiles"],"summary":"Update Assigned Profile","description":"Modifier un profil assigné.","operationId":"update_assigned_profile_api_v1_persons__person_code__assigned_profiles__profile_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignedProfileUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignedProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/assigned-profiles/check/{profile_code}":{"get":{"tags":["assigned-profiles"],"summary":"Check Has Profile","description":"Vérifier si une personne a un profil spécifique.","operationId":"check_has_profile_api_v1_persons__person_code__assigned_profiles_check__profile_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"profile_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/social-benefits/":{"get":{"tags":["social-benefits"],"summary":"List Social Benefits","description":"Liste toutes les prestations sociales d'une personne.","operationId":"list_social_benefits_api_v1_persons__person_code__social_benefits__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["social-benefits"],"summary":"Create Social Benefit","description":"Ajouter une prestation sociale.","operationId":"create_social_benefit_api_v1_persons__person_code__social_benefits__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["social-benefits"],"summary":"Update All Benefits","description":"Mettre à jour toutes les prestations sociales (format résumé).","operationId":"update_all_benefits_api_v1_persons__person_code__social_benefits__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitsSummary-Input"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/social-benefits/summary":{"get":{"tags":["social-benefits"],"summary":"Get Benefits Summary","description":"Récupérer le résumé structuré des prestations sociales.","operationId":"get_benefits_summary_api_v1_persons__person_code__social_benefits_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitsSummary-Output"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/social-benefits/{benefit_id}":{"get":{"tags":["social-benefits"],"summary":"Get Social Benefit","description":"Récupérer une prestation sociale spécifique.","operationId":"get_social_benefit_api_v1_persons__person_code__social_benefits__benefit_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"benefit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Benefit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["social-benefits"],"summary":"Update Social Benefit","description":"Modifier une prestation sociale.","operationId":"update_social_benefit_api_v1_persons__person_code__social_benefits__benefit_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"benefit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Benefit Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialBenefitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["social-benefits"],"summary":"Delete Social Benefit","description":"Supprimer une prestation sociale.","operationId":"delete_social_benefit_api_v1_persons__person_code__social_benefits__benefit_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"benefit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Benefit Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador/":{"get":{"tags":["ambassador"],"summary":"Get Ambassador Info","description":"Récupérer les informations ambassadeur d'une personne.","operationId":"get_ambassador_info_api_v1_persons__person_code__ambassador__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador/needs":{"post":{"tags":["ambassador"],"summary":"Register Needs Ambassador","description":"Enregistrer le besoin d'un ambassadeur.","operationId":"register_needs_ambassador_api_v1_persons__person_code__ambassador_needs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NeedsAmbassadorCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NeedsAmbassadorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["ambassador"],"summary":"Update Needs Ambassador","description":"Mettre à jour le besoin d'un ambassadeur.","operationId":"update_needs_ambassador_api_v1_persons__person_code__ambassador_needs_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NeedsAmbassadorUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NeedsAmbassadorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["ambassador"],"summary":"Cancel Needs Ambassador","description":"Annuler le besoin d'un ambassadeur.","operationId":"cancel_needs_ambassador_api_v1_persons__person_code__ambassador_needs_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador/register":{"post":{"tags":["ambassador"],"summary":"Register As Ambassador","description":"S'inscrire comme ambassadeur.","operationId":"register_as_ambassador_api_v1_persons__person_code__ambassador_register_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IsAmbassadorCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IsAmbassadorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador/profile":{"patch":{"tags":["ambassador"],"summary":"Update Ambassador Profile","description":"Mettre à jour son profil ambassadeur.","operationId":"update_ambassador_profile_api_v1_persons__person_code__ambassador_profile_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IsAmbassadorUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IsAmbassadorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["ambassador"],"summary":"Deactivate Ambassador","description":"Désactiver son profil ambassadeur.","operationId":"deactivate_ambassador_api_v1_persons__person_code__ambassador_profile_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador/stats":{"get":{"tags":["ambassador"],"summary":"Get Ambassador Stats","description":"Obtenir les statistiques d'un ambassadeur.","operationId":"get_ambassador_stats_api_v1_persons__person_code__ambassador_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador/match":{"get":{"tags":["ambassador"],"summary":"Find Matching Ambassadors","description":"Trouver des ambassadeurs correspondant aux critères.","operationId":"find_matching_ambassadors_api_v1_persons__person_code__ambassador_match_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"languages","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Languages"}},{"name":"specializations","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Specializations"}},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorMatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador/assign":{"post":{"tags":["ambassador"],"summary":"Assign Tutor","description":"Assign an active certified tutor to a beneficiary and create TUTORS/TUTORED_BY links.","operationId":"assign_tutor_api_v1_persons__person_code__ambassador_assign_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorAssignmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorAssignmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/assisted/":{"get":{"tags":["Assisted Person"],"summary":"Get Assisted Profile","operationId":"get_assisted_profile_api_v1_persons__person_code__assisted__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistedPersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Assisted Person"],"summary":"Create Assisted Profile","operationId":"create_assisted_profile_api_v1_persons__person_code__assisted__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistedPersonCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistedPersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Assisted Person"],"summary":"Update Assisted Profile","operationId":"update_assisted_profile_api_v1_persons__person_code__assisted__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistedPersonUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistedPersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Assisted Person"],"summary":"Delete Assisted Profile","operationId":"delete_assisted_profile_api_v1_persons__person_code__assisted__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/literacy-progress/":{"get":{"tags":["Literacy Progress"],"summary":"List Literacy Progress","operationId":"list_literacy_progress_api_v1_persons__person_code__literacy_progress__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LiteracyProgressResponse"},"title":"Response List Literacy Progress Api V1 Persons  Person Code  Literacy Progress  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Literacy Progress"],"summary":"Create Literacy Progress","operationId":"create_literacy_progress_api_v1_persons__person_code__literacy_progress__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiteracyProgressCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiteracyProgressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/literacy-progress/{progress_id}":{"get":{"tags":["Literacy Progress"],"summary":"Get Literacy Progress","operationId":"get_literacy_progress_api_v1_persons__person_code__literacy_progress__progress_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiteracyProgressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Literacy Progress"],"summary":"Update Literacy Progress","operationId":"update_literacy_progress_api_v1_persons__person_code__literacy_progress__progress_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiteracyProgressUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiteracyProgressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Literacy Progress"],"summary":"Delete Literacy Progress","operationId":"delete_literacy_progress_api_v1_persons__person_code__literacy_progress__progress_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"progress_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Progress Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/business-info":{"get":{"tags":["organization"],"summary":"Get Business Info","description":"Récupérer les informations entreprise d'une entité MORAL.","operationId":"get_business_info_api_v1_persons__person_code__business_info_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["organization"],"summary":"Update Business Info","description":"Mettre à jour les informations entreprise.","operationId":"update_business_info_api_v1_persons__person_code__business_info_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessInfoUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/group-info":{"get":{"tags":["organization"],"summary":"Get Group Info","description":"Récupérer les informations groupe d'une entité GROUP.","operationId":"get_group_info_api_v1_persons__person_code__group_info_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["organization"],"summary":"Update Group Info","description":"Mettre à jour les informations groupe.","operationId":"update_group_info_api_v1_persons__person_code__group_info_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/organization-info":{"get":{"tags":["organization"],"summary":"Get Organization Info","description":"Récupérer les informations organisation (MORAL ou GROUP).","operationId":"get_organization_info_api_v1_persons__person_code__organization_info_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/employees":{"get":{"tags":["organization"],"summary":"Get Employees","description":"Liste tous les employés d'une entreprise.\n\n- **department**: Filtrer par département (Commercial, Technique, Admin)\n- **sort_by**: Trier par (nom, poste, date)","operationId":"get_employees_api_v1_persons__person_code__employees_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"department","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/former-employees":{"get":{"tags":["organization"],"summary":"Get Former Employees","description":"Liste les anciens employés/membres d'une organisation.","operationId":"get_former_employees_api_v1_persons__person_code__former_employees_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/students":{"get":{"tags":["organization"],"summary":"Get Students","description":"Liste les étudiants inscrits à un établissement scolaire.\n\n- **education_level**: Filtrer par niveau (TERMINALE, L1, M2...)\n- **subject_code**: Filtrer par matière étudiée\n- **class_name**: Filtrer par nom de classe","operationId":"get_students_api_v1_persons__person_code__students_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"education_level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level"}},{"name":"subject_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Code"}},{"name":"class_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/staff":{"get":{"tags":["organization"],"summary":"Get Staff","description":"Liste le personnel d'un établissement scolaire.\n\n- **role**: Filtrer par rôle (TEACHER, ADMIN, DIRECTOR)\n- **subject_code**: Filtrer par matière enseignée","operationId":"get_staff_api_v1_persons__person_code__staff_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"}},{"name":"subject_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/missions/dashboard":{"get":{"tags":["organization"],"summary":"Get Missions Dashboard","description":"Tableau de bord agrégé des missions de l'établissement.\n\nRetourne les statistiques sur les missions de tous les étudiants\ninscrits à l'établissement.","operationId":"get_missions_dashboard_api_v1_persons__person_code__missions_dashboard_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/classmates":{"get":{"tags":["organization"],"summary":"Get Classmates","description":"Liste les camarades de classe d'un étudiant.\n\nRetourne tous les étudiants qui sont dans la même classe\n(même établissement + même class_name).","operationId":"get_classmates_api_v1_persons__person_code__classmates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portrait":{"get":{"tags":["organization"],"summary":"Get Portrait","description":"Portrait complet 360° d'une organisation MORAL — 15 sections.","operationId":"get_portrait_api_v1_persons__person_code__portrait_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortraitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/establishments":{"get":{"tags":["organization"],"summary":"List Establishments","description":"Liste les etablissements d'une organisation MORAL.","operationId":"list_establishments_api_v1_persons__person_code__establishments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EstablishmentResponse"},"title":"Response List Establishments Api V1 Persons  Person Code  Establishments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["organization"],"summary":"Create Establishment","description":"Creer un etablissement pour une organisation MORAL.","operationId":"create_establishment_api_v1_persons__person_code__establishments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstablishmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstablishmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/establishments/{establishment_id}":{"patch":{"tags":["organization"],"summary":"Update Establishment","description":"Mettre a jour un etablissement.","operationId":"update_establishment_api_v1_persons__person_code__establishments__establishment_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"establishment_id","in":"path","required":true,"schema":{"type":"string","title":"Establishment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstablishmentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstablishmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["organization"],"summary":"Delete Establishment","description":"Supprimer un etablissement.","operationId":"delete_establishment_api_v1_persons__person_code__establishments__establishment_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"establishment_id","in":"path","required":true,"schema":{"type":"string","title":"Establishment Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/certifications":{"get":{"tags":["organization"],"summary":"List Certifications","description":"Liste les certifications d'une organisation MORAL.","operationId":"list_certifications_api_v1_persons__person_code__certifications_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MoralCertificationResponse"},"title":"Response List Certifications Api V1 Persons  Person Code  Certifications Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["organization"],"summary":"Create Certification","description":"Creer une certification pour une organisation MORAL.","operationId":"create_certification_api_v1_persons__person_code__certifications_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoralCertificationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoralCertificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/organizations/batch-insee":{"post":{"tags":["organization"],"summary":"Batch Insee Injection","description":"Injection batch de donnees INSEE/SIRENE.\n\nMet a jour les champs manquants des organisations MORAL a partir\ndes donnees publiques INSEE. Ne remplace PAS les champs deja remplis.","operationId":"batch_insee_injection_api_v1_organizations_batch_insee_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InseeInjectionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InseeInjectionReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/persons/{person_code}/cfv":{"get":{"tags":["cfv"],"summary":"Export Cfv","description":"Export le Fichier Civique Virtuel complet d'une personne.","operationId":"export_cfv_api_v1_persons__person_code__cfv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"sections","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated sections","default":"all","title":"Sections"},"description":"Comma-separated sections"},{"name":"format","in":"query","required":false,"schema":{"type":"string","description":"Output format: json, json-ld, pdf","default":"json","title":"Format"},"description":"Output format: json, json-ld, pdf"},{"name":"include_blockchain","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Blockchain"}},{"name":"sign","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Sign"}},{"name":"language","in":"query","required":false,"schema":{"type":"string","default":"fr","title":"Language"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/cfv/sections/{section_name}":{"get":{"tags":["cfv"],"summary":"Export Cfv Section","description":"Export une section spécifique du CFV.","operationId":"export_cfv_section_api_v1_persons__person_code__cfv_sections__section_name__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"section_name","in":"path","required":true,"schema":{"type":"string","title":"Section Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVSectionData"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/cfv/prepare-blockchain":{"post":{"tags":["cfv"],"summary":"Prepare Cfv For Blockchain","description":"Prépare le CFV pour enregistrement blockchain.","operationId":"prepare_cfv_for_blockchain_api_v1_persons__person_code__cfv_prepare_blockchain_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVPrepareBlockchainRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVPrepareBlockchainResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/cfv/share":{"post":{"tags":["cfv"],"summary":"Create Cfv Share","description":"Crée un lien de partage pour un CFV.","operationId":"create_cfv_share_api_v1_persons__person_code__cfv_share_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVShareRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVShareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cfv/shared/{share_id}":{"get":{"tags":["cfv"],"summary":"Get Shared Cfv","description":"Accède à un CFV partagé via son ID de partage.","operationId":"get_shared_cfv_api_v1_cfv_shared__share_id__get","parameters":[{"name":"share_id","in":"path","required":true,"schema":{"type":"string","title":"Share Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVSharedView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cfv/verify":{"post":{"tags":["cfv"],"summary":"Verify Cfv","description":"Vérifie l'intégrité et l'authenticité d'un CFV.","operationId":"verify_cfv_api_v1_cfv_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/cfv/history":{"get":{"tags":["cfv"],"summary":"Get Cfv History","description":"Liste l'historique des exports CFV d'une personne.","operationId":"get_cfv_history_api_v1_persons__person_code__cfv_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CFVHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/portfolio/templates":{"get":{"tags":["portfolio"],"summary":"List Templates","description":"Liste les templates de portfolio disponibles.","operationId":"list_templates_api_v1_portfolio_templates_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"person_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by person type","title":"Person Type"},"description":"Filter by person type"},{"name":"language","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by language","title":"Language"},"description":"Filter by language"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioTemplateListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/generate":{"post":{"tags":["portfolio"],"summary":"Generate Portfolio","description":"Génère un portfolio PDF personnalisé.","operationId":"generate_portfolio_api_v1_persons__person_code__portfolio_generate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioGenerateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioGenerateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/preview":{"post":{"tags":["portfolio"],"summary":"Preview Portfolio","description":"Génère une prévisualisation du portfolio.","operationId":"preview_portfolio_api_v1_persons__person_code__portfolio_preview_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioGenerateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/saved":{"get":{"tags":["portfolio"],"summary":"List Saved Portfolios","description":"Liste les portfolios sauvegardés d'une personne.","operationId":"list_saved_portfolios_api_v1_persons__person_code__portfolio_saved_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedPortfolioListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/save":{"post":{"tags":["portfolio"],"summary":"Save Portfolio","description":"Sauvegarde un portfolio avec un nom.","operationId":"save_portfolio_api_v1_persons__person_code__portfolio_save_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioSaveRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedPortfolio"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/saved/{portfolio_id}":{"delete":{"tags":["portfolio"],"summary":"Delete Saved Portfolio","description":"Supprime un portfolio sauvegardé.","operationId":"delete_saved_portfolio_api_v1_persons__person_code__portfolio_saved__portfolio_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"portfolio_id","in":"path","required":true,"schema":{"type":"string","title":"Portfolio Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/share":{"post":{"tags":["portfolio"],"summary":"Create Portfolio Share","description":"Crée un lien de partage pour un portfolio.","operationId":"create_portfolio_share_api_v1_persons__person_code__portfolio_share_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioShareRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioShareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/portfolio/shared/{share_id}":{"get":{"tags":["portfolio"],"summary":"Get Shared Portfolio","description":"Accède à un portfolio partagé.","operationId":"get_shared_portfolio_api_v1_portfolio_shared__share_id__get","parameters":[{"name":"share_id","in":"path","required":true,"schema":{"type":"string","title":"Share Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedPortfolioView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/shares":{"get":{"tags":["portfolio"],"summary":"List Portfolio Shares","description":"Liste les partages actifs de portfolios.","operationId":"list_portfolio_shares_api_v1_persons__person_code__portfolio_shares_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioShareListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/shares/{share_id}":{"delete":{"tags":["portfolio"],"summary":"Revoke Portfolio Share","description":"Révoque un lien de partage.","operationId":"revoke_portfolio_share_api_v1_persons__person_code__portfolio_shares__share_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"share_id","in":"path","required":true,"schema":{"type":"string","title":"Share Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/portfolio/verify/{verification_code}":{"get":{"tags":["portfolio"],"summary":"Verify Portfolio","description":"Vérifie l'authenticité d'un portfolio.","operationId":"verify_portfolio_api_v1_portfolio_verify__verification_code__get","parameters":[{"name":"verification_code","in":"path","required":true,"schema":{"type":"string","title":"Verification Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/analytics":{"get":{"tags":["portfolio"],"summary":"Get Portfolio Analytics","description":"Statistiques de consultation des portfolios.","operationId":"get_portfolio_analytics_api_v1_persons__person_code__portfolio_analytics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Period: 7d, 30d, 90d, year","default":"30d","title":"Period"},"description":"Period: 7d, 30d, 90d, year"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioAnalytics"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/portfolio/export":{"post":{"tags":["portfolio"],"summary":"Export Portfolio Multi Format","description":"Exporte un portfolio dans plusieurs formats simultanément.","operationId":"export_portfolio_multi_format_api_v1_persons__person_code__portfolio_export_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/matching/trigger":{"post":{"tags":["Profile Matching"],"summary":"Trigger Matching","description":"Trigger a matching job to assign persons to profiles.\n\nThe job runs asynchronously. Use the status_url to check progress.\n\nModes:\n- `all`: Process all profiles with dynamic matching enabled\n- `specific`: Process only specified profile codes\n- `new_persons`: Only scan recently created persons","operationId":"trigger_matching_api_v1_matching_trigger_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerMatchingRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobTriggerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/matching/jobs/{job_id}":{"get":{"tags":["Profile Matching"],"summary":"Get Job Status","description":"Get the status of a matching job.\n\nReturns progress information including profiles processed, matches found, etc.","operationId":"get_job_status_api_v1_matching_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/matching/jobs/{job_id}/results":{"get":{"tags":["Profile Matching"],"summary":"Get Job Results","description":"Get detailed results for a completed matching job.\n\nIncludes per-profile breakdown of matches and assignments.","operationId":"get_job_results_api_v1_matching_jobs__job_id__results_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/matching/jobs/{job_id}/cancel":{"post":{"tags":["Profile Matching"],"summary":"Cancel Job","description":"Cancel a running matching job.\n\nAlready processed profiles will retain their assignments.","operationId":"cancel_job_api_v1_matching_jobs__job_id__cancel_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/matching/jobs":{"get":{"tags":["Profile Matching"],"summary":"List Jobs","description":"List matching jobs.\n\nReturns recent jobs sorted by start time (newest first).","operationId":"list_jobs_api_v1_matching_jobs_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/matching/test-dsl":{"post":{"tags":["Profile Matching"],"summary":"Test Dsl","description":"Test parsing a DSL definition.\n\nValidates the DSL syntax without executing any matching.","operationId":"test_dsl_api_v1_matching_test_dsl_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Dsl"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/matching/evaluate-person":{"post":{"tags":["Profile Matching"],"summary":"Evaluate Person Against Dsl","description":"Evaluate a single person against a DSL definition.\n\nUseful for testing DSL criteria before enabling them.","operationId":"evaluate_person_against_dsl_api_v1_matching_evaluate_person_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_evaluate_person_against_dsl_api_v1_matching_evaluate_person_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/validation/pending":{"get":{"tags":["popular-validation"],"summary":"Get Pending Validations","description":"Get list of MORAL/GROUP entities pending popular validation.\n\nCitizens can browse this list to vote and confirm entity existence.","operationId":"get_pending_validations_api_v1_validation_pending_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingValidationList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/validation/{person_code}/vote":{"post":{"tags":["popular-validation"],"summary":"Vote For Entity","description":"Vote for the existence of a MORAL/GROUP entity.\n\nEach citizen can only vote once per entity.\n\nVote types:\n- YES: I confirm this entity exists\n- NO: I believe this entity is fake\n- ABSTENTION: I'm not sure","operationId":"vote_for_entity_api_v1_validation__person_code__vote_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoteCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/validation/{person_code}/validators":{"get":{"tags":["popular-validation"],"summary":"Get Entity Validators","description":"Get list of citizens who voted for an entity.\n\nShows who validated and their vote type.","operationId":"get_entity_validators_api_v1_validation__person_code__validators_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidatorsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/validation/{person_code}/report":{"post":{"tags":["popular-validation"],"summary":"Report Fraud","description":"Report a potentially fraudulent entity.\n\nThis triggers a manual review process.","operationId":"report_fraud_api_v1_validation__person_code__report_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"reason","in":"query","required":true,"schema":{"type":"string","minLength":10,"maxLength":500,"title":"Reason"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/validation/check-duplicates":{"post":{"tags":["popular-validation"],"summary":"Check Duplicates","description":"Check for potential duplicate MORAL entities before creation.\n\nUses fuzzy matching to detect similar names (handles typos).\n\nExample: \"College LONAKO\" and \"College NLONAKO\" in same city\nwill be detected as potential duplicates.","operationId":"check_duplicates_api_v1_validation_check_duplicates_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DuplicateCheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DuplicateCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/missions/persons/{person_code}":{"post":{"tags":["missions"],"summary":"Create Mission","description":"Create a new mission for a learner.\n\nOnly teachers can create missions.","operationId":"create_mission_api_v1_missions_persons__person_code__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["missions"],"summary":"Get Learner Missions","description":"Get all missions for a learner.","operationId":"get_learner_missions_api_v1_missions_persons__person_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/missions/{mission_id}":{"get":{"tags":["missions"],"summary":"Get Mission Detail","description":"Get detailed mission information including validations and recent activities.","operationId":"get_mission_detail_api_v1_missions__mission_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["missions"],"summary":"Update Mission","description":"Update a mission.\n\nOnly the assigned teacher can update.","operationId":"update_mission_api_v1_missions__mission_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/missions/{mission_id}/activities":{"post":{"tags":["missions"],"summary":"Record Activity","description":"Record an activity for a mission.\n\nCan be called by:\n- Activity Tracker service (with X-Service-Token)\n- The learner themselves","operationId":"record_activity_api_v1_missions__mission_id__activities_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"X-Service-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["missions"],"summary":"Get Mission Activities","description":"Get all activities for a mission.","operationId":"get_mission_activities_api_v1_missions__mission_id__activities_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/missions/{mission_id}/activities/bulk":{"post":{"tags":["missions"],"summary":"Record Activities Bulk","description":"Record multiple activities at once.\n\nFor Activity Tracker service to batch upload.","operationId":"record_activities_bulk_api_v1_missions__mission_id__activities_bulk_post","parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"X-Service-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivityResponse"},"title":"Response Record Activities Bulk Api V1 Missions  Mission Id  Activities Bulk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/missions/{mission_id}/validate/teacher":{"put":{"tags":["missions"],"summary":"Validate By Teacher","description":"Teacher validates the mission.\n\nOnly the assigned teacher can validate.","operationId":"validate_by_teacher_api_v1_missions__mission_id__validate_teacher_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/missions/{mission_id}/validate/professional":{"put":{"tags":["missions"],"summary":"Validate By Professional","description":"Professional validates the mission.\n\nOnly the assigned professional can validate.","operationId":"validate_by_professional_api_v1_missions__mission_id__validate_professional_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/missions/{mission_id}/validations":{"get":{"tags":["missions"],"summary":"Get Mission Validations","description":"Get validation status for a mission.","operationId":"get_mission_validations_api_v1_missions__mission_id__validations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"mission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Mission Id"}},{"name":"person_code","in":"query","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionValidations"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subjects":{"get":{"tags":["subjects"],"summary":"List Subjects","description":"List all available subjects from the referential.\n\nOptional filters:\n- domain: filter by subject domain (SCIENCE, HUMANITIES, etc.)\n- level_code: filter by education level (subjects applicable to that level)\n- track_code: filter by track/filiere (subjects applicable to that track)","operationId":"list_subjects_api_v1_subjects_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by domain (SCIENCE, HUMANITIES, etc.)","title":"Domain"},"description":"Filter by domain (SCIENCE, HUMANITIES, etc.)"},{"name":"level_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by education level (e.g. TERMINALE)","title":"Level Code"},"description":"Filter by education level (e.g. TERMINALE)"},{"name":"track_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by track/filiere (e.g. SCIENTIFIQUE)","title":"Track Code"},"description":"Filter by track/filiere (e.g. SCIENTIFIQUE)"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by active status","default":true,"title":"Is Active"},"description":"Filter by active status"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subjects/search":{"get":{"tags":["subjects"],"summary":"Search Subjects","description":"Search subjects by name or alias.","operationId":"search_subjects_api_v1_subjects_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Search query","title":"Query"},"description":"Search query"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subjects/normalize":{"post":{"tags":["subjects"],"summary":"Normalize Subject","description":"Normalize a user input to a subject code.\n\nTakes free-form text (e.g., \"maths\", \"physique-chimie\") and returns\nthe matching Subject from the referential.","operationId":"normalize_subject_api_v1_subjects_normalize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubjectNormalizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubjectNormalizationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/subjects":{"post":{"tags":["person-subjects"],"summary":"Declare Subjects","description":"Declare subjects for a person (student).\n\nTakes a list of subject names (free text), normalizes them to subject codes,\nand creates PersonSubject records. Automatically:\n- Normalizes input to subject_code\n- Attributes the corresponding profile (IS_MATHEMATICS, etc.)\n- Creates sub-missions for each subject","operationId":"declare_subjects_api_v1_persons__person_code__subjects_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["person-subjects"],"summary":"Get Person Subjects","description":"Get declared subjects for a person.","operationId":"get_person_subjects_api_v1_persons__person_code__subjects_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"education_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by education","title":"Education Id"},"description":"Filter by education"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/business-activity":{"post":{"tags":["Enterprise Profile - Business Activity"],"summary":"Create business activity description","description":"Create or update business activity description for a MORAL entity.","operationId":"create_business_activity_api_v1_persons__person_code__business_activity_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessActivityCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessActivityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Enterprise Profile - Business Activity"],"summary":"Get business activity description","description":"Get business activity description for a MORAL entity.","operationId":"get_business_activity_api_v1_persons__person_code__business_activity_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessActivityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Enterprise Profile - Business Activity"],"summary":"Update business activity description","description":"Update business activity description.","operationId":"update_business_activity_api_v1_persons__person_code__business_activity_put","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessActivityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessActivityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Enterprise Profile - Business Activity"],"summary":"Delete business activity description","description":"Delete business activity description.","operationId":"delete_business_activity_api_v1_persons__person_code__business_activity_delete","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/constants/industries":{"get":{"tags":["Enterprise Profile - Business Activity"],"summary":"Get available industry constants","description":"Get list of available industry categories and other constants.","operationId":"get_industries_api_v1_persons_constants_industries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndustryListResponse"}}}}}}},"/api/v1/persons/{person_code}/business-processes":{"post":{"tags":["Enterprise Profile - Business Processes"],"summary":"Create a business process","description":"Create a new business process description.","operationId":"create_business_process_api_v1_persons__person_code__business_processes_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcessCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcessResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Enterprise Profile - Business Processes"],"summary":"List all business processes","description":"Get all business processes for an enterprise.","operationId":"list_business_processes_api_v1_persons__person_code__business_processes_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcessListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/business-processes/by-priority":{"get":{"tags":["Enterprise Profile - Business Processes"],"summary":"Get processes by priority","description":"Get business processes filtered by priority level.","operationId":"get_processes_by_priority_api_v1_persons__person_code__business_processes_by_priority_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"priority","in":"query","required":true,"schema":{"type":"string","description":"P0, P1, P2, or P3","title":"Priority"},"description":"P0, P1, P2, or P3"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcessListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/business-processes/{process_id}":{"get":{"tags":["Enterprise Profile - Business Processes"],"summary":"Get a specific process","description":"Get details of a specific business process.","operationId":"get_business_process_api_v1_persons__person_code__business_processes__process_id__get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"process_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Process Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcessResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Enterprise Profile - Business Processes"],"summary":"Update a process","description":"Update an existing business process.","operationId":"update_business_process_api_v1_persons__person_code__business_processes__process_id__patch","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"process_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Process Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcessUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessProcessResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Enterprise Profile - Business Processes"],"summary":"Delete a process","description":"Delete a business process.","operationId":"delete_business_process_api_v1_persons__person_code__business_processes__process_id__delete","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"process_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Process Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/constants/process-categories":{"get":{"tags":["Enterprise Profile - Business Processes"],"summary":"Get process constants","description":"Get list of available process categories and constants.","operationId":"get_process_constants_api_v1_persons_constants_process_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessCategoriesResponse"}}}}}}},"/api/v1/persons/{person_code}/technology-stack":{"post":{"tags":["Enterprise Profile - Technology Stack"],"summary":"Add a technology","description":"Add a technology to the enterprise stack.","operationId":"create_technology_api_v1_persons__person_code__technology_stack_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnologyStackCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnologyStackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Enterprise Profile - Technology Stack"],"summary":"List all technologies","description":"Get all technologies for an enterprise.","operationId":"list_technologies_api_v1_persons__person_code__technology_stack_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnologyStackListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/technology-stack/costs":{"get":{"tags":["Enterprise Profile - Technology Stack"],"summary":"Get technology costs summary","description":"Get cost summary for all technologies.","operationId":"get_technology_costs_api_v1_persons__person_code__technology_stack_costs_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnologyCostsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/technology-stack/{tech_id}":{"get":{"tags":["Enterprise Profile - Technology Stack"],"summary":"Get a specific technology","description":"Get details of a specific technology.","operationId":"get_technology_api_v1_persons__person_code__technology_stack__tech_id__get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"tech_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tech Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnologyStackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Enterprise Profile - Technology Stack"],"summary":"Update a technology","description":"Update an existing technology entry.","operationId":"update_technology_api_v1_persons__person_code__technology_stack__tech_id__patch","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"tech_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tech Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnologyStackUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnologyStackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Enterprise Profile - Technology Stack"],"summary":"Delete a technology","description":"Delete a technology from the stack.","operationId":"delete_technology_api_v1_persons__person_code__technology_stack__tech_id__delete","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"tech_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tech Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/digital-needs":{"post":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Create a digital need","description":"Create a new digital need for the enterprise.","operationId":"create_digital_need_api_v1_persons__person_code__digital_needs_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Enterprise Profile - Digital Needs"],"summary":"List all digital needs","description":"Get all digital needs for an enterprise.","operationId":"list_digital_needs_api_v1_persons__person_code__digital_needs_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/digital-needs/by-priority":{"get":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Get needs by priority","description":"Get digital needs filtered by priority level.","operationId":"get_needs_by_priority_api_v1_persons__person_code__digital_needs_by_priority_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"priority","in":"query","required":true,"schema":{"type":"string","description":"P0, P1, P2, or P3","title":"Priority"},"description":"P0, P1, P2, or P3"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/digital-needs/{need_id}":{"get":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Get a specific need","description":"Get details of a specific digital need.","operationId":"get_digital_need_api_v1_persons__person_code__digital_needs__need_id__get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"need_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Need Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Update a need","description":"Update an existing digital need.","operationId":"update_digital_need_api_v1_persons__person_code__digital_needs__need_id__patch","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"need_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Need Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Delete a need","description":"Delete a digital need.","operationId":"delete_digital_need_api_v1_persons__person_code__digital_needs__need_id__delete","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"need_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Need Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/digital-needs/{need_id}/propose-solutions":{"post":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Propose solutions for a need","description":"Add proposed solutions to a digital need.","operationId":"propose_solutions_api_v1_persons__person_code__digital_needs__need_id__propose_solutions_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"need_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Need Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Solutions"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/digital-needs/{need_id}/select-solution":{"post":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Select a solution","description":"Select a solution for implementation.","operationId":"select_solution_api_v1_persons__person_code__digital_needs__need_id__select_solution_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"need_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Need Id"}},{"name":"solution","in":"query","required":true,"schema":{"type":"string","title":"Solution"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalNeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/constants/need-categories":{"get":{"tags":["Enterprise Profile - Digital Needs"],"summary":"Get need constants","description":"Get list of available need categories and constants.","operationId":"get_need_constants_api_v1_persons_constants_need_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NeedCategoriesResponse"}}}}}}},"/api/v1/persons/{person_code}/recommendations":{"post":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Create a platform recommendation","description":"Create a new platform recommendation for an enterprise.","operationId":"create_recommendation_api_v1_persons__person_code__recommendations_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"List all recommendations","description":"Get all platform recommendations for an enterprise.","operationId":"list_recommendations_api_v1_persons__person_code__recommendations_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/recommendations/{recommendation_id}":{"get":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Get a specific recommendation","description":"Get details of a specific platform recommendation.","operationId":"get_recommendation_api_v1_persons__person_code__recommendations__recommendation_id__get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Update a recommendation","description":"Update an existing platform recommendation.","operationId":"update_recommendation_api_v1_persons__person_code__recommendations__recommendation_id__patch","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Delete a recommendation","description":"Delete a platform recommendation.","operationId":"delete_recommendation_api_v1_persons__person_code__recommendations__recommendation_id__delete","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/recommendations/{recommendation_id}/evaluate":{"post":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Start evaluation","description":"Mark recommendation as under evaluation with optional feedback.","operationId":"evaluate_recommendation_api_v1_persons__person_code__recommendations__recommendation_id__evaluate_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationEvaluate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/recommendations/{recommendation_id}/adopt":{"post":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Adopt recommendation","description":"Mark recommendation as adopted.","operationId":"adopt_recommendation_api_v1_persons__person_code__recommendations__recommendation_id__adopt_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationAdopt"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/recommendations/{recommendation_id}/reject":{"post":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Reject recommendation","description":"Mark recommendation as rejected with reason.","operationId":"reject_recommendation_api_v1_persons__person_code__recommendations__recommendation_id__reject_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationReject"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/recommendations/{recommendation_id}/start-trial":{"post":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Start trial","description":"Mark recommendation as in trial period.","operationId":"start_trial_api_v1_persons__person_code__recommendations__recommendation_id__start_trial_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/recommendations/{recommendation_id}/link-mission":{"post":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Link to student mission","description":"Link recommendation to a PersonMission for student project.","operationId":"link_to_mission_api_v1_persons__person_code__recommendations__recommendation_id__link_mission_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"recommendation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Recommendation Id"}},{"name":"mission_code","in":"query","required":true,"schema":{"type":"string","title":"Mission Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRecommendationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/constants/recommendations":{"get":{"tags":["Enterprise Profile - Platform Recommendations"],"summary":"Get recommendation constants","description":"Get list of available statuses and constants.","operationId":"get_recommendation_constants_api_v1_persons_constants_recommendations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationConstantsResponse"}}}}}}},"/api/v1/enterprises/search":{"get":{"tags":["Enterprise Discovery (for Students/Experts)"],"summary":"Search enterprises for students/experts","description":"Search for enterprises with digital needs.\nUseful for students and experts looking for projects.\n\nFilters:\n- industry: Filter by business sector\n- digital_maturity_max: Only enterprises below this maturity level\n- has_needs: Only enterprises with identified needs\n- priority: Filter by need priority level","operationId":"search_enterprises_api_v1_enterprises_search_get","parameters":[{"name":"industry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by industry","title":"Industry"},"description":"Filter by industry"},{"name":"digital_maturity_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":5,"minimum":0},{"type":"null"}],"description":"Max maturity score","title":"Digital Maturity Max"},"description":"Max maturity score"},{"name":"has_needs","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only enterprises with open needs","title":"Has Needs"},"description":"Only enterprises with open needs"},{"name":"priority","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"P0, P1, P2, P3","title":"Priority"},"description":"P0, P1, P2, P3"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnterpriseSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/enterprises/{person_code}/diagnostic":{"get":{"tags":["Enterprise Discovery (for Students/Experts)"],"summary":"Get full enterprise diagnostic","description":"Get a complete diagnostic of an enterprise's digital status.\nIncludes business activity, processes, technology stack, needs, and recommendations.","operationId":"get_enterprise_diagnostic_api_v1_enterprises__person_code__diagnostic_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnterpriseDiagnostic"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/enterprises/{person_code}/analyze":{"post":{"tags":["Enterprise Discovery (for Students/Experts)"],"summary":"Submit enterprise analysis (for experts/students)","description":"Mark enterprise as analyzed by an expert or student.\nUpdates the diagnostic status and records the analyzer.","operationId":"submit_analysis_api_v1_enterprises__person_code__analyze_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"analyzed_by","in":"query","required":true,"schema":{"type":"string","title":"Analyzed By"}},{"name":"analysis_type","in":"query","required":false,"schema":{"type":"string","description":"STUDENT, EXPERT, TEACHER","default":"STUDENT","title":"Analysis Type"},"description":"STUDENT, EXPERT, TEACHER"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regions/{region_code}/schools":{"get":{"tags":["Regional Governance"],"summary":"Get Schools By Region","description":"Get all schools in a region.\n\nUsed by Academic Inspectors to view establishments under their oversight.\n\nArgs:\n    region_code: ISO region code (e.g., SN-DK for Dakar)\n    school_type: Optional filter by institution type\n    validation_status: Optional filter by validation status\n    limit: Maximum results (default 50)\n    offset: Pagination offset\n    \nReturns:\n    Dict with total counts, aggregations by type/status, and list of schools","operationId":"get_schools_by_region_api_v1_regions__region_code__schools_get","parameters":[{"name":"region_code","in":"path","required":true,"schema":{"type":"string","title":"Region Code"}},{"name":"school_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: LYCEE, COLLEGE, UNIVERSITY","title":"School Type"},"description":"Filter by type: LYCEE, COLLEGE, UNIVERSITY"},{"name":"validation_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: VALIDATED, PENDING","title":"Validation Status"},"description":"Filter by status: VALIDATED, PENDING"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regions/{region_code}/stats/dashboard":{"get":{"tags":["Regional Governance"],"summary":"Get Regional Dashboard","description":"Get consolidated dashboard statistics for a region.\n\nProvides aggregated KPIs for Academic Inspector oversight:\n- Total students, teachers, schools\n- Mission statistics by status\n- Partnership counts\n- Top performing schools\n\nArgs:\n    region_code: ISO region code\n    \nReturns:\n    Dict with aggregated regional statistics","operationId":"get_regional_dashboard_api_v1_regions__region_code__stats_dashboard_get","parameters":[{"name":"region_code","in":"path","required":true,"schema":{"type":"string","title":"Region Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regions/schools/{school_code}/validate":{"put":{"tags":["Regional Governance"],"summary":"Validate School","description":"Validate or reject a school institution.\n\nUsed by Academic Inspectors to officially validate educational establishments.\n\nArgs:\n    school_code: Person code of the school to validate\n    inspector_code: Person code of the validating inspector\n    validation_status: VALIDATED or REJECTED\n    comments: Optional comments about the validation decision\n    \nReturns:\n    Updated school validation data","operationId":"validate_school_api_v1_regions_schools__school_code__validate_put","parameters":[{"name":"school_code","in":"path","required":true,"schema":{"type":"string","title":"School Code"}},{"name":"inspector_code","in":"query","required":true,"schema":{"type":"string","description":"Person code of the Academic Inspector","title":"Inspector Code"},"description":"Person code of the Academic Inspector"},{"name":"validation_status","in":"query","required":false,"schema":{"type":"string","description":"VALIDATED or REJECTED","default":"VALIDATED","title":"Validation Status"},"description":"VALIDATED or REJECTED"},{"name":"comments","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Validation comments","title":"Comments"},"description":"Validation comments"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regions/{region_code}/partnerships":{"get":{"tags":["Regional Governance"],"summary":"Get Regional Partnerships","description":"Get aggregated school-enterprise partnerships for a region.\n\nAggregates all PARTNERSHIP connections across schools in the region,\nproviding statistics by school, enterprise, and partnership type.\n\nArgs:\n    region_code: ISO region code\n    \nReturns:\n    Dict with partnership statistics grouped by school and enterprise","operationId":"get_regional_partnerships_api_v1_regions__region_code__partnerships_get","parameters":[{"name":"region_code","in":"path","required":true,"schema":{"type":"string","title":"Region Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regions/{region_code}/benchmark":{"get":{"tags":["Regional Governance"],"summary":"Benchmark Schools","description":"Compare performance metrics across schools in a region.\n\nProvides comparative analysis with rankings and regional averages.\nAvailable metrics: student_count, staff_count, completion_rate, partnership_count.\n\nArgs:\n    region_code: ISO region code\n    school_codes: Optional specific schools to compare (comma-separated)\n    metrics: Metrics to compare (comma-separated)\n    \nReturns:\n    Comparative data with rankings and averages","operationId":"benchmark_schools_api_v1_regions__region_code__benchmark_get","parameters":[{"name":"region_code","in":"path","required":true,"schema":{"type":"string","title":"Region Code"}},{"name":"school_codes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of school codes to compare","title":"School Codes"},"description":"Comma-separated list of school codes to compare"},{"name":"metrics","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated metrics","default":"student_count,staff_count,completion_rate,partnership_count","title":"Metrics"},"description":"Comma-separated metrics"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schools/{school_code}/staff":{"get":{"tags":["School Director"],"summary":"Get School Staff","description":"Get all staff members of a school.\n\nUsed by School Directors to view their personnel.\n\nArgs:\n    school_code: Person code of the school\n    role: Optional filter by role\n    limit: Maximum results\n    offset: Pagination offset\n    \nReturns:\n    Dict with total count, role breakdown, and staff list","operationId":"get_school_staff_api_v1_schools__school_code__staff_get","parameters":[{"name":"school_code","in":"path","required":true,"schema":{"type":"string","title":"School Code"}},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by role: TEACHER, ADMIN, DIRECTOR","title":"Role"},"description":"Filter by role: TEACHER, ADMIN, DIRECTOR"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schools/{school_code}/students":{"get":{"tags":["School Director"],"summary":"Get School Students","description":"Get all students enrolled in a school.\n\nUsed by School Directors to view their student body.\n\nArgs:\n    school_code: Person code of the school\n    education_level: Optional filter by education level\n    class_name: Optional filter by class\n    limit: Maximum results\n    offset: Pagination offset\n    \nReturns:\n    Dict with total count, level breakdown, and student list","operationId":"get_school_students_api_v1_schools__school_code__students_get","parameters":[{"name":"school_code","in":"path","required":true,"schema":{"type":"string","title":"School Code"}},{"name":"education_level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by level: L1, L2, L3, M1, M2, TERMINALE","title":"Education Level"},"description":"Filter by level: L1, L2, L3, M1, M2, TERMINALE"},{"name":"class_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by class name","title":"Class Name"},"description":"Filter by class name"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schools/{school_code}/missions/dashboard":{"get":{"tags":["School Director"],"summary":"Get Missions Dashboard","description":"Get aggregated mission statistics for a school.\n\nUsed by School Directors to monitor student progress.\n\nArgs:\n    school_code: Person code of the school\n    \nReturns:\n    Dict with mission counts, status breakdown, and top performers","operationId":"get_missions_dashboard_api_v1_schools__school_code__missions_dashboard_get","parameters":[{"name":"school_code","in":"path","required":true,"schema":{"type":"string","title":"School Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partnerships/":{"post":{"tags":["Partnerships B2B/B2G"],"summary":"Create Partnership","description":"Create a partnership between a school and an enterprise.\n\nUsed by School Directors to formalize school-enterprise relationships.\n\nArgs:\n    data: Partnership creation data\n    \nReturns:\n    Created partnership data","operationId":"create_partnership_api_v1_partnerships__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnershipCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partnerships/schools/{school_code}":{"get":{"tags":["Partnerships B2B/B2G"],"summary":"Get School Partnerships","description":"Get all partnerships for a school.\n\nArgs:\n    school_code: Person code of the school\n    partnership_type: Optional filter\n    limit: Maximum results\n    offset: Pagination offset\n    \nReturns:\n    Dict with total count and list of enterprise partners","operationId":"get_school_partnerships_api_v1_partnerships_schools__school_code__get","parameters":[{"name":"school_code","in":"path","required":true,"schema":{"type":"string","title":"School Code"}},{"name":"partnership_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: INTERNSHIP, PROJECT, RESEARCH","title":"Partnership Type"},"description":"Filter by type: INTERNSHIP, PROJECT, RESEARCH"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partnerships/enterprises/{enterprise_code}":{"get":{"tags":["Partnerships B2B/B2G"],"summary":"Get Enterprise Partnerships","description":"Get all school partnerships for an enterprise.\n\nUsed by Business Owners to view their educational partners.\n\nArgs:\n    enterprise_code: Person code of the enterprise\n    limit: Maximum results\n    offset: Pagination offset\n    \nReturns:\n    Dict with total count and list of school partners","operationId":"get_enterprise_partnerships_api_v1_partnerships_enterprises__enterprise_code__get","parameters":[{"name":"enterprise_code","in":"path","required":true,"schema":{"type":"string","title":"Enterprise Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/schools/{school_code}/quality":{"get":{"tags":["Quality Audit"],"summary":"Get School Quality Audit","description":"Get comprehensive quality audit for a school.\n\nEvaluates 5 criteria:\n- Curriculum adherence (25%)\n- Mission quality (20%)\n- Partnership ratio (20%)\n- Student progress (20%)\n- Digital readiness (15%)\n\nUsed by Academic Inspectors to assess institutional quality.\n\nArgs:\n    school_code: Person code of the school\n    \nReturns:\n    Dict with overall score, individual criteria, and recommendations","operationId":"get_school_quality_audit_api_v1_audit_schools__school_code__quality_get","parameters":[{"name":"school_code","in":"path","required":true,"schema":{"type":"string","title":"School Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/schools/{school_code}/history":{"get":{"tags":["Quality Audit"],"summary":"Get Audit History","description":"Get historical audit scores for a school.\n\nArgs:\n    school_code: Person code of the school\n    \nReturns:\n    List of historical audit scores with dates","operationId":"get_audit_history_api_v1_audit_schools__school_code__history_get","parameters":[{"name":"school_code","in":"path","required":true,"schema":{"type":"string","title":"School Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/badges":{"get":{"tags":["Badges"],"summary":"Get Badges Catalog","description":"Get the badge catalog.\n\nReturns all available badges that can be earned.\nFilter by category to see specific types of badges.","operationId":"get_badges_catalog_api_v1_badges_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category: SKILL, ACHIEVEMENT, CERTIFICATION, CONTRIBUTION","title":"Category"},"description":"Filter by category: SKILL, ACHIEVEMENT, CERTIFICATION, CONTRIBUTION"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by active status","default":true,"title":"Is Active"},"description":"Filter by active status"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeCatalogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/badges/{badge_code}":{"get":{"tags":["Badges"],"summary":"Get Badge Detail","description":"Get details of a specific badge.\n\nReturns full information about a badge including criteria,\npoints, rarity, and current holder count.","operationId":"get_badge_detail_api_v1_badges__badge_code__get","parameters":[{"name":"badge_code","in":"path","required":true,"schema":{"type":"string","title":"Badge Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/badges":{"get":{"tags":["Person Badges"],"summary":"Get Person Badges","description":"Get all badges for a person.\n\nReturns the list of badges earned by a person, with stats\non total XP and civic points earned.","operationId":"get_person_badges_api_v1_persons__person_code__badges_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","description":"Include revoked badges","default":false,"title":"Include Revoked"},"description":"Include revoked badges"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonBadgesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Person Badges"],"summary":"Award Badge","description":"Award a badge to a person.\n\nUsed by administrators or system to manually award badges.\nMission-triggered badges are auto-awarded on validation.","operationId":"award_badge_api_v1_persons__person_code__badges_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeAwardRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonBadgeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/badges/{badge_code}":{"delete":{"tags":["Person Badges"],"summary":"Revoke Badge","description":"Revoke a badge from a person.\n\nOnly badges marked as 'can_be_revoked' can be revoked.\nRequires a reason for audit purposes.","operationId":"revoke_badge_api_v1_persons__person_code__badges__badge_code__delete","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"badge_code","in":"path","required":true,"schema":{"type":"string","title":"Badge Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeRevokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonBadgeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/badges/{badge_code}/eligibility":{"get":{"tags":["Person Badges"],"summary":"Check Badge Eligibility","description":"Check if a person is eligible for a badge.\n\nReturns eligibility status, missing requirements,\nand progress towards earning the badge.","operationId":"check_badge_eligibility_api_v1_persons__person_code__badges__badge_code__eligibility_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"badge_code","in":"path","required":true,"schema":{"type":"string","title":"Badge Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadgeEligibilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/education-records":{"get":{"tags":["Education Records"],"summary":"Get Person Education Records","description":"Get all education records for a person.\n\nReturns chronologically ordered list of annual records.","operationId":"get_person_education_records_api_v1_persons__person_code__education_records_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationRecordListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Education Records"],"summary":"Create Education Record","description":"Create an annual education record.\n\nOne record = one school year at one institution.\nThe school must be a CivicPerson MORAL entity.","operationId":"create_education_record_api_v1_persons__person_code__education_records_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationRecordCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/education-records/{record_id}":{"get":{"tags":["Education Records"],"summary":"Get Education Record","description":"Get a specific education record by ID.","operationId":"get_education_record_api_v1_education_records__record_id__get","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Education Records"],"summary":"Update Education Record","description":"Update an education record (typically at end of year).\n\nUse this to add:\n- Final grades (average_grade)\n- Ranking\n- Pass/fail status\n- Honors\n- Comments","operationId":"update_education_record_api_v1_education_records__record_id__patch","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationRecordUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Education Records"],"summary":"Delete Education Record","description":"Delete an education record.","operationId":"delete_education_record_api_v1_education_records__record_id__delete","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/education-journey":{"get":{"tags":["Education Records"],"summary":"Get Education Journey","description":"Get complete education journey for a person.\n\nReturns:\n- Chronological timeline of all school years\n- Aggregation by school\n- Current status (student or employed)\n\nExample output:\n- \"2015-2016: 6ème A, Collège Hugo\"\n- \"2016-2017: 5ème B, Collège Hugo\"\n- \"2017-2018: 4ème A, Collège Hugo\"\n- \"2018-2019: 3ème C, Collège Voltaire\" ← changed schools","operationId":"get_education_journey_api_v1_persons__person_code__education_journey_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schools/{school_person_code}/students":{"get":{"tags":["Education Records"],"summary":"Get School Students","description":"Get students enrolled at a school.\n\nCan filter by school year and/or education level.","operationId":"get_school_students_api_v1_schools__school_person_code__students_get","parameters":[{"name":"school_person_code","in":"path","required":true,"schema":{"type":"string","title":"School Person Code"}},{"name":"school_year_label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by year: 2015-2016","title":"School Year Label"},"description":"Filter by year: 2015-2016"},{"name":"education_level_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by level: 6EME, TERMINALE","title":"Education Level Code"},"description":"Filter by level: 6EME, TERMINALE"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/life-journey":{"get":{"tags":["Life Journey"],"summary":"Get Life Journey","description":"Get complete life journey for a person.\n\nAggregates all life events into a single chronological timeline:\n- **EDUCATION**: Annual school records (level, class, school)\n- **WORK**: Professional experiences (positions, companies)\n- **MISSION**: Validated projects and internships\n- **BADGE**: Earned badges and achievements\n\nTimeline is sorted by date (most recent first).\n\nExample response shows person's complete journey from school to career.","operationId":"get_life_journey_api_v1_persons__person_code__life_journey_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LifeJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/life-journey/summary":{"get":{"tags":["Life Journey"],"summary":"Get Life Journey Summary","description":"Get compact summary of person's life journey.\n\nReturns only:\n- Current status (student or employee)\n- Counts (education years, work positions, missions, badges)\n- Organizations count\n\nUse this for quick overview without full timeline.","operationId":"get_life_journey_summary_api_v1_persons__person_code__life_journey_summary_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LifeJourneySummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys":{"get":{"tags":["Journeys"],"summary":"Get Journeys Catalog","description":"Get the journey catalog.\n\nReturns all available journeys (parcours de vie) that users can activate.\n\n**Categories:**\n- CIVIC: Citizenship journeys (citizen, voter)\n- EDUCATIONAL: Education journeys (student, teacher)\n- PROFESSIONAL: Work journeys (employee, business_owner, job_seeker)\n- SOCIAL: Community journeys (community_life, group_member)\n- PROPERTY: Property journeys (property_owner, tenant)\n\nFilter by category to see specific types of journeys.\nFilter by country_code to see journeys available in that country.","operationId":"get_journeys_catalog_api_v1_journeys_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category: CIVIC, EDUCATIONAL, PROFESSIONAL, SOCIAL, PROPERTY","title":"Category"},"description":"Filter by category: CIVIC, EDUCATIONAL, PROFESSIONAL, SOCIAL, PROPERTY"},{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by country availability","title":"Country Code"},"description":"Filter by country availability"},{"name":"is_enabled","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by enabled status","default":true,"title":"Is Enabled"},"description":"Filter by enabled status"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JourneyListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/journeys/{journey_code}":{"get":{"tags":["Journeys"],"summary":"Get Journey Detail","description":"Get details of a specific journey.\n\nReturns full information about a journey including:\n- Display info (icon, colors, emoji)\n- Availability (countries, beta status)\n- Mobile config (sections, features)\n- Eligibility rules (conditions, required proofs)\n- Profil Manager integration code","operationId":"get_journey_detail_api_v1_journeys__journey_code__get","parameters":[{"name":"journey_code","in":"path","required":true,"schema":{"type":"string","title":"Journey Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys":{"get":{"tags":["Person Journeys"],"summary":"Get Person Journeys","description":"Get all journeys activated by a person.\n\nReturns the list of journeys (parcours de vie) that the person has activated,\nwith their validation status and journey-specific data.\n\n**Status values:**\n- PENDING: Journey activated, waiting for proof/validation\n- ACTIVE: Journey validated and active\n- SUSPENDED: Journey temporarily suspended\n- ARCHIVED: Journey deactivated\n\n**Validation status:**\n- PENDING_PROOF: Waiting for proof submission\n- PROOF_SUBMITTED: Proof submitted, waiting for review\n- VALIDATED: Proof validated, journey active\n- REJECTED: Proof rejected","operationId":"get_person_journeys_api_v1_persons__person_code__journeys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code (partition key)","title":"Country Code"},"description":"Country code (partition key)"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: PENDING, ACTIVE, SUSPENDED, ARCHIVED","title":"Status"},"description":"Filter by status: PENDING, ACTIVE, SUSPENDED, ARCHIVED"},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","description":"Include deactivated journeys","default":false,"title":"Include Inactive"},"description":"Include deactivated journeys"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJourneysResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/{journey_code}/activate":{"post":{"tags":["Person Journeys"],"summary":"Activate Journey","description":"Activate a journey for a person.\n\nStarts the journey activation process. The person will need to:\n1. Provide journey-specific data (optional)\n2. Submit required proofs (if any)\n3. Wait for validation (if manual validation required)\n\n**Example: Activating student journey:**\n```json\n{\n    \"journey_data\": {\n        \"institution\": \"Université Paris-Saclay\",\n        \"degree\": \"Master\",\n        \"year\": \"2024-2025\"\n    },\n    \"is_public\": true,\n    \"is_primary\": true\n}\n```","operationId":"activate_journey_api_v1_persons__person_code__journeys__journey_code__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"journey_code","in":"path","required":true,"schema":{"type":"string","title":"Journey Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/JourneyActivateRequest"},{"type":"null"}],"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/{journey_code}/deactivate":{"post":{"tags":["Person Journeys"],"summary":"Deactivate Journey","description":"Deactivate a journey for a person.\n\nArchives the journey. The person can reactivate it later if needed.","operationId":"deactivate_journey_api_v1_persons__person_code__journeys__journey_code__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"journey_code","in":"path","required":true,"schema":{"type":"string","title":"Journey Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reason for deactivation","title":"Reason"},"description":"Reason for deactivation"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/{journey_code}/proof":{"post":{"tags":["Person Journeys"],"summary":"Submit Journey Proof","description":"Submit proof for journey validation.\n\nUploads a proof document for the journey. Multiple proofs can be submitted.\n\n**Common proof types:**\n- `diploma`: Diploma or degree certificate\n- `certificate`: Professional certificate\n- `student_card`: Student ID card\n- `pay_slip`: Pay slip for employment proof\n- `lease`: Lease agreement for tenant proof\n- `deed`: Property deed for owner proof\n- `registration`: Business registration","operationId":"submit_journey_proof_api_v1_persons__person_code__journeys__journey_code__proof_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"journey_code","in":"path","required":true,"schema":{"type":"string","title":"Journey Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JourneyProofSubmitRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/{journey_code}/validate":{"post":{"tags":["Person Journeys"],"summary":"Validate Journey","description":"Validate or reject a journey (ambassador/admin only).\n\nReviews the submitted proofs and validates or rejects the journey.\n\n**Status values:**\n- VALIDATED: Proof is valid, journey becomes ACTIVE\n- REJECTED: Proof is invalid, journey stays PENDING","operationId":"validate_journey_api_v1_persons__person_code__journeys__journey_code__validate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"journey_code","in":"path","required":true,"schema":{"type":"string","title":"Journey Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JourneyValidateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/{journey_code}/eligibility":{"get":{"tags":["Person Journeys"],"summary":"Check Journey Eligibility","description":"Check if a person is eligible for a journey.\n\nReturns:\n- `is_eligible`: Whether the person meets all requirements\n- `is_visible`: Whether the journey is visible to this person\n- `already_activated`: Whether already activated\n- `missing_requirements`: What's missing to be eligible\n- `required_proofs`: Proofs needed for validation\n- `proof_validation_mode`: AUTOMATIC, MANUAL, or API_VERIFICATION","operationId":"check_journey_eligibility_api_v1_persons__person_code__journeys__journey_code__eligibility_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"journey_code","in":"path","required":true,"schema":{"type":"string","title":"Journey Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JourneyEligibilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/ambassador_country/candidacy":{"post":{"tags":["Person Journeys"],"summary":"Submit Ambassador Country Candidacy","description":"Submit candidacy for Ambassador Country.\n\nThe candidate must meet the following prerequisites:\n- Active citizen journey\n- passport_verification_level >= 3\n- No active sanctions\n- Resident of the country\n\n**Note:** Prerequisites may be bypassed by Platform Master validation.\n\n**Body Parameters:**\n- `motivation`: Detailed motivation text (100-3000 chars)\n- `experience`: Relevant experience description (100-2000 chars)\n- `availability`: Weekly availability dict (e.g., {\"monday\": true, ...})\n- `documents`: Optional list of supporting document URLs\n\n**Query Parameters:**\n- `country_code`: The country for which the candidacy is submitted\n\n**Returns:**\n- Candidacy details including the candidacy_id and status","operationId":"submit_ambassador_country_candidacy_api_v1_persons__person_code__journeys_ambassador_country_candidacy_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code for which the candidacy is submitted","title":"Country Code"},"description":"Country code for which the candidacy is submitted"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitAmbassadorCandidacyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorCandidacyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/ambassador_city/candidacy":{"post":{"tags":["Person Journeys"],"summary":"Submit Ambassador City Candidacy","description":"Submit candidacy for Ambassador City.\n\n**Prerequisites:**\n- Active citizen journey\n- passport_verification_level >= 2\n- Resident of the country\n\n**Approval:** Candidacy will be reviewed by the Ambassador Department.","operationId":"submit_ambassador_city_candidacy_api_v1_persons__person_code__journeys_ambassador_city_candidacy_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"},{"name":"city_code","in":"query","required":true,"schema":{"type":"string","description":"Hierarchical city code (e.g., FR-75-75056)","title":"City Code"},"description":"Hierarchical city code (e.g., FR-75-75056)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitAmbassadorLevelCandidacyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorLevelCandidacyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/ambassador_department/candidacy":{"post":{"tags":["Person Journeys"],"summary":"Submit Ambassador Department Candidacy","description":"Submit candidacy for Ambassador Department (Senior Départemental).\n\n**Prerequisites:**\n- Active citizen journey\n- passport_verification_level >= 2\n- Resident of the country\n\n**Approval:** Candidacy will be reviewed by the Ambassador Region.","operationId":"submit_ambassador_department_candidacy_api_v1_persons__person_code__journeys_ambassador_department_candidacy_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"},{"name":"department_code","in":"query","required":true,"schema":{"type":"string","description":"Department code (e.g., 75)","title":"Department Code"},"description":"Department code (e.g., 75)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitAmbassadorLevelCandidacyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorLevelCandidacyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/journeys/ambassador_region/candidacy":{"post":{"tags":["Person Journeys"],"summary":"Submit Ambassador Region Candidacy","description":"Submit candidacy for Ambassador Region.\n\n**Prerequisites:**\n- Active citizen journey\n- passport_verification_level >= 2\n- Resident of the country\n\n**Approval:** Candidacy will be reviewed by the Ambassador Country.","operationId":"submit_ambassador_region_candidacy_api_v1_persons__person_code__journeys_ambassador_region_candidacy_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"},{"name":"region_code","in":"query","required":true,"schema":{"type":"string","description":"Region code (e.g., 75 for Île-de-France)","title":"Region Code"},"description":"Region code (e.g., 75 for Île-de-France)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitAmbassadorLevelCandidacyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorLevelCandidacyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/auto-grant-citizen":{"post":{"tags":["System"],"summary":"System Auto Grant Citizen Journey","description":"[SYSTEM] Auto-grant citizen journey upon identity verification.\n\nThis endpoint is called by the Identity backend when a user's identity\nverification reaches level 2. It grants the \"citizen\" journey which:\n- Is immediately ACTIVE and VALIDATED\n- Is LOCKED (cannot be deactivated by the user)\n- Is marked as SYSTEM_GRANTED\n\n**Authentication:** Requires X-Service-API-Key header (service-to-service).\n\n**Idempotent:** If the citizen journey already exists, it will be locked\nand returned without error.","operationId":"system_auto_grant_citizen_journey_api_v1_system_auto_grant_citizen_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemAutoGrantCitizenRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/auto-grant-project-ambassador":{"post":{"tags":["System"],"summary":"System Auto Grant Project Ambassador","description":"[SYSTEM] Auto-grant project_ambassador journey with proof data.\n\nCalled by the simulation scheduler (Phase 0030) after profile generation.\nCreates the journey as ACTIVE + VALIDATED with all proof fields stored.\n\n**Authentication:** Requires X-Service-API-Key header (service-to-service).\n**Idempotent:** If journey already active, returns existing without error.","operationId":"system_auto_grant_project_ambassador_api_v1_system_auto_grant_project_ambassador_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemAutoGrantProjectAmbassadorRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJourneyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/identity-validations/queue":{"get":{"tags":["identity-ambassador"],"summary":"Get Verification Queue","description":"Get pending identity verifications for this ambassador to review.\n\nThe ambassador's geographic scope determines which verifications they can see.\nHigher-level ambassadors see more verifications.","operationId":"get_verification_queue_api_v1_persons__person_code__identity_validations_queue_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code for partition","title":"Country Code"},"description":"Country code for partition"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingVerificationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/identity-validations/{verification_id}/decision":{"post":{"tags":["identity-ambassador"],"summary":"Submit Verification Decision","description":"Submit approval or rejection for a pending verification.\n\nOnly ambassadors with an active ambassador journey can make decisions.","operationId":"submit_verification_decision_api_v1_persons__person_code__identity_validations__verification_id__decision_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"verification_id","in":"path","required":true,"schema":{"type":"string","title":"Verification Id"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code for partition","title":"Country Code"},"description":"Country code for partition"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorDecisionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/identity-validations/quotas":{"get":{"tags":["identity-ambassador"],"summary":"Get Ambassador Quotas","description":"Get the ambassador's validation quotas and current usage.\n\nReturns the daily quota limits and how many validations have been used today.","operationId":"get_ambassador_quotas_api_v1_persons__person_code__identity_validations_quotas_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code for partition","title":"Country Code"},"description":"Country code for partition"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/claims/search":{"get":{"tags":["claims"],"summary":"Search Entities","description":"Unified search across CivicPerson entities and baro_actors.\n\nReturns matched entities with claimed status.","operationId":"search_entities_api_v1_claims_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Search query","title":"Q"},"description":"Search query"},{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}},{"name":"entity_type","in":"query","required":false,"schema":{"type":"string","description":"ALL, ENTERPRISE, PARTY, ASSOCIATION, PERSON","default":"ALL","title":"Entity Type"},"description":"ALL, ENTERPRISE, PARTY, ASSOCIATION, PERSON"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/claims":{"post":{"tags":["claims"],"summary":"Create Claim","description":"Submit a claim on an existing entity.\n\nPreconditions:\n- No existing active claim from this claimant on the same target\n- Attempt count < 3","operationId":"create_claim_api_v1_claims_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/claims/create-entity":{"post":{"tags":["claims"],"summary":"Create Entity With Claim","description":"Create a new entity (MORAL/GROUP) and an implicit OWNS claim.\n\nThe entity is created in CivicPerson and a claim is automatically\nsubmitted with the caller as the owner.","operationId":"create_entity_with_claim_api_v1_claims_create_entity_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimCreateEntity"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimCreateEntityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/claims/mine":{"get":{"tags":["claims"],"summary":"Get My Claims","description":"Get all claims submitted by the authenticated user.","operationId":"get_my_claims_api_v1_claims_mine_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"PENDING, APPROVED, REJECTED, ALL","title":"Status"},"description":"PENDING, APPROVED, REJECTED, ALL"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/claims/entity/{person_code}":{"get":{"tags":["claims"],"summary":"Get Entity Claims","description":"Get all claims on a specific entity.","operationId":"get_entity_claims_api_v1_claims_entity__person_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimEntityClaimsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/claims/{claim_id}/vote":{"post":{"tags":["claims"],"summary":"Vote On Claim","description":"Vote on a claim (community validation).\n\n- Each citizen can vote once per claim.\n- Votes: YES, NO, ABSTENTION\n- If YES votes reach threshold, claim is auto-approved.\n- If NO votes reach threshold, claim is auto-rejected.","operationId":"vote_on_claim_api_v1_claims__claim_id__vote_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","title":"Claim Id"}},{"name":"country_code","in":"query","required":false,"schema":{"type":"string","default":"FR","title":"Country Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimVote"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimVoteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/persons":{"post":{"tags":["system"],"summary":"Create Person (Service-to-Service)","description":"Create a Person profile from an internal service (e.g., Identity Backend).\n\n    This endpoint is called automatically when a user registers via the Frontend API.\n    It does NOT require a JWT token, but requires the X-Service-API-Key header.\n\n    Note: Users created via Django Admin do NOT call this endpoint.","operationId":"create_person_system_api_v1_system_persons_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSystemCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/persons/by-identity/{identity_user_id}":{"get":{"tags":["system"],"summary":"Get Person by Identity ID (Service-to-Service)","description":"Retrieve a Person by their Identity user ID. Requires X-Service-API-Key.","operationId":"get_person_by_identity_system_api_v1_system_persons_by_identity__identity_user_id__get","parameters":[{"name":"identity_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Identity User Id"}},{"name":"person_type","in":"query","required":false,"schema":{"type":"string","default":"HUMAN","title":"Person Type"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/persons/by-identity/{identity_user_id}/vote-eligibility":{"get":{"tags":["system"],"summary":"Get vote eligibility by Identity ID (Service-to-Service)","description":"Resolve a HUMAN person from Identity and expose the effective citizen journey status used as a vote prerequisite. Requires X-Service-API-Key.","operationId":"get_person_vote_eligibility_system_api_v1_system_persons_by_identity__identity_user_id__vote_eligibility_get","parameters":[{"name":"identity_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Identity User Id"}},{"name":"person_type","in":"query","required":false,"schema":{"type":"string","default":"HUMAN","title":"Person Type"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonVoteEligibilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/tutoring/emancipate":{"post":{"tags":["system"],"summary":"Complete tutoring emancipation (Service-to-Service)","description":"Called by Identity when a delegation is retired. Completes AssistedPerson and closes TUTORS/TUTORED_BY links.","operationId":"emancipate_tutoring_system_api_v1_system_tutoring_emancipate_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TutoringEmancipationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TutoringEmancipationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/bootstrap-platform-master":{"post":{"tags":["system"],"summary":"Bootstrap Platform Master (Service-to-Service)","description":"Bootstrap a Platform Master by creating their journey in PENDING status.\n\n    This is the ONLY bootstrap exception. After this:\n    1. PM can access /platform-master/* endpoints (PENDING status accepted)\n    2. PM sees himself in candidacy list\n    3. PM approves himself via standard flux\n\n    Requires X-Service-API-Key header.","operationId":"bootstrap_platform_master_api_v1_system_bootstrap_platform_master_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapPlatformMasterRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapPlatformMasterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/validate-identity":{"post":{"tags":["system"],"summary":"Validate Identity (Service-to-Service)","description":"Validate a person's identity and set their passport_verification_level.\n\n    This S2S endpoint is used for bootstrap scenarios when no Platform Master\n    exists yet. In normal operation, use the Platform Master endpoints.\n\n    At level 2, the citizen journey is automatically activated.\n\n    Requires X-Service-API-Key header.","operationId":"validate_identity_s2s_api_v1_system_validate_identity_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateIdentityS2SRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateIdentityS2SResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/approve-candidacy":{"post":{"tags":["system"],"summary":"Approve Ambassador Candidacy (Service-to-Service)","description":"Approve an ambassador candidacy at any level via service-to-service call.\n    Used by the ApprovalCascadeScheduler in Identity Admin.\n\n    Supports all levels: ambassador_country, ambassador_region,\n    ambassador_department, ambassador_city.\n\n    Requires X-Service-API-Key header.","operationId":"approve_candidacy_s2s_api_v1_system_approve_candidacy_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveCandidacyS2SRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveCandidacyS2SResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/claims/{claim_id}/resolve":{"post":{"tags":["system"],"summary":"Resolve Claim (Service-to-Service)","description":"Resolve a claim via S2S callback from Ambassador or Pipeline.\n\n    Called when an ambassador approves/rejects a claim or when the\n    automatic document verification pipeline completes.\n\n    Requires X-Service-API-Key header.","operationId":"resolve_claim_s2s_api_v1_system_claims__claim_id__resolve_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","title":"Claim Id"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResolveS2SRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResolveS2SResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/persons/{person_code}/documents":{"get":{"tags":["system"],"summary":"List Person Documents (Service-to-Service)","description":"List all documents for a person via service-to-service call.\n    No access level filtering — returns all documents.\n\n    Requires X-Service-API-Key header.","operationId":"list_person_documents_s2s_api_v1_system_persons__person_code__documents_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"document_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Type"}},{"name":"document_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Category"}},{"name":"verification_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Status"}},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Is Active"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDocumentsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/persons/{person_code}/documents/biometric-summary":{"get":{"tags":["system"],"summary":"Biometric Summary (Service-to-Service)","description":"Get biometric verification summary for a person.\n\n    Requires X-Service-API-Key header.","operationId":"get_biometric_summary_s2s_api_v1_system_persons__person_code__documents_biometric_summary_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BiometricSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/claims/approved-entities":{"get":{"tags":["system"],"summary":"List Approved Claimed Entities (Service-to-Service)","description":"Returns all entities (Person MORAL) that have at least one APPROVED claim\n    for a given country. Used by Territory Sync scheduler to filter tenants.\n\n    Requires X-Service-API-Key header.","operationId":"get_approved_entities_s2s_api_v1_system_claims_approved_entities_get","parameters":[{"name":"country_code","in":"query","required":false,"schema":{"type":"string","description":"Country code","default":"FR","title":"Country Code"},"description":"Country code"},{"name":"target_type","in":"query","required":false,"schema":{"type":"string","description":"Target type filter","default":"CIVICPERSON","title":"Target Type"},"description":"Target type filter"},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovedEntitiesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/persons/by-codes":{"post":{"tags":["system"],"summary":"Get Persons By Codes","description":"K4 (SPEC-009): Batch person card lookup for Ambassador entity lists.\n\nAccepts up to 100 person_codes and returns lightweight card data\n(7 fields) for list display. Avoids N+1 individual GET /persons/{code}\ncalls from Ambassador when rendering entity lists.\n\nAuthentication: X-Service-API-Key (S2S only).","operationId":"get_persons_by_codes_api_v1_system_persons_by_codes_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonsByCodesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonsByCodesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/citizen-journey-stats":{"get":{"tags":["system"],"summary":"Count citizens with granted citizen journey (S2S)","description":"Count citizens with an active citizen journey for a given country.\n\nSource of truth: PersonJourney table in ScyllaDB.\nUsed by Identity Admin for accurate membership eligibility stats.","operationId":"citizen_journey_stats_api_v1_system_citizen_journey_stats_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":3,"title":"Country Code"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/platform-master/dashboard":{"get":{"tags":["Platform Master Ambassador"],"summary":"Get global dashboard (READ-ONLY)","description":"Returns global aggregated statistics for Platform Master.\n\n    **IMPORTANT**: This is READ-ONLY data. Platform Master cannot access\n    any country's operational data. Only aggregated stats are shown.\n\n    Includes:\n    - Number of countries with active Ambassador Country\n    - Total verified citizens (aggregated globally)\n    - Pending Ambassador Country candidacies\n    - Summary of top countries by activity","operationId":"get_global_dashboard_api_v1_platform_master_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalDashboardResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/platform-master/country-candidacies":{"get":{"tags":["Platform Master Ambassador"],"summary":"List Ambassador Country candidacies","description":"Returns list of candidacies for Ambassador Country position.\n\n    Platform Master's main responsibility is to review and approve/reject\n    these candidacies. Each approved candidate becomes the \"President\"\n    of their country with full power over that country's data.","operationId":"list_country_candidacies_api_v1_platform_master_country_candidacies_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"Filter by status: PENDING, APPROVED, REJECTED","default":"PENDING","title":"Status"},"description":"Filter by status: PENDING, APPROVED, REJECTED"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryCandidacyListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/platform-master/country-candidacies/{candidacy_id}":{"get":{"tags":["Platform Master Ambassador"],"summary":"Get candidacy details","description":"Returns detailed information about a specific candidacy.\n\n    Includes:\n    - Candidate profile and platform activity\n    - Eligibility criteria check results\n    - Motivation text\n    - Submitted documents\n    - Country status (current ambassador, citizen count, etc.)","operationId":"get_candidacy_detail_api_v1_platform_master_country_candidacies__candidacy_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"candidacy_id","in":"path","required":true,"schema":{"type":"string","description":"Candidacy UUID","title":"Candidacy Id"},"description":"Candidacy UUID"},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryCandidacyDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/platform-master/country-candidacies/{candidacy_id}/approve":{"post":{"tags":["Platform Master Ambassador"],"summary":"Approve candidacy","description":"Approve a candidacy and grant Ambassador Country role.\n\n    **IMPORTANT RESPONSIBILITY**: By approving this candidacy, you are\n    naming this person as the \"Digital President\" of their country.\n    They will have FULL POWER over all data in their country.\n\n    This action:\n    - Activates the `ambassador_country` journey for the candidate\n    - Grants them full administrative access to their country\n    - Sends notification to the candidate","operationId":"approve_candidacy_api_v1_platform_master_country_candidacies__candidacy_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"candidacy_id","in":"path","required":true,"schema":{"type":"string","description":"Candidacy UUID","title":"Candidacy Id"},"description":"Candidacy UUID"},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveCandidacyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveCandidacyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/platform-master/country-candidacies/{candidacy_id}/reject":{"post":{"tags":["Platform Master Ambassador"],"summary":"Reject candidacy","description":"Reject a candidacy.\n\n    The candidate will be notified and can reapply after a waiting period\n    (default 180 days).\n\n    **Rejection reason codes:**\n    - `insufficient_experience`: Not enough platform experience\n    - `residency_issue`: Not a verified resident of the country\n    - `verification_incomplete`: Identity verification not complete\n    - `sanctions_history`: Has active or recent sanctions\n    - `other`: Other reason (explain in message)","operationId":"reject_candidacy_api_v1_platform_master_country_candidacies__candidacy_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"candidacy_id","in":"path","required":true,"schema":{"type":"string","description":"Candidacy UUID","title":"Candidacy Id"},"description":"Candidacy UUID"},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectCandidacyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectCandidacyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/platform-master/self-validate-identity":{"post":{"tags":["Platform Master Ambassador"],"summary":"Self-validate identity (superuser)","description":"Self-validate Platform Master's identity.\n\n    As a Platform Master (superuser), you can validate your own identity\n    without going through the normal verification process. This:\n    - Sets verification level to 2\n    - Grants citizen journey if not already active\n    - Locks the citizen journey (cannot be deactivated)\n\n    **Note**: This is a superuser privilege. Normal users must go through\n    the standard identity verification process with biometric validation\n    by an Ambassador.","operationId":"self_validate_identity_api_v1_platform_master_self_validate_identity_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelfValidateIdentityResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/platform-master/validate-target-identity":{"post":{"tags":["Platform Master Ambassador"],"summary":"Validate another person's identity (superuser override)","description":"Platform Master can validate another person's identity as a superuser override.\n\n    This is used for:\n    - E2E testing scenarios\n    - Emergency identity validation\n    - Bypassing biometric validation when necessary\n\n    **Effect:**\n    - Sets person's passport_verification_level\n    - Grants citizen journey if not already active\n    - Locks the citizen journey (cannot be deactivated)","operationId":"validate_target_identity_api_v1_platform_master_validate_target_identity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateTargetIdentityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateTargetIdentityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/platform-master/country-ambassadors":{"get":{"tags":["Platform Master Ambassador"],"summary":"List active Ambassador Country","description":"Returns list of all active Ambassador Country.\n\n    For each ambassador, shows:\n    - Country and ambassador info\n    - Statistics (citizen count, local ambassadors count)\n    - Status\n\n    **Note**: Platform Master can suspend or revoke any Ambassador Country\n    but CANNOT access their country's operational data.","operationId":"list_country_ambassadors_api_v1_platform_master_country_ambassadors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryAmbassadorListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/platform-master/country-ambassadors/{person_code}/suspend":{"post":{"tags":["Platform Master Ambassador"],"summary":"Suspend Ambassador Country","description":"Temporarily suspend an Ambassador Country.\n\n    During suspension:\n    - Ambassador cannot perform any administrative actions\n    - The country remains with ambassador assigned but inactive\n    - After suspension period, access is automatically restored\n\n    **Use cases:**\n    - Investigation of misconduct\n    - Extended absence\n    - Performance review period","operationId":"suspend_ambassador_api_v1_platform_master_country_ambassadors__person_code__suspend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","description":"Ambassador's person_code","title":"Person Code"},"description":"Ambassador's person_code"},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendAmbassadorRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendAmbassadorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/platform-master/country-ambassadors/{person_code}/revoke":{"post":{"tags":["Platform Master Ambassador"],"summary":"Revoke Ambassador Country","description":"Permanently revoke an Ambassador Country.\n\n    This is a serious action that:\n    - Immediately removes all ambassador privileges\n    - Makes the country vacant (needs new ambassador)\n    - Prevents reapplication for a specified period\n\n    **Use cases:**\n    - Violation of platform rules\n    - Abuse of power\n    - Voluntary resignation request\n\n    **Note**: The country's data remains intact. A new ambassador\n    will need to be appointed to manage it.","operationId":"revoke_ambassador_api_v1_platform_master_country_ambassadors__person_code__revoke_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","description":"Ambassador's person_code","title":"Person Code"},"description":"Ambassador's person_code"},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code","title":"Country Code"},"description":"Country code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeAmbassadorRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeAmbassadorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/entities/":{"get":{"tags":["entities"],"summary":"List Entities","description":"List persons/entities within a geographic scope.\n\nUsed by the Ambassador Platform territory explorer to display\npopulation at each level of the hierarchy (country → region →\ndepartment → city → sector).\n\nPagination is cursor-based using person_code (alphabetical).","operationId":"list_entities_api_v1_entities__get","parameters":[{"name":"item_selector","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Geographic scope (e.g. FR-ARA-69)","title":"Item Selector"},"description":"Geographic scope (e.g. FR-ARA-69)"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination (person_code)","title":"Cursor"},"description":"Cursor for pagination (person_code)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":50,"title":"Limit"},"description":"Items per page"},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2},{"type":"null"}],"description":"Search by name","title":"Query"},"description":"Search by name"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: HUMAN, MORAL, GROUP","title":"Entity Type"},"description":"Filter by type: HUMAN, MORAL, GROUP"},{"name":"published_only","in":"query","required":false,"schema":{"type":"boolean","description":"Only return persons with is_published=True","default":false,"title":"Published Only"},"description":"Only return persons with is_published=True"},{"name":"zone_prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2},{"type":"null"}],"description":"Filter by hierarchical_city_code prefix (e.g. FR_Bretagne)","title":"Zone Prefix"},"description":"Filter by hierarchical_city_code prefix (e.g. FR_Bretagne)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/territory/tree":{"get":{"tags":["territory"],"summary":"Get Territory Tree","description":"Aggregate population by territory level from the Person table.\n\nOnly territories with at least one registered person are returned.\nThis replaces the GDAM-based approach that listed all territories\nincluding empty ones.","operationId":"get_territory_tree_api_v1_territory_tree_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":2,"description":"ISO2 country code","title":"Country Code"},"description":"ISO2 country code"},{"name":"level","in":"query","required":true,"schema":{"type":"string","description":"Territory level: region, department, city","title":"Level"},"description":"Territory level: region, department, city"},{"name":"parent_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Parent territory code to filter children","title":"Parent Code"},"description":"Parent territory code to filter children"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/territory/populated-hierarchy":{"get":{"tags":["territory"],"summary":"Get Populated Hierarchy","description":"Return the complete hierarchy of populated territories for a country.\n\nAggregates all persons by region, department, and city, then returns\na nested structure with codes and population counts at each level.\n\nThis is used by Universe territorial discovery to detect which\nstructural tenants need to be created.","operationId":"get_populated_hierarchy_api_v1_territory_populated_hierarchy_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":2,"description":"ISO2 country code","title":"Country Code"},"description":"ISO2 country code"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/school-years":{"get":{"tags":["school-years"],"summary":"List School Years","description":"List school years for a country.\n\nPublic endpoint - no authentication required.\nReturns school years sorted by start_year descending (most recent first).","operationId":"list_school_years_api_v1_school_years_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code (FR, BE, CM, SN)","title":"Country Code"},"description":"Country code (FR, BE, CM, SN)"},{"name":"from_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter: start_year >= from_year","title":"From Year"},"description":"Filter: start_year >= from_year"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"description":"Max results","default":100,"title":"Limit"},"description":"Max results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolYearListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/school-years/current":{"get":{"tags":["school-years"],"summary":"Get Current School Year","description":"Get the current school year for a country.\n\nPublic endpoint - no authentication required.","operationId":"get_current_school_year_api_v1_school_years_current_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code (FR, BE, CM, SN)","title":"Country Code"},"description":"Country code (FR, BE, CM, SN)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolYearResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/education-levels":{"get":{"tags":["education-levels"],"summary":"List Education Levels","description":"List all education levels from the referential.\n\nPublic endpoint - no authentication required.\nReturns levels sorted by order (progression scolaire).","operationId":"list_education_levels_api_v1_education_levels_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category (COLLEGE, LYCEE, LICENCE, MASTER, DOCTORAT, PROFESSIONNEL)","title":"Category"},"description":"Filter by category (COLLEGE, LYCEE, LICENCE, MASTER, DOCTORAT, PROFESSIONNEL)"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by active status","default":true,"title":"Is Active"},"description":"Filter by active status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationLevelListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["education-levels"],"summary":"Create Education Level","description":"Create a new education level.\nUses idempotent save (updates if level_code already exists with different data).","operationId":"create_education_level_api_v1_education_levels_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationLevelCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationLevelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/education-levels/{level_code}":{"get":{"tags":["education-levels"],"summary":"Get Education Level","description":"Get a single education level by its code.","operationId":"get_education_level_api_v1_education_levels__level_code__get","parameters":[{"name":"level_code","in":"path","required":true,"schema":{"type":"string","title":"Level Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationLevelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["education-levels"],"summary":"Update Education Level","description":"Update an existing education level.","operationId":"update_education_level_api_v1_education_levels__level_code__put","parameters":[{"name":"level_code","in":"path","required":true,"schema":{"type":"string","title":"Level Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationLevelCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationLevelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["education-levels"],"summary":"Delete Education Level","description":"Soft-delete an education level (set is_active=False).","operationId":"delete_education_level_api_v1_education_levels__level_code__delete","parameters":[{"name":"level_code","in":"path","required":true,"schema":{"type":"string","title":"Level Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/school-categories":{"get":{"tags":["school-categories"],"summary":"List School Categories","description":"List all school categories from the referential.\n\nPublic endpoint - no authentication required.\nReturns categories sorted by order.","operationId":"list_school_categories_api_v1_school_categories_get","parameters":[{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by active status","default":true,"title":"Is Active"},"description":"Filter by active status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolCategoryListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["school-categories"],"summary":"Create School Category","description":"Create a new school category.\nUses idempotent save (updates if category_code already exists with different data).","operationId":"create_school_category_api_v1_school_categories_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolCategoryCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/school-categories/{category_code}":{"get":{"tags":["school-categories"],"summary":"Get School Category","description":"Get a single school category by its code.","operationId":"get_school_category_api_v1_school_categories__category_code__get","parameters":[{"name":"category_code","in":"path","required":true,"schema":{"type":"string","title":"Category Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["school-categories"],"summary":"Update School Category","description":"Update an existing school category.","operationId":"update_school_category_api_v1_school_categories__category_code__put","parameters":[{"name":"category_code","in":"path","required":true,"schema":{"type":"string","title":"Category Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolCategoryCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchoolCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["school-categories"],"summary":"Delete School Category","description":"Soft-delete a school category (set is_active=False).","operationId":"delete_school_category_api_v1_school_categories__category_code__delete","parameters":[{"name":"category_code","in":"path","required":true,"schema":{"type":"string","title":"Category Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tracks":{"get":{"tags":["tracks"],"summary":"List Tracks","description":"List all tracks (filieres) from the referential.\n\nPublic endpoint - no authentication required.","operationId":"list_tracks_api_v1_tracks_get","parameters":[{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by active status","default":true,"title":"Is Active"},"description":"Filter by active status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/profile-types":{"get":{"tags":["profile-types"],"summary":"List Profile Types","description":"List all profile types from the referential.\n\nPublic endpoint - no authentication required.\nReturns profile types sorted by sort_order.","operationId":"list_profile_types_api_v1_profile_types_get","parameters":[{"name":"base_person_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by HUMAN, MORAL, or GROUP","title":"Base Person Type"},"description":"Filter by HUMAN, MORAL, or GROUP"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by active status","default":true,"title":"Is Active"},"description":"Filter by active status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileTypeListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["profile-types"],"summary":"Create Profile Type","description":"Create a new profile type.\nUses idempotent save (updates if code already exists with different data).","operationId":"create_profile_type_api_v1_profile_types_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileTypeCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileTypeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/profile-types/{profile_type_code}":{"get":{"tags":["profile-types"],"summary":"Get Profile Type","description":"Get a single profile type by its code.","operationId":"get_profile_type_api_v1_profile_types__profile_type_code__get","parameters":[{"name":"profile_type_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Type Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileTypeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["profile-types"],"summary":"Update Profile Type","description":"Update an existing profile type.","operationId":"update_profile_type_api_v1_profile_types__profile_type_code__put","parameters":[{"name":"profile_type_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Type Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileTypeCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileTypeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["profile-types"],"summary":"Delete Profile Type","description":"Soft-delete a profile type (set is_active=False).","operationId":"delete_profile_type_api_v1_profile_types__profile_type_code__delete","parameters":[{"name":"profile_type_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Type Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pillar-codes":{"get":{"tags":["pillar-codes"],"summary":"List Pillar Codes","description":"List all pillar codes from the referential.\n\nPublic endpoint — no authentication required.\nReturns pillar codes sorted by pillar_order.","operationId":"list_pillar_codes_api_v1_pillar_codes_get","parameters":[{"name":"domain_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by domain: SAVOIR, AVOIR, or ETRE","title":"Domain Code"},"description":"Filter by domain: SAVOIR, AVOIR, or ETRE"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"Filter by active status","default":true,"title":"Is Active"},"description":"Filter by active status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarCodeListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["pillar-codes"],"summary":"Create Pillar Code","description":"Create a new pillar code.\nUses idempotent save (updates if code already exists with different data).","operationId":"create_pillar_code_api_v1_pillar_codes_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarCodeCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarCodeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pillar-codes/{pillar_code}":{"get":{"tags":["pillar-codes"],"summary":"Get Pillar Code","description":"Get a single pillar code by its code.","operationId":"get_pillar_code_api_v1_pillar_codes__pillar_code__get","parameters":[{"name":"pillar_code","in":"path","required":true,"schema":{"type":"string","title":"Pillar Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarCodeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["pillar-codes"],"summary":"Update Pillar Code","description":"Update an existing pillar code.","operationId":"update_pillar_code_api_v1_pillar_codes__pillar_code__put","parameters":[{"name":"pillar_code","in":"path","required":true,"schema":{"type":"string","title":"Pillar Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarCodeCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PillarCodeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["pillar-codes"],"summary":"Delete Pillar Code","description":"Soft-delete a pillar code (set is_active=False).","operationId":"delete_pillar_code_api_v1_pillar_codes__pillar_code__delete","parameters":[{"name":"pillar_code","in":"path","required":true,"schema":{"type":"string","title":"Pillar Code"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/education-timeline":{"get":{"tags":["education-timeline"],"summary":"Get Education Timeline","description":"Get the aggregated education timeline for a person.\n\nReturns education entries sorted by year (descending), with:\n- Subjects attached to each entry\n- Level and track names resolved\n- Gap detection (missing years between first and last entry)\n- Completeness percentage\n\nRequires Bearer token authentication.","operationId":"get_education_timeline_api_v1_persons__person_code__education_timeline_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Override country code","title":"Country Code"},"description":"Override country code"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationTimelineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/geography/countries":{"get":{"tags":["geography"],"summary":"List Countries","description":"List all countries available in the GDAM geography database.\n\nReturns country codes extracted from ClickHouse table names.\nPublic endpoint, no authentication required.","operationId":"list_countries_api_v1_geography_countries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/geography/cities/search":{"get":{"tags":["geography"],"summary":"Search Cities","description":"Search cities by name in a country's GDAM data.\n\nReturns matching cities with their full territorial hierarchy:\ncity_name, city_code, department_code, department_name, region_code, region_name.\n\nPublic endpoint, no authentication required.","operationId":"search_cities_api_v1_geography_cities_search_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":2,"description":"ISO2 country code","title":"Country Code"},"description":"ISO2 country code"},{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"City name search query (min 2 chars)","title":"Query"},"description":"City name search query (min 2 chars)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max results","default":20,"title":"Limit"},"description":"Max results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/school-records/":{"get":{"tags":["school-records"],"summary":"List School Records","description":"List all school records for a person.","operationId":"list_school_records_api_v1_persons__person_code__school_records__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolRecordListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["school-records"],"summary":"Create School Record","description":"Create a new school record for a person.","operationId":"create_school_record_api_v1_persons__person_code__school_records__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolRecordCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/school-records/{record_id}":{"get":{"tags":["school-records"],"summary":"Get School Record","description":"Get a specific school record.","operationId":"get_school_record_api_v1_persons__person_code__school_records__record_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["school-records"],"summary":"Update School Record","description":"Update a school record.","operationId":"update_school_record_api_v1_persons__person_code__school_records__record_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolRecordUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["school-records"],"summary":"Delete School Record","description":"Soft-delete a school record.","operationId":"delete_school_record_api_v1_persons__person_code__school_records__record_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/school-records/{record_id}/subjects":{"get":{"tags":["school-records"],"summary":"List Record Subjects","description":"List all subjects for a school record.","operationId":"list_record_subjects_api_v1_persons__person_code__school_records__record_id__subjects_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolSubjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["school-records"],"summary":"Create Record Subjects","description":"Bulk-create subjects for a school record. Auto-assigns platforms.","operationId":"create_record_subjects_api_v1_persons__person_code__school_records__record_id__subjects_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSchoolSubjectBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonSchoolSubjectResponse"},"title":"Response Create Record Subjects Api V1 Persons  Person Code  School Records  Record Id  Subjects Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/school-records/{record_id}/subjects/{school_subject_id}":{"delete":{"tags":["school-records"],"summary":"Delete Record Subject","description":"Soft-delete a subject from a school record.","operationId":"delete_record_subject_api_v1_persons__person_code__school_records__record_id__subjects__school_subject_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}},{"name":"school_subject_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"School Subject Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/school-records/{record_id}/platforms":{"get":{"tags":["school-records"],"summary":"List Record Platforms","description":"List all platforms for all subjects of a school record.","operationId":"list_record_platforms_api_v1_persons__person_code__school_records__record_id__platforms_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectPlatformListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/school-records/{record_id}/subjects/{school_subject_id}/platforms":{"post":{"tags":["school-records"],"summary":"Create Subject Platform","description":"Manually assign a platform to a subject (normally auto-assigned).","operationId":"create_subject_platform_api_v1_persons__person_code__school_records__record_id__subjects__school_subject_id__platforms_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}},{"name":"school_subject_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"School Subject Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectPlatformCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectPlatformResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/school-records/{record_id}/platforms/{subject_platform_id}":{"patch":{"tags":["school-records"],"summary":"Update Subject Platform","description":"Update a platform assignment (status, tracking).","operationId":"update_subject_platform_api_v1_persons__person_code__school_records__record_id__platforms__subject_platform_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}},{"name":"subject_platform_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Subject Platform Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectPlatformUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSubjectPlatformResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/teaching-records/":{"get":{"tags":["teaching-records"],"summary":"List Teaching Records","description":"List all teaching records for a person.","operationId":"list_teaching_records_api_v1_persons__person_code__teaching_records__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingRecordListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["teaching-records"],"summary":"Create Teaching Record","description":"Create a new teaching record for a person.","operationId":"create_teaching_record_api_v1_persons__person_code__teaching_records__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingRecordCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/teaching-records/{record_id}":{"get":{"tags":["teaching-records"],"summary":"Get Teaching Record","description":"Get a specific teaching record.","operationId":"get_teaching_record_api_v1_persons__person_code__teaching_records__record_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["teaching-records"],"summary":"Update Teaching Record","description":"Update a teaching record.","operationId":"update_teaching_record_api_v1_persons__person_code__teaching_records__record_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingRecordUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/teaching-records/{record_id}/subjects":{"get":{"tags":["teaching-records"],"summary":"List Teaching Subjects","description":"List all subjects for a teaching record.","operationId":"list_teaching_subjects_api_v1_persons__person_code__teaching_records__record_id__subjects_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingSubjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["teaching-records"],"summary":"Create Teaching Subjects","description":"Bulk-create subjects for a teaching record. Auto-assigns platforms.","operationId":"create_teaching_subjects_api_v1_persons__person_code__teaching_records__record_id__subjects_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonTeachingSubjectBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonTeachingSubjectResponse"},"title":"Response Create Teaching Subjects Api V1 Persons  Person Code  Teaching Records  Record Id  Subjects Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/employment/domains":{"get":{"tags":["reference-employment"],"summary":"List Domains","description":"List all employment domains (12 domains).\n\nEach domain represents a major sector of economic activity.\nUsed by simulations to assign employees to sectors.","operationId":"list_domains_api_v1_reference_employment_domains_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reference/employment/domains/{domain_code}":{"get":{"tags":["reference-employment"],"summary":"Get Domain","description":"Get a single domain by its code.","operationId":"get_domain_api_v1_reference_employment_domains__domain_code__get","parameters":[{"name":"domain_code","in":"path","required":true,"schema":{"type":"string","title":"Domain Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/employment/departments":{"get":{"tags":["reference-employment"],"summary":"List Departments","description":"List all departments (11 departments).\n\nEach department represents an organizational unit within a company.\nOptionally filter by domain to get departments relevant to a specific sector.","operationId":"list_departments_api_v1_reference_employment_departments_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by primary domain","title":"Domain"},"description":"Filter by primary domain"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/employment/job-titles":{"get":{"tags":["reference-employment"],"summary":"List Job Titles","description":"List all job titles (28 titles).\n\nEach title is linked to one or more domains and departments.\nUsed by simulations to assign realistic job titles to employees.","operationId":"list_job_titles_api_v1_reference_employment_job_titles_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by domain","title":"Domain"},"description":"Filter by domain"},{"name":"department","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by department","title":"Department"},"description":"Filter by department"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/employment/skills":{"get":{"tags":["reference-employment"],"summary":"List Skills","description":"List all skills (58+ skills).\n\nEach skill belongs to a category and is applicable to certain domains/departments.\nSkills with domains=[\"*\"] are universally applicable.","operationId":"list_skills_api_v1_reference_employment_skills_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by domain","title":"Domain"},"description":"Filter by domain"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category (TECHNICAL, BUSINESS, etc.)","title":"Category"},"description":"Filter by category (TECHNICAL, BUSINESS, etc.)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/employment/contract-types":{"get":{"tags":["reference-employment"],"summary":"List Contract Types","description":"List all contract types (5 types: CDI, CDD, INTERIM, ALTERNANCE, STAGE).\n\nEach type has a simulation_weight indicating its relative frequency.","operationId":"list_contract_types_api_v1_reference_employment_contract_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reference/employment/experience-levels":{"get":{"tags":["reference-employment"],"summary":"List Experience Levels","description":"List all experience levels (5 levels: DEBUTANT, JUNIOR, CONFIRME, SENIOR, EXPERT).\n\nEach level defines a years_min/years_max range.","operationId":"list_experience_levels_api_v1_reference_employment_experience_levels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reference/employment/salary-grid/{country_code}":{"get":{"tags":["reference-employment"],"summary":"Get Salary Grid","description":"Get the salary grid for a specific country.\n\nEach country file contains: currency, salary_period (ANNUAL/MONTHLY),\nand a grid of salary_min/salary_max per domain x level.\n\nAvailable countries: FR, BE, CM, SN (more to come).","operationId":"get_salary_grid_api_v1_reference_employment_salary_grid__country_code__get","parameters":[{"name":"country_code","in":"path","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by domain","title":"Domain"},"description":"Filter by domain"},{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by experience level","title":"Level"},"description":"Filter by experience level"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/employment/salary-grid":{"get":{"tags":["reference-employment"],"summary":"List Available Salary Grids","description":"List all available salary grid country codes.","operationId":"list_available_salary_grids_api_v1_reference_employment_salary_grid_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reference/education/subjects":{"get":{"tags":["reference-education"],"summary":"List Subjects","description":"List all subjects (19 subjects).\n\nEach subject represents a school/university discipline with its domain,\napplicable levels and tracks, and platform mapping.","operationId":"list_subjects_api_v1_reference_education_subjects_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by domain (SCIENCE, HUMANITIES, etc.)","title":"Domain"},"description":"Filter by domain (SCIENCE, HUMANITIES, etc.)"},{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by applicable level code","title":"Level"},"description":"Filter by applicable level code"},{"name":"track","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by applicable track code","title":"Track"},"description":"Filter by applicable track code"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/education/subjects/{subject_code}":{"get":{"tags":["reference-education"],"summary":"Get Subject","description":"Get a single subject by its code.","operationId":"get_subject_api_v1_reference_education_subjects__subject_code__get","parameters":[{"name":"subject_code","in":"path","required":true,"schema":{"type":"string","title":"Subject Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/education/levels":{"get":{"tags":["reference-education"],"summary":"List Levels","description":"List all education levels (17 levels, from 6EME to DOCTORAT).\n\nEach level belongs to a category (SchoolCategory) and has an order\nfor sorting in progression order.","operationId":"list_levels_api_v1_reference_education_levels_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category (COLLEGE, LYCEE, LICENCE, etc.)","title":"Category"},"description":"Filter by category (COLLEGE, LYCEE, LICENCE, etc.)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/education/levels/{level_code}":{"get":{"tags":["reference-education"],"summary":"Get Level","description":"Get a single education level by its code.","operationId":"get_level_api_v1_reference_education_levels__level_code__get","parameters":[{"name":"level_code","in":"path","required":true,"schema":{"type":"string","title":"Level Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/education/categories":{"get":{"tags":["reference-education"],"summary":"List Categories","description":"List all school categories (7 categories).\n\nCategories group education levels: PRIMAIRE, COLLEGE, LYCEE,\nPROFESSIONNEL, LICENCE, MASTER, DOCTORAT.","operationId":"list_categories_api_v1_reference_education_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reference/education/categories/{category_code}":{"get":{"tags":["reference-education"],"summary":"Get Category","description":"Get a single school category by its code.","operationId":"get_category_api_v1_reference_education_categories__category_code__get","parameters":[{"name":"category_code","in":"path","required":true,"schema":{"type":"string","title":"Category Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/education/tracks":{"get":{"tags":["reference-education"],"summary":"List Tracks","description":"List all tracks (6 tracks).\n\nTracks represent study specializations: SCIENTIFIQUE, LITTERAIRE,\nECONOMIQUE_SOCIAL, TECHNIQUE, PROFESSIONNELLE, GENERALE.","operationId":"list_tracks_api_v1_reference_education_tracks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reference/education/tracks/{track_code}":{"get":{"tags":["reference-education"],"summary":"Get Track","description":"Get a single track by its code.","operationId":"get_track_api_v1_reference_education_tracks__track_code__get","parameters":[{"name":"track_code","in":"path","required":true,"schema":{"type":"string","title":"Track Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/education/level-subjects":{"get":{"tags":["reference-education"],"summary":"List Level Subjects","description":"List level ↔ subject associations.\n\nBuilds the junction from Subject.levels_applicable: for each subject,\nreturns which levels it applies to.\n\nResponse format:\n```json\n{\n  \"level_subjects\": [\n    {\"level_code\": \"6EME\", \"subject_code\": \"MATHEMATICS\", \"subject_name_fr\": \"Mathématiques\"},\n    ...\n  ]\n}\n```","operationId":"list_level_subjects_api_v1_reference_education_level_subjects_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by level category","title":"Category"},"description":"Filter by level category"},{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by specific level code","title":"Level"},"description":"Filter by specific level code"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reference/education/school-years":{"get":{"tags":["reference-education"],"summary":"List School Years","description":"List school years, optionally filtered by country.\n\nSchool years are partitioned by country and sorted by start_year descending.","operationId":"list_school_years_api_v1_reference_education_school_years_get","parameters":[{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by country (FR, BE, CM, SN)","title":"Country Code"},"description":"Filter by country (FR, BE, CM, SN)"},{"name":"current_only","in":"query","required":false,"schema":{"type":"boolean","description":"Only return the current school year","default":false,"title":"Current Only"},"description":"Only return the current school year"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/job-search-profiles/":{"post":{"tags":["job-search-profiles"],"summary":"Create Job Search Profile","description":"Create a job search profile for a citizen.","operationId":"create_job_search_profile_api_v1_persons__person_code__job_search_profiles__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchProfileCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["job-search-profiles"],"summary":"List Job Search Profiles","description":"List all job search profiles for a person.","operationId":"list_job_search_profiles_api_v1_persons__person_code__job_search_profiles__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchProfileListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/job-search-profiles/{profile_code}":{"get":{"tags":["job-search-profiles"],"summary":"Get Job Search Profile","description":"Get a specific job search profile with embedded skills.","operationId":"get_job_search_profile_api_v1_persons__person_code__job_search_profiles__profile_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"profile_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["job-search-profiles"],"summary":"Update Job Search Profile","description":"Update a job search profile.","operationId":"update_job_search_profile_api_v1_persons__person_code__job_search_profiles__profile_code__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"profile_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchProfileUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/job-search-profiles/{profile_code}/skills":{"post":{"tags":["job-search-profiles"],"summary":"Add Skills To Profile","description":"Bulk add skills to a job search profile.","operationId":"add_skills_to_profile_api_v1_persons__person_code__job_search_profiles__profile_code__skills_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"profile_code","in":"path","required":true,"schema":{"type":"string","title":"Profile Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchSkillBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchSkillBulkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/enterprises/{enterprise_person_code}/job-offers/":{"post":{"tags":["job-offers"],"summary":"Create Job Offer","description":"Create a job offer for an enterprise.","operationId":"create_job_offer_api_v1_enterprises__enterprise_person_code__job_offers__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enterprise_person_code","in":"path","required":true,"schema":{"type":"string","title":"Enterprise Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobOfferCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobOfferResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["job-offers"],"summary":"List Job Offers","description":"List all job offers for an enterprise.","operationId":"list_job_offers_api_v1_enterprises__enterprise_person_code__job_offers__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enterprise_person_code","in":"path","required":true,"schema":{"type":"string","title":"Enterprise Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobOfferListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/enterprises/{enterprise_person_code}/job-offers/{offer_code}":{"patch":{"tags":["job-offers"],"summary":"Update Job Offer","description":"Update a job offer (e.g. set status=ACTIVE to publish).","operationId":"update_job_offer_api_v1_enterprises__enterprise_person_code__job_offers__offer_code__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enterprise_person_code","in":"path","required":true,"schema":{"type":"string","title":"Enterprise Person Code"}},{"name":"offer_code","in":"path","required":true,"schema":{"type":"string","title":"Offer Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobOfferUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobOfferResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/job-offers/":{"get":{"tags":["public-job-offers"],"summary":"Search Public Job Offers","description":"Search public active job offers (no auth required).","operationId":"search_public_job_offers_api_v1_public_job_offers__get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobOfferSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/job-offers/{offer_code}":{"get":{"tags":["public-job-offers"],"summary":"Get Public Job Offer","description":"Get a public job offer detail (no auth required). Increments view count.","operationId":"get_public_job_offer_api_v1_public_job_offers__offer_code__get","parameters":[{"name":"offer_code","in":"path","required":true,"schema":{"type":"string","title":"Offer Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobOfferResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/resume/generate":{"post":{"tags":["resumes"],"summary":"Generate Resume","description":"Generate (create or update) a resume for a citizen.","operationId":"generate_resume_api_v1_persons__person_code__resume_generate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeGenerate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeGenerateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/resume":{"get":{"tags":["resumes"],"summary":"Get Resume","description":"Get the resume for a citizen.","operationId":"get_resume_api_v1_persons__person_code__resume_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["resumes"],"summary":"Update Resume","description":"Update resume metadata (visibility, status, searchable).","operationId":"update_resume_api_v1_persons__person_code__resume_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/cv/{slug}":{"get":{"tags":["public-cv"],"summary":"Get Public Cv","description":"Get a public CV by slug (no auth required). Increments view count.","operationId":"get_public_cv_api_v1_public_cv__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicResumeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/job-matches/":{"get":{"tags":["job-matches"],"summary":"Get Person Job Matches","description":"Get job offer matches for a citizen (seeker). Requires ownership.","operationId":"get_person_job_matches_api_v1_persons__person_code__job_matches__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonJobMatchesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/enterprises/{enterprise_code}/candidate-matches/{offer_code}":{"get":{"tags":["job-matches"],"summary":"Get Candidate Matches","description":"Get candidate matches for an enterprise's offer. Requires ownership.","operationId":"get_candidate_matches_api_v1_enterprises__enterprise_code__candidate_matches__offer_code__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"enterprise_code","in":"path","required":true,"schema":{"type":"string","title":"Enterprise Code"}},{"name":"offer_code","in":"path","required":true,"schema":{"type":"string","title":"Offer Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CandidateMatchesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/job-offers/{offer_code}/matches":{"get":{"tags":["job-matches"],"summary":"Get Public Offer Match Stats","description":"Get anonymized match stats for a public offer (no auth required).","operationId":"get_public_offer_match_stats_api_v1_public_job_offers__offer_code__matches_get","parameters":[{"name":"offer_code","in":"path","required":true,"schema":{"type":"string","title":"Offer Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOfferMatchStats"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/job-records/":{"get":{"tags":["job-records"],"summary":"List Job Records","description":"List all job records for a person.","operationId":"list_job_records_api_v1_persons__person_code__job_records__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRecordListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["job-records"],"summary":"Create Job Record","description":"Create a new job record for a person.","operationId":"create_job_record_api_v1_persons__person_code__job_records__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRecordCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/job-records/{record_id}/skills":{"post":{"tags":["job-records"],"summary":"Create Job Skills","description":"Bulk create skills for a job record.\n\nFor now, this is a lightweight implementation that returns the skills\nas-is (no persistence in a separate table — skills are informational).","operationId":"create_job_skills_api_v1_persons__person_code__job_records__record_id__skills_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSkillsBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/ambassador-tutor/profile":{"post":{"tags":["Ambassador Tutor"],"summary":"Create Ambassador Tutor profile","description":"Create a tutor profile for a verified citizen with active membership and validated training.","operationId":"create_tutor_profile_api_v1_persons__person_code__ambassador_tutor_profile_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code (partition key)","title":"Country Code"},"description":"Country code (partition key)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorTutorProfileCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorTutorProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Ambassador Tutor"],"summary":"Get Ambassador Tutor profile","description":"Retrieve the tutor profile for a person.","operationId":"get_tutor_profile_api_v1_persons__person_code__ambassador_tutor_profile_get","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code (partition key)","title":"Country Code"},"description":"Country code (partition key)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorTutorProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Ambassador Tutor"],"summary":"Update Ambassador Tutor profile","description":"Update specialization, context, capacity, skills, availability, or status.","operationId":"update_tutor_profile_api_v1_persons__person_code__ambassador_tutor_profile_patch","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","description":"Country code (partition key)","title":"Country Code"},"description":"Country code (partition key)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorTutorProfileUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmbassadorTutorProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/healthcare-records/":{"get":{"tags":["healthcare-records"],"summary":"List Healthcare Records","description":"Liste tous les exercices de sante d'un praticien.","operationId":"list_healthcare_records_api_v1_persons__person_code__healthcare_records__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareRecordListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["healthcare-records"],"summary":"Create Healthcare Record","description":"Declarer un exercice de sante.","operationId":"create_healthcare_record_api_v1_persons__person_code__healthcare_records__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareRecordCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/healthcare-records/{record_id}":{"get":{"tags":["healthcare-records"],"summary":"Get Healthcare Record","description":"Recuperer un exercice de sante specifique.","operationId":"get_healthcare_record_api_v1_persons__person_code__healthcare_records__record_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["healthcare-records"],"summary":"Update Healthcare Record","description":"Modifier un exercice de sante (horaires, disponibilite...).","operationId":"update_healthcare_record_api_v1_persons__person_code__healthcare_records__record_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareRecordUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["healthcare-records"],"summary":"Delete Healthcare Record","description":"Supprimer un exercice de sante.","operationId":"delete_healthcare_record_api_v1_persons__person_code__healthcare_records__record_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/healthcare/":{"get":{"tags":["public-healthcare"],"summary":"Search Practitioners","description":"Annuaire public des praticiens.\n\nRetourne les informations d'exercice publiques (specialite, horaires,\ndisponibilite). Pas de donnees personnelles identifiantes.","operationId":"search_practitioners_api_v1_public_healthcare__get","parameters":[{"name":"specialty","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specialty code (GENERALISTE, DENTISTE...)","title":"Specialty"},"description":"Specialty code (GENERALISTE, DENTISTE...)"},{"name":"accepts_new_patients","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only accepting new patients","title":"Accepts New Patients"},"description":"Only accepting new patients"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHealthcareListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/patient-records/":{"get":{"tags":["patient-records"],"summary":"List Records","operationId":"list_records_api_v1_persons__person_code__patient_records__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientRecordListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["patient-records"],"summary":"Create Record","operationId":"create_record_api_v1_persons__person_code__patient_records__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientRecordCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/patient-records/{record_id}":{"get":{"tags":["patient-records"],"summary":"Get Record","operationId":"get_record_api_v1_persons__person_code__patient_records__record_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["patient-records"],"summary":"Update Record","operationId":"update_record_api_v1_persons__person_code__patient_records__record_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientRecordUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientRecordResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["patient-records"],"summary":"Delete Record","operationId":"delete_record_api_v1_persons__person_code__patient_records__record_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/healthcare-needs/":{"get":{"tags":["healthcare-needs"],"summary":"List Needs","operationId":"list_needs_api_v1_persons__person_code__healthcare_needs__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareNeedListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["healthcare-needs"],"summary":"Create Need","operationId":"create_need_api_v1_persons__person_code__healthcare_needs__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareNeedCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareNeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/healthcare-needs/{need_id}":{"patch":{"tags":["healthcare-needs"],"summary":"Update Need","operationId":"update_need_api_v1_persons__person_code__healthcare_needs__need_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"need_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Need Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareNeedUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareNeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["healthcare-needs"],"summary":"Delete Need","operationId":"delete_need_api_v1_persons__person_code__healthcare_needs__need_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"need_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Need Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/healthcare-demand/":{"get":{"tags":["public-healthcare-demand"],"summary":"Get Healthcare Demand","description":"Statistiques anonymisees de la demande de soins active.\n\nRetourne le nombre de patients en recherche de praticien,\nventile par specialite et par niveau d'urgence.\nAucune donnee personnelle n'est exposee.","operationId":"get_healthcare_demand_api_v1_public_healthcare_demand__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcareDemandResponse"}}}}}}},"/api/v1/system/convergence/nodes":{"post":{"tags":["convergence-system"],"summary":"Create convergence node chain (S2S)","description":"Ouvrir un compte : creer une chaine de noeuds de convergence.\nIdempotent — si le noeud existe deja, retourne 200 avec chain_created=0.","operationId":"create_node_chain_api_v1_system_convergence_nodes_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeChainCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeResponse"}}}},"200":{"description":"Node already exists (idempotent)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/convergence/subscribe":{"post":{"tags":["convergence-system"],"summary":"Subscribe person to convergence node (S2S)","description":"Passer une ecriture d'abonnement.\nDual-write + increment compteurs + detection convergence.\nIdempotent — si deja abonne, retourne 200 avec already_exists=true.","operationId":"subscribe_api_v1_system_convergence_subscribe_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"200":{"description":"Already subscribed (idempotent)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/convergence/unsubscribe":{"post":{"tags":["convergence-system"],"summary":"Unsubscribe person from convergence node (S2S)","description":"Cloturer une ecriture : desabonner une personne d'un noeud.\nRetourne 404 si pas d'abonnement actif.","operationId":"unsubscribe_api_v1_system_convergence_unsubscribe_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/convergence/batch-subscribe":{"post":{"tags":["convergence-system"],"summary":"Batch subscribe persons to convergence nodes (S2S)","description":"Passer un lot d'ecritures d'un coup (bordereau complet).\nLes erreurs individuelles NE BLOQUENT PAS le lot.","operationId":"batch_subscribe_api_v1_system_convergence_batch_subscribe_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSubscribeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSubscribeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/convergence/batch-nodes":{"post":{"tags":["convergence-system"],"summary":"Batch create convergence node chains (S2S)","description":"Creer un lot de chaines de noeuds d'un coup.\nIdempotent — chaque entree est traitee independamment.","operationId":"batch_nodes_api_v1_system_convergence_batch_nodes_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchNodeCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchNodeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/convergence/education/classrooms":{"post":{"tags":["convergence-system"],"summary":"Register education classrooms (S2S)","description":"Pre-enregistrer des salles de classe (referentiel education).\nIdempotent — salle existante ignoree.","operationId":"register_classrooms_api_v1_system_convergence_education_classrooms_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassroomRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassroomRegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convergence/nodes":{"get":{"tags":["convergence"],"summary":"List convergence nodes","description":"Lister/filtrer les noeuds de convergence.","operationId":"list_nodes_api_v1_convergence_nodes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},{"name":"gdam_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gdam Code"}},{"name":"node_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Type"}},{"name":"parent_node_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Node Code"}},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Is Active"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Nodes Api V1 Convergence Nodes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convergence/nodes/{node_code}/children":{"get":{"tags":["convergence"],"summary":"Get children of a convergence node","description":"Naviguer dans l'arborescence : enfants directs d'un noeud.","operationId":"get_node_children_api_v1_convergence_nodes__node_code__children_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"node_code","in":"path","required":true,"schema":{"type":"string","title":"Node Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeChildrenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convergence/nodes/{node_code}/subscribers":{"get":{"tags":["convergence"],"summary":"Get subscribers of a convergence node","description":"Qui est abonne a ce compte ? (vue noeud).","operationId":"get_node_subscribers_api_v1_convergence_nodes__node_code__subscribers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"node_code","in":"path","required":true,"schema":{"type":"string","title":"Node Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"role_in_node","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role In Node"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeSubscribersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convergence/stats":{"get":{"tags":["convergence"],"summary":"Convergence statistics","description":"Statistiques globales de convergence (dashboard).","operationId":"get_stats_api_v1_convergence_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvergenceStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convergence/balance":{"get":{"tags":["convergence"],"summary":"Convergence balance check (S2S only)","description":"La balance : verifier que les livres sont a l'equilibre.\nVerifie que subscriber_count/role_counts sur chaque noeud\ncorrespondent au nombre reel d'abonnements actifs.\nS2S uniquement (audit interne).","operationId":"get_balance_api_v1_convergence_balance_get","parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},{"name":"gdam_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gdam Code"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvergenceBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/convergence/education/classrooms":{"get":{"tags":["convergence"],"summary":"List education classrooms","description":"Lister les salles de classe d'un etablissement.","operationId":"list_classrooms_api_v1_convergence_education_classrooms_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"school_node_code","in":"query","required":true,"schema":{"type":"string","title":"School Node Code"}},{"name":"school_year","in":"query","required":true,"schema":{"type":"string","title":"School Year"}},{"name":"level_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level Code"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassroomListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/convergence":{"get":{"tags":["convergence"],"summary":"Get person convergence subscriptions","description":"Ma toile de convergence : tous mes abonnements.","operationId":"get_person_convergence_api_v1_persons__person_code__convergence_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConvergenceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/convergence/matches":{"get":{"tags":["convergence"],"summary":"Get person convergence matches","description":"Mes convergences confirmees : ou est-ce que je croise quelqu'un.\nNote: cette implementation de base retourne les matches detectes\nen temps reel. Un cache/table persistante sera ajoutee en Phase 4.","operationId":"get_person_convergence_matches_api_v1_persons__person_code__convergence_matches_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConvergenceMatchesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/territorial-roles":{"get":{"tags":["territorial-roles"],"summary":"List territorial roles for a person","description":"Tous les roles territoriaux actifs d'une personne.","operationId":"get_person_roles_api_v1_persons__person_code__territorial_roles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"role_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Type"}},{"name":"target_org","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Org"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Person Roles Api V1 Persons  Person Code  Territorial Roles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["territorial-roles"],"summary":"Create a territorial role (S2S only)","description":"Creer un role territorial.\nRequiert X-Service-API-Key (service-to-service).","operationId":"create_role_api_v1_persons__person_code__territorial_roles_post","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Role Api V1 Persons  Person Code  Territorial Roles Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/persons/{person_code}/territorial-roles/{role_id}":{"delete":{"tags":["territorial-roles"],"summary":"Deactivate a territorial role (S2S only)","description":"Desactiver un role territorial (soft-delete).","operationId":"deactivate_role_api_v1_persons__person_code__territorial_roles__role_id__delete","parameters":[{"name":"person_code","in":"path","required":true,"schema":{"type":"string","title":"Person Code"}},{"name":"role_id","in":"path","required":true,"schema":{"type":"string","title":"Role Id"}},{"name":"country_code","in":"query","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Deactivate Role Api V1 Persons  Person Code  Territorial Roles  Role Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/territory/{country_code}/scope/{scope_code}/roles":{"get":{"tags":["territorial-roles"],"summary":"List roles by geographic scope","description":"Tous les roles actifs dans une zone geographique (match exact).","operationId":"get_roles_by_scope_api_v1_territory__country_code__scope__scope_code__roles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"path","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"scope_code","in":"path","required":true,"schema":{"type":"string","title":"Scope Code"}},{"name":"role_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Type"}},{"name":"target_org","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Org"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Roles By Scope Api V1 Territory  Country Code  Scope  Scope Code  Roles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/territory/{country_code}/scope/{scope_prefix}/roles/aggregate":{"get":{"tags":["territorial-roles"],"summary":"List roles by geographic scope prefix (aggregation)","description":"Roles actifs dans une zone et ses sous-zones (prefix match).\n\nExemple : scope_prefix=FR_IDF → tous les roles en Ile-de-France\n(regions, departements, villes).","operationId":"get_roles_by_scope_prefix_api_v1_territory__country_code__scope__scope_prefix__roles_aggregate_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_code","in":"path","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"scope_prefix","in":"path","required":true,"schema":{"type":"string","title":"Scope Prefix"}},{"name":"role_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Type"}},{"name":"target_org","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Org"}},{"name":"X-Service-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Roles By Scope Prefix Api V1 Territory  Country Code  Scope  Scope Prefix  Roles Aggregate Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/countries/open":{"get":{"tags":["garde-pays"],"summary":"List countries open for registration","description":"Pays ouverts a l'inscription.\n\nUn pays est \"ouvert\" si CivicWall ET Academy y sont bootstrappes\n(Person MORAL publiee avec 'civicwall' ou 'academy' dans le person_code)\net si le pays dispose encore de ses tables GDAM dans ClickHouse.\n\nEndpoint public — utilise par Identity Admin pour synchroniser\nCountryList.is_public dans Identity Backend.","operationId":"get_open_countries_api_v1_countries_open_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Open Countries Api V1 Countries Open Get"}}}}}}},"/api/v1/maintenance/seed-org":{"post":{"tags":["Maintenance"],"summary":"Creer une organisation MORAL (idempotent)","description":"Recoit le JSON complet d'une organisation MORAL et la cree dans ScyllaDB.\n\nIdempotent : si l'org existe deja (meme person_code ou meme datakey),\nretourne 200 avec status=\"exists\".\n\nLe JSON doit contenir au minimum :\n- person_type: \"MORAL\"\n- moral_name: nom de l'organisation\n- country_primary_residence_code: code pays ISO 2\n- profile_type_code: \"ASSOCIATION\", \"COOPERATIVE\", etc.\n- moral_industry: \"CIVIC\", \"EDUCATION\", \"CIVIC_TECH\", etc.","operationId":"seed_organization_api_v1_maintenance_seed_org_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Org Json"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeedOrgResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/maintenance/seed-roles":{"post":{"tags":["Maintenance"],"summary":"Creer des TerritorialRoles pour une organisation","description":"Cree des TerritorialRoles pour une organisation.\n\nChaque role est idempotent (datakey dans le modele).\nEn cas d'erreur partielle, les roles deja crees sont conserves.","operationId":"seed_roles_api_v1_maintenance_seed_roles_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeedRolesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeedRolesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/maintenance/org-status/{country_code}":{"get":{"tags":["Maintenance"],"summary":"Etat des 3 organisations fondatrices d'un pays","description":"Retourne l'etat des 3 organisations fondatrices pour un pays :\n- CivicWall (CIVIC + ASSOCIATION)\n- Academy (EDUCATION + ASSOCIATION)\n- Cooperative (COOPERATIVE)\n\n`is_open` = True si CivicWall ET Academy existent.","operationId":"get_org_status_api_v1_maintenance_org_status__country_code__get","parameters":[{"name":"country_code","in":"path","required":true,"schema":{"type":"string","title":"Country Code"}},{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sync/identity":{"post":{"tags":["sync"],"summary":"Sync From Identity","description":"Endpoint de synchronisation appelé par Identity.\n\nMet à jour les données Person depuis Identity quand le nom change.\n\nAuthentication: X-Service-API-Key header (service-to-service)","operationId":"sync_from_identity_api_v1_sync_identity_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentitySyncRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sync/identity-manual":{"post":{"tags":["sync"],"summary":"Manual Sync Identity Civicperson","description":"Lance une synchronisation manuelle Identity → CivicPerson.\n\nOptions:\n- sync_all=true : Synchronise TOUS les utilisateurs HUMAN\n- identity_user_id=\"uuid\" : Synchronise UN utilisateur spécifique\n- dry_run=true : Analyse sans modifier (preview)\n\nAuthentication: X-Service-API-Key header","operationId":"manual_sync_identity_civicperson_api_v1_sync_identity_manual_post","parameters":[{"name":"X-Service-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Service-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualSyncRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"tags":["meta"],"summary":"API home","operationId":"home__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health Check","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/version":{"get":{"tags":["version"],"summary":"Version","description":"Return API version information.","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionInfo"}}}}}}}},"components":{"schemas":{"ActivityBulkCreate":{"properties":{"activities":{"items":{"$ref":"#/components/schemas/ActivityCreate"},"type":"array","title":"Activities"}},"type":"object","required":["activities"],"title":"ActivityBulkCreate","description":"Schema for bulk creating activities."},"ActivityCreate":{"properties":{"platform_code":{"type":"string","title":"Platform Code"},"activity_type":{"type":"string","pattern":"^(LOGIN|LOGOUT|WORK|SUBMIT|EXPORT|CREATE|UPDATE|VIEW|OTHER)$","title":"Activity Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"duration_minutes":{"type":"integer","minimum":0.0,"title":"Duration Minutes","default":0},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"platform_resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Resource"},"source":{"type":"string","pattern":"^(SSO_TRACKER|WEBHOOK|PLATFORM_API|MANUAL)$","title":"Source","default":"SSO_TRACKER"},"source_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Session Id"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["platform_code","activity_type"],"title":"ActivityCreate","description":"Schema for creating an activity (from Activity Tracker service)."},"ActivityListResponse":{"properties":{"mission_id":{"type":"string","format":"uuid","title":"Mission Id"},"activities":{"items":{"$ref":"#/components/schemas/ActivityResponse"},"type":"array","title":"Activities"},"total_duration_minutes":{"type":"integer","title":"Total Duration Minutes"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["mission_id","activities","total_duration_minutes","count"],"title":"ActivityListResponse","description":"Schema for activity list."},"ActivityResponse":{"properties":{"activity_id":{"type":"string","format":"uuid","title":"Activity Id"},"mission_id":{"type":"string","format":"uuid","title":"Mission Id"},"person_code":{"type":"string","title":"Person Code"},"platform_code":{"type":"string","title":"Platform Code"},"activity_type":{"type":"string","title":"Activity Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"duration_minutes":{"type":"integer","title":"Duration Minutes","default":0},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"},"source":{"type":"string","title":"Source"}},"type":"object","required":["activity_id","mission_id","person_code","platform_code","activity_type","recorded_at","source"],"title":"ActivityResponse","description":"Schema for activity response."},"AmbassadorAssignmentRequest":{"properties":{"helper_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Person Code"},"relationship_type":{"type":"string","title":"Relationship Type","default":"TUTOR"}},"type":"object","title":"AmbassadorAssignmentRequest"},"AmbassadorAssignmentResponse":{"properties":{"assisted_id":{"type":"string","format":"uuid","title":"Assisted Id"},"assisted_code":{"type":"string","title":"Assisted Code"},"beneficiary_person_code":{"type":"string","title":"Beneficiary Person Code"},"helper_person_code":{"type":"string","title":"Helper Person Code"},"helper_id":{"type":"string","format":"uuid","title":"Helper Id"},"helper_code":{"type":"string","title":"Helper Code"},"relationship_type":{"type":"string","title":"Relationship Type"},"connection_type":{"type":"string","title":"Connection Type"},"delegation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delegation Id"}},"type":"object","required":["assisted_id","assisted_code","beneficiary_person_code","helper_person_code","helper_id","helper_code","relationship_type","connection_type"],"title":"AmbassadorAssignmentResponse"},"AmbassadorCandidacyResponse":{"properties":{"candidacy_id":{"type":"string","title":"Candidacy Id"},"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"status":{"type":"string","title":"Status","default":"PENDING"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"message":{"type":"string","title":"Message"}},"type":"object","required":["candidacy_id","country_code","person_code","submitted_at","message"],"title":"AmbassadorCandidacyResponse","description":"Response after submitting candidacy."},"AmbassadorDecisionRequest":{"properties":{"decision":{"type":"string","pattern":"^(approve|reject)$","title":"Decision"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Required if decision is 'reject'"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["decision"],"title":"AmbassadorDecisionRequest"},"AmbassadorDecisionResponse":{"properties":{"status":{"type":"string","title":"Status"},"verification_id":{"type":"string","title":"Verification Id"},"level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Level"},"verified_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verified At"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"ambassador":{"additionalProperties":true,"type":"object","title":"Ambassador"}},"type":"object","required":["status","verification_id","ambassador"],"title":"AmbassadorDecisionResponse"},"AmbassadorInfo":{"properties":{"person_code":{"type":"string","title":"Person Code"},"journey_code":{"type":"string","title":"Journey Code","default":"ambassador_country"},"scope":{"additionalProperties":{"type":"string"},"type":"object","title":"Scope"},"activated_at":{"type":"string","format":"date-time","title":"Activated At"}},"type":"object","required":["person_code","scope","activated_at"],"title":"AmbassadorInfo","description":"Info about newly created ambassador."},"AmbassadorInfoResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"needs_ambassador":{"type":"boolean","title":"Needs Ambassador","default":false},"needs_ambassador_data":{"anyOf":[{"$ref":"#/components/schemas/NeedsAmbassadorResponse"},{"type":"null"}]},"is_ambassador":{"type":"boolean","title":"Is Ambassador","default":false},"ambassador_data":{"anyOf":[{"$ref":"#/components/schemas/IsAmbassadorResponse"},{"type":"null"}]}},"type":"object","required":["person_code"],"title":"AmbassadorInfoResponse","description":"Combined schema for ambassador info endpoint."},"AmbassadorLevelCandidacyResponse":{"properties":{"candidacy_id":{"type":"string","title":"Candidacy Id"},"country_code":{"type":"string","title":"Country Code"},"ambassador_level":{"type":"string","title":"Ambassador Level"},"zone_code":{"type":"string","title":"Zone Code"},"zone_name":{"type":"string","title":"Zone Name"},"person_code":{"type":"string","title":"Person Code"},"status":{"type":"string","title":"Status","default":"PENDING"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"message":{"type":"string","title":"Message"}},"type":"object","required":["candidacy_id","country_code","ambassador_level","zone_code","zone_name","person_code","submitted_at","message"],"title":"AmbassadorLevelCandidacyResponse","description":"Response after submitting city/department/region candidacy."},"AmbassadorMatchResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"matched_ambassadors":{"items":{"$ref":"#/components/schemas/IsAmbassadorResponse"},"type":"array","title":"Matched Ambassadors"},"total_available":{"type":"integer","title":"Total Available"},"match_criteria":{"additionalProperties":{"type":"string"},"type":"object","title":"Match Criteria"}},"type":"object","required":["person_code","matched_ambassadors","total_available","match_criteria"],"title":"AmbassadorMatchResponse","description":"Response for ambassador matching."},"AmbassadorTutorProfileCreate":{"properties":{"specialization":{"type":"string","title":"Specialization","description":"EQUIPMENT, LITERACY, FULL"},"context":{"type":"string","title":"Context","description":"FAMILY, ASSOCIATIVE, PROFESSIONAL, INFORMAL"},"capacity_max":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Capacity Max","default":5},"skills":{"items":{"type":"string"},"type":"array","title":"Skills"},"training_code":{"type":"string","title":"Training Code","default":"TUTOR_DIGITAL_BASE"},"training_status":{"type":"string","title":"Training Status","default":"VALIDATED"}},"type":"object","required":["specialization","context"],"title":"AmbassadorTutorProfileCreate","description":"Request body for POST /persons/{code}/ambassador-tutor/profile."},"AmbassadorTutorProfileResponse":{"properties":{"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"person_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Id"},"specialization":{"type":"string","title":"Specialization"},"context":{"type":"string","title":"Context"},"capacity_max":{"type":"integer","title":"Capacity Max","default":5},"active_beneficiaries_count":{"type":"integer","title":"Active Beneficiaries Count","default":0},"skills":{"items":{"type":"string"},"type":"array","title":"Skills"},"training_code":{"type":"string","title":"Training Code","default":"TUTOR_DIGITAL_BASE"},"training_status":{"type":"string","title":"Training Status","default":"VALIDATED"},"training_validated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Training Validated At"},"is_available":{"type":"boolean","title":"Is Available","default":true},"is_active":{"type":"boolean","title":"Is Active","default":true},"status":{"type":"string","title":"Status","default":"ACTIVE"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["country_code","person_code","specialization","context"],"title":"AmbassadorTutorProfileResponse","description":"Response body for GET/POST/PATCH /persons/{code}/ambassador-tutor/profile."},"AmbassadorTutorProfileUpdate":{"properties":{"specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialization"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"capacity_max":{"anyOf":[{"type":"integer","maximum":20.0,"minimum":1.0},{"type":"null"}],"title":"Capacity Max"},"skills":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills"},"is_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Available"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"AmbassadorTutorProfileUpdate","description":"Request body for PATCH /persons/{code}/ambassador-tutor/profile."},"ApproveCandidacyRequest":{"properties":{"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Welcome message to the new ambassador"}},"type":"object","title":"ApproveCandidacyRequest","description":"Request to approve a candidacy."},"ApproveCandidacyResponse":{"properties":{"status":{"type":"string","title":"Status","default":"approved"},"ambassador":{"$ref":"#/components/schemas/AmbassadorInfo"},"notification_sent":{"type":"boolean","title":"Notification Sent","default":true}},"type":"object","required":["ambassador"],"title":"ApproveCandidacyResponse","description":"Response after approving candidacy."},"ApproveCandidacyS2SRequest":{"properties":{"candidacy_id":{"type":"string","format":"uuid","title":"Candidacy Id","description":"UUID of the candidacy to approve"},"country_code":{"type":"string","title":"Country Code","description":"Country code","default":"FR"},"ambassador_level":{"type":"string","title":"Ambassador Level","description":"Ambassador level: ambassador_country, ambassador_region, ambassador_department, ambassador_city"},"approved_by":{"type":"string","title":"Approved By","description":"Who approved (for audit)","default":"CASCADE_SCHEDULER"}},"type":"object","required":["candidacy_id","ambassador_level"],"title":"ApproveCandidacyS2SRequest","description":"Request to approve an ambassador candidacy via S2S (cascade scheduler)."},"ApproveCandidacyS2SResponse":{"properties":{"candidacy_id":{"type":"string","title":"Candidacy Id"},"ambassador_level":{"type":"string","title":"Ambassador Level"},"person_code":{"type":"string","title":"Person Code"},"status":{"type":"string","title":"Status"},"journey_created":{"type":"boolean","title":"Journey Created"},"message":{"type":"string","title":"Message"}},"type":"object","required":["candidacy_id","ambassador_level","person_code","status","journey_created","message"],"title":"ApproveCandidacyS2SResponse","description":"Response after approving a candidacy."},"ApprovedEntitiesResponse":{"properties":{"entities":{"items":{"$ref":"#/components/schemas/ApprovedEntityItem"},"type":"array","title":"Entities"},"total":{"type":"integer","title":"Total"},"country_code":{"type":"string","title":"Country Code"}},"type":"object","required":["entities","total","country_code"],"title":"ApprovedEntitiesResponse","description":"Response listing approved entities for a country."},"ApprovedEntityItem":{"properties":{"target_person_code":{"type":"string","title":"Target Person Code"},"claim_type":{"type":"string","title":"Claim Type"},"claimant_person_code":{"type":"string","title":"Claimant Person Code"},"approved_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved At"}},"type":"object","required":["target_person_code","claim_type","claimant_person_code"],"title":"ApprovedEntityItem","description":"Single approved entity in the response."},"AssignedProfileBulkCreate":{"properties":{"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"profile_codes":{"items":{"type":"string"},"type":"array","title":"Profile Codes","description":"List of profile codes to assign"},"source":{"type":"string","title":"Source","description":"Source of assignment"}},"type":"object","required":["profile_codes","source"],"title":"AssignedProfileBulkCreate","description":"Schema for bulk assigning profiles."},"AssignedProfileListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"assigned_profiles":{"items":{"$ref":"#/components/schemas/AssignedProfileResponse"},"type":"array","title":"Assigned Profiles"},"total_count":{"type":"integer","title":"Total Count"},"active_count":{"type":"integer","title":"Active Count","default":0},"by_category":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"By Category"}},"type":"object","required":["person_code","assigned_profiles","total_count"],"title":"AssignedProfileListResponse","description":"Schema for list of assigned profiles."},"AssignedProfileResponse":{"properties":{"profile_id":{"type":"string","format":"uuid","title":"Profile Id"},"person_code":{"type":"string","title":"Person Code"},"profile_code":{"type":"string","title":"Profile Code"},"profile_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Name"},"profile_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Description"},"profile_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Category"},"source":{"type":"string","title":"Source"},"assigned_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assigned By"},"assigned_at":{"type":"string","format":"date-time","title":"Assigned At"},"is_active":{"type":"boolean","title":"Is Active","default":true},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"verification_level":{"type":"integer","title":"Verification Level","default":0},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["profile_id","person_code","profile_code","source","assigned_at","created_at"],"title":"AssignedProfileResponse","description":"Schema for assigned profile response."},"AssignedProfileUpdate":{"properties":{"profile_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Name"},"profile_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Description"},"profile_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Category"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"},"verification_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Verification Level"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"AssignedProfileUpdate","description":"Schema for updating an assigned profile."},"AssistedPersonCreate":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"assistance_type":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"title":"Assistance Type","default":"DIGITAL_LITERACY"},"difficulty_level":{"type":"string","title":"Difficulty Level","default":"MODERATE"},"specific_needs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Specific Needs"},"digital_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Digital Barriers"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Goals"},"internet_access":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internet Access"},"helper_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Helper Id"},"helper_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Code"},"helper_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Name"},"relationship_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"},"consent_given":{"type":"boolean","title":"Consent Given","default":false},"guardian_consent":{"type":"boolean","title":"Guardian Consent","default":false},"guardian_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guardian Name"}},"type":"object","title":"AssistedPersonCreate"},"AssistedPersonResponse":{"properties":{"assisted_id":{"type":"string","format":"uuid","title":"Assisted Id"},"assisted_code":{"type":"string","title":"Assisted Code"},"person_code":{"type":"string","title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"assistance_type":{"items":{"type":"string"},"type":"array","title":"Assistance Type"},"difficulty_level":{"type":"string","title":"Difficulty Level"},"digital_barriers":{"items":{"type":"string"},"type":"array","title":"Digital Barriers"},"goals":{"items":{"type":"string"},"type":"array","title":"Goals"},"internet_access":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internet Access"},"helper_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Helper Id"},"helper_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Code"},"helper_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Name"},"relationship_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"},"literacy_level":{"type":"integer","title":"Literacy Level","default":1},"autonomy_score":{"type":"number","title":"Autonomy Score","default":0.0},"status":{"type":"string","title":"Status","default":"ACTIVE"},"consent_given":{"type":"boolean","title":"Consent Given","default":false},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["assisted_id","assisted_code","person_code","display_name","assistance_type","difficulty_level"],"title":"AssistedPersonResponse"},"AssistedPersonUpdate":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"assistance_type":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Assistance Type"},"difficulty_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Difficulty Level"},"specific_needs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Specific Needs"},"digital_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Digital Barriers"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Goals"},"internet_access":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internet Access"},"helper_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Helper Id"},"helper_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Code"},"helper_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Name"},"relationship_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"},"consent_given":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Consent Given"},"guardian_consent":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Guardian Consent"},"guardian_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guardian Name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"literacy_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Literacy Level"},"autonomy_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Autonomy Score"}},"type":"object","title":"AssistedPersonUpdate"},"BadgeAwardRequest":{"properties":{"badge_code":{"type":"string","title":"Badge Code","description":"Badge code to award"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Reason for awarding"},"awarded_by_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Awarded By Person Code","description":"Who is awarding (null for system)"},"source":{"type":"string","title":"Source","description":"MISSION_COMPLETION, MANUAL, SYSTEM, AUTO","default":"MANUAL"},"mission_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mission Id","description":"Related mission if applicable"},"mission_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mission Code"}},"type":"object","required":["badge_code"],"title":"BadgeAwardRequest","description":"Request to award a badge to a person"},"BadgeCatalogResponse":{"properties":{"total":{"type":"integer","title":"Total"},"badges":{"items":{"$ref":"#/components/schemas/BadgeResponse"},"type":"array","title":"Badges"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"}},"type":"object","required":["total","badges","categories"],"title":"BadgeCatalogResponse","description":"Response for badge catalog list"},"BadgeEligibilityResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"badge_code":{"type":"string","title":"Badge Code"},"is_eligible":{"type":"boolean","title":"Is Eligible"},"already_awarded":{"type":"boolean","title":"Already Awarded"},"missing_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Requirements"},"progress":{"additionalProperties":{"type":"string"},"type":"object","title":"Progress"}},"type":"object","required":["person_code","badge_code","is_eligible","already_awarded","missing_requirements","progress"],"title":"BadgeEligibilityResponse","description":"Response for badge eligibility check"},"BadgeItem":{"properties":{"profile_code":{"type":"string","title":"Profile Code"},"profile_name":{"type":"string","title":"Profile Name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["profile_code","profile_name"],"title":"BadgeItem","description":"Single badge/profile."},"BadgeResponse":{"properties":{"badge_code":{"type":"string","title":"Badge Code","description":"Unique badge code"},"name":{"type":"string","title":"Name","description":"Badge name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"type":"string","title":"Category","description":"Badge category: SKILL, ACHIEVEMENT, CERTIFICATION, CONTRIBUTION"},"level":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Level","default":1},"criteria_type":{"type":"string","title":"Criteria Type","description":"MISSION_COUNT, HOURS, ENDORSEMENTS, MANUAL"},"criteria_details":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Criteria Details"},"min_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Hours"},"min_projects":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Projects"},"xp_value":{"type":"integer","title":"Xp Value","default":10},"civic_points":{"type":"integer","title":"Civic Points","default":10},"rarity":{"type":"string","title":"Rarity","description":"COMMON, UNCOMMON, RARE, EPIC, LEGENDARY","default":"COMMON"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"color_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Primary"},"badge_id":{"type":"string","format":"uuid","title":"Badge Id"},"display_name":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Display Name"},"parent_badge_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Badge Code"},"prerequisites":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Prerequisites"},"is_active":{"type":"boolean","title":"Is Active","default":true},"holders_count":{"type":"integer","title":"Holders Count","default":0},"awards_count":{"type":"integer","title":"Awards Count","default":0},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["badge_code","name","category","criteria_type","badge_id"],"title":"BadgeResponse","description":"Schema for badge catalog response"},"BadgeRevokeRequest":{"properties":{"revoked_by_person_code":{"type":"string","title":"Revoked By Person Code","description":"Who is revoking"},"reason":{"type":"string","title":"Reason","description":"Reason for revocation"}},"type":"object","required":["revoked_by_person_code","reason"],"title":"BadgeRevokeRequest","description":"Request to revoke a badge"},"BalanceEntry":{"properties":{"node_code":{"type":"string","title":"Node Code"},"has_convergence":{"type":"boolean","title":"Has Convergence"},"roles_present":{"additionalProperties":{"type":"integer"},"type":"object","title":"Roles Present"},"convergence_rules_matched":{"items":{"type":"string"},"type":"array","title":"Convergence Rules Matched"},"missing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Missing"}},"type":"object","required":["node_code","has_convergence","roles_present"],"title":"BalanceEntry","description":"Balance check for a single node."},"BatchError":{"properties":{"index":{"type":"integer","title":"Index"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"node_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Code"},"error":{"type":"string","title":"Error"}},"type":"object","required":["index","error"],"title":"BatchError","description":"Error detail for a single entry in a batch operation."},"BatchNodeCreate":{"properties":{"nodes":{"items":{"$ref":"#/components/schemas/NodeChainCreate"},"type":"array","title":"Nodes"}},"type":"object","required":["nodes"],"title":"BatchNodeCreate","description":"POST /system/convergence/batch-nodes — batch node chain creation."},"BatchNodeResponse":{"properties":{"total":{"type":"integer","title":"Total"},"created":{"type":"integer","title":"Created"},"existing":{"type":"integer","title":"Existing"},"failed":{"type":"integer","title":"Failed"},"errors":{"anyOf":[{"items":{"$ref":"#/components/schemas/BatchError"},"type":"array"},{"type":"null"}],"title":"Errors"}},"type":"object","required":["total","created","existing","failed"],"title":"BatchNodeResponse","description":"Response for batch node creation."},"BatchSubscribeRequest":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/SubscriptionCreate"},"type":"array","title":"Entries"}},"type":"object","required":["entries"],"title":"BatchSubscribeRequest","description":"POST /system/convergence/batch-subscribe — batch subscription."},"BatchSubscribeResponse":{"properties":{"total":{"type":"integer","title":"Total"},"created":{"type":"integer","title":"Created"},"existing":{"type":"integer","title":"Existing"},"failed":{"type":"integer","title":"Failed"},"errors":{"anyOf":[{"items":{"$ref":"#/components/schemas/BatchError"},"type":"array"},{"type":"null"}],"title":"Errors"},"convergence_hits":{"items":{"$ref":"#/components/schemas/ConvergenceMatchResponse"},"type":"array","title":"Convergence Hits"}},"type":"object","required":["total","created","existing","failed"],"title":"BatchSubscribeResponse","description":"Response for batch subscribe operations."},"BiometricSummaryResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"biometric_status":{"type":"string","title":"Biometric Status"},"verification_level":{"type":"integer","title":"Verification Level"},"documents_summary":{"additionalProperties":true,"type":"object","title":"Documents Summary"},"verification_steps":{"items":{"$ref":"#/components/schemas/VerificationStep"},"type":"array","title":"Verification Steps"},"total_documents":{"type":"integer","title":"Total Documents"},"documents_by_category":{"additionalProperties":{"type":"integer"},"type":"object","title":"Documents By Category"}},"type":"object","required":["person_code","biometric_status","verification_level","documents_summary","verification_steps","total_documents","documents_by_category"],"title":"BiometricSummaryResponse","description":"Resume biometrique complet pour l'affichage profil."},"Body_evaluate_person_against_dsl_api_v1_matching_evaluate_person_post":{"properties":{"person_code":{"type":"string","title":"Person Code"},"matching_dsl":{"additionalProperties":true,"type":"object","title":"Matching Dsl"}},"type":"object","required":["person_code","matching_dsl"],"title":"Body_evaluate_person_against_dsl_api_v1_matching_evaluate_person_post"},"Body_upload_cv_api_v1_cv_import_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"CV file (PDF, DOCX, DOC, PNG, JPG)"},"language":{"type":"string","title":"Language","description":"CV language","default":"fr"},"target_person_code":{"type":"string","title":"Target Person Code","description":"Target person code if updating existing"}},"type":"object","required":["file"],"title":"Body_upload_cv_api_v1_cv_import_upload_post"},"BootstrapPlatformMasterRequest":{"properties":{"person_code":{"type":"string","title":"Person Code","description":"Person code of the future Platform Master"},"country_code":{"type":"string","title":"Country Code","description":"Country code","default":"FR"}},"type":"object","required":["person_code"],"title":"BootstrapPlatformMasterRequest","description":"Request to bootstrap a Platform Master.\n\nThis is the ONLY exception to the standard flux:\n- Creates PM journey in PENDING status\n- PM can then access endpoints and approve himself via standard flux"},"BootstrapPlatformMasterResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"country_code":{"type":"string","title":"Country Code"},"journey_code":{"type":"string","title":"Journey Code","default":"platform_master_ambassador"},"status":{"type":"string","title":"Status","default":"PENDING"},"message":{"type":"string","title":"Message"},"journey_id":{"type":"string","title":"Journey Id"}},"type":"object","required":["person_code","country_code","message","journey_id"],"title":"BootstrapPlatformMasterResponse","description":"Response after bootstrapping Platform Master."},"BusinessActivityCreate":{"properties":{"primary_industry":{"type":"string","title":"Primary Industry","description":"Primary industry sector"},"secondary_industries":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Secondary Industries"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code","description":"French NAF code"},"nace_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nace Code","description":"European NACE code"},"isic_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isic Code","description":"International ISIC code"},"business_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Description"},"value_proposition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Proposition"},"target_customers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Target Customers","description":"B2B, B2C, B2G, B2B2C"},"products_services":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Products Services"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope"},"annual_revenue_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Revenue Range"},"employee_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employee Count"},"locations_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Locations Count","default":1},"year_founded":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Founded"},"digital_maturity_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Digital Maturity Score","description":"0-5 maturity score","default":0},"digital_maturity_details":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Digital Maturity Details"},"key_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Key Processes"},"top_pain_points":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Top Pain Points"},"digital_transformation_priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Digital Transformation Priority"},"it_budget_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"It Budget Annual"},"it_budget_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"It Budget Currency","default":"XAF"},"it_staff_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"It Staff Count","default":0},"external_it_support":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"External It Support","default":false}},"type":"object","required":["primary_industry"],"title":"BusinessActivityCreate","description":"Schema for creating a business activity description."},"BusinessActivityResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"country_primary_residence_code":{"type":"string","title":"Country Primary Residence Code"},"primary_industry":{"type":"string","title":"Primary Industry"},"secondary_industries":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Secondary Industries"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"nace_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nace Code"},"isic_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isic Code"},"business_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Description"},"value_proposition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Proposition"},"target_customers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Target Customers"},"products_services":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Products Services"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope"},"annual_revenue_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Revenue Range"},"employee_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employee Count"},"locations_count":{"type":"integer","title":"Locations Count","default":1},"year_founded":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Founded"},"digital_maturity_score":{"type":"integer","title":"Digital Maturity Score","default":0},"digital_maturity_details":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Digital Maturity Details"},"key_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Key Processes"},"process_count":{"type":"integer","title":"Process Count","default":0},"top_pain_points":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Top Pain Points"},"digital_transformation_priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Digital Transformation Priority"},"it_budget_annual":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"It Budget Annual"},"it_budget_currency":{"type":"string","title":"It Budget Currency","default":"XAF"},"it_staff_count":{"type":"integer","title":"It Staff Count","default":0},"external_it_support":{"type":"boolean","title":"External It Support","default":false},"last_diagnostic_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Diagnostic Date"},"last_diagnostic_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Diagnostic By"},"diagnostic_status":{"type":"string","title":"Diagnostic Status","default":"NONE"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["person_code","country_primary_residence_code","primary_industry","created_at"],"title":"BusinessActivityResponse","description":"Response schema for business activity."},"BusinessActivityUpdate":{"properties":{"primary_industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Industry"},"secondary_industries":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Secondary Industries"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"nace_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nace Code"},"isic_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Isic Code"},"business_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Description"},"value_proposition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Proposition"},"target_customers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Target Customers"},"products_services":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Products Services"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope"},"annual_revenue_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Revenue Range"},"employee_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employee Count"},"locations_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Locations Count"},"year_founded":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Founded"},"digital_maturity_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Digital Maturity Score"},"digital_maturity_details":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Digital Maturity Details"},"key_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Key Processes"},"top_pain_points":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Top Pain Points"},"digital_transformation_priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Digital Transformation Priority"},"it_budget_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"It Budget Annual"},"it_budget_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"It Budget Currency"},"it_staff_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"It Staff Count"},"external_it_support":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"External It Support"}},"type":"object","title":"BusinessActivityUpdate","description":"Schema for updating a business activity (partial update)."},"BusinessInfoResponse":{"properties":{"siret":{"anyOf":[{"type":"string","maxLength":14},{"type":"null"}],"title":"Siret","description":"SIRET number (14 digits)"},"siren":{"anyOf":[{"type":"string","maxLength":9},{"type":"null"}],"title":"Siren","description":"SIREN number (9 digits)"},"legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Form","description":"Legal form (SARL, SAS, SA, etc.)"},"capital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capital","description":"Share capital (montant + devise)"},"employees_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Employees Count"},"employees_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employees Range","description":"Employee range (1-9, 10-19, 20-49, etc.)"},"annual_revenue_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Revenue Range"},"naf_code":{"anyOf":[{"type":"string","maxLength":6},{"type":"null"}],"title":"Naf Code","description":"NAF/APE code"},"naf_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Label","description":"NAF label humain"},"vat_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Number","description":"VAT identification number"},"founding_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Founding Date"},"registration_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Registration Date"},"creation_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Creation Date","description":"Date creation effective"},"industry_sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry Sector"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"headquarters_address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headquarters Address"},"trade_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trade Name","description":"Enseigne / nom commercial"},"operational_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operational Status","description":"OPERATING/SUSPENDED/LIQUIDATION/CLOSED"},"collective_agreement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collective Agreement","description":"Convention collective (code IDCC)"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration","description":"Duree statutaire"},"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline"},"full_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Description"},"mission":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mission"},"vision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vision"},"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type","default":"MORAL"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["person_code"],"title":"BusinessInfoResponse","description":"Response schema for business info."},"BusinessInfoSection":{"properties":{"legal_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Name"},"trading_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trading Name"},"legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Form"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siret"},"registration_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Country"},"registration_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Registration Date"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"industry_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry Code"},"employees_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employees Range"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"}},"type":"object","title":"BusinessInfoSection","description":"Business information for MORAL entities."},"BusinessInfoUpdate":{"properties":{"siret":{"anyOf":[{"type":"string","maxLength":14},{"type":"null"}],"title":"Siret","description":"SIRET number (14 digits)"},"siren":{"anyOf":[{"type":"string","maxLength":9},{"type":"null"}],"title":"Siren","description":"SIREN number (9 digits)"},"legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Form","description":"Legal form (SARL, SAS, SA, etc.)"},"capital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capital","description":"Share capital (montant + devise)"},"employees_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Employees Count"},"employees_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employees Range","description":"Employee range (1-9, 10-19, 20-49, etc.)"},"annual_revenue_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Revenue Range"},"naf_code":{"anyOf":[{"type":"string","maxLength":6},{"type":"null"}],"title":"Naf Code","description":"NAF/APE code"},"naf_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Label","description":"NAF label humain"},"vat_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Number","description":"VAT identification number"},"founding_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Founding Date"},"registration_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Registration Date"},"creation_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Creation Date","description":"Date creation effective"},"industry_sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry Sector"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"headquarters_address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headquarters Address"},"trade_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trade Name","description":"Enseigne / nom commercial"},"operational_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operational Status","description":"OPERATING/SUSPENDED/LIQUIDATION/CLOSED"},"collective_agreement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collective Agreement","description":"Convention collective (code IDCC)"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration","description":"Duree statutaire"},"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline"},"full_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Description"},"mission":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mission"},"vision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vision"}},"type":"object","title":"BusinessInfoUpdate","description":"Schema for updating business info."},"BusinessProcessCreate":{"properties":{"process_name":{"type":"string","title":"Process Name","description":"Name of the process"},"process_category":{"type":"string","title":"Process Category","description":"Category from PROCESS_CATEGORIES"},"process_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Code","description":"Auto-generated if not provided"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"steps":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Steps"},"inputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency"},"volume_per_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volume Per Period"},"average_duration_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Average Duration Minutes"},"people_involved":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"People Involved"},"departments_involved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Departments Involved"},"roles_involved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Roles Involved"},"current_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Current Tools","description":"Excel, Email, Papier, etc."},"digitalization_level":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Digitalization Level","default":0},"pain_points":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pain Points"},"improvement_potential":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Improvement Potential"},"estimated_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Time Saved Hours Per Month"},"estimated_cost_saved_per_month":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Cost Saved Per Month"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority","description":"P0, P1, P2, P3"},"business_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Impact"}},"type":"object","required":["process_name","process_category"],"title":"BusinessProcessCreate","description":"Schema for creating a business process."},"BusinessProcessListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"processes":{"items":{"$ref":"#/components/schemas/BusinessProcessResponse"},"type":"array","title":"Processes"},"total_count":{"type":"integer","title":"Total Count"},"by_priority":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Priority"},"by_category":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Category"}},"type":"object","required":["person_code","processes","total_count"],"title":"BusinessProcessListResponse","description":"List response with processes."},"BusinessProcessResponse":{"properties":{"process_id":{"type":"string","format":"uuid","title":"Process Id"},"person_code":{"type":"string","title":"Person Code"},"process_code":{"type":"string","title":"Process Code"},"process_name":{"type":"string","title":"Process Name"},"process_category":{"type":"string","title":"Process Category"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"steps":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Steps"},"inputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency"},"volume_per_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volume Per Period"},"average_duration_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Average Duration Minutes"},"people_involved":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"People Involved"},"departments_involved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Departments Involved"},"roles_involved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Roles Involved"},"current_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Current Tools"},"digitalization_level":{"type":"integer","title":"Digitalization Level","default":0},"digitalization_level_label":{"type":"string","title":"Digitalization Level Label","default":"100% papier/manuel"},"pain_points":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pain Points"},"improvement_potential":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Improvement Potential"},"estimated_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Time Saved Hours Per Month"},"estimated_cost_saved_per_month":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Cost Saved Per Month"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"business_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Impact"},"analyzed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Analyzed By"},"analyzed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Analyzed At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["process_id","person_code","process_code","process_name","process_category","created_at"],"title":"BusinessProcessResponse","description":"Response schema for business process."},"BusinessProcessUpdate":{"properties":{"process_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Name"},"process_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Category"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"steps":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Steps"},"inputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency"},"volume_per_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volume Per Period"},"average_duration_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Average Duration Minutes"},"people_involved":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"People Involved"},"departments_involved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Departments Involved"},"roles_involved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Roles Involved"},"current_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Current Tools"},"digitalization_level":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Digitalization Level"},"pain_points":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pain Points"},"improvement_potential":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Improvement Potential"},"estimated_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Time Saved Hours Per Month"},"estimated_cost_saved_per_month":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Cost Saved Per Month"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"business_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Impact"}},"type":"object","title":"BusinessProcessUpdate","description":"Schema for updating a business process (partial)."},"CFVHistoryEntry":{"properties":{"export_id":{"type":"string","title":"Export Id"},"type":{"type":"string","title":"Type"},"exported_at":{"type":"string","format":"date-time","title":"Exported At"},"sections":{"items":{"type":"string"},"type":"array","title":"Sections"},"format":{"type":"string","title":"Format"},"signed":{"type":"boolean","title":"Signed"},"shared_with":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shared With"}},"type":"object","required":["export_id","type","exported_at","sections","format","signed"],"title":"CFVHistoryEntry","description":"Single CFV export history entry."},"CFVHistoryResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"exports":{"items":{"$ref":"#/components/schemas/CFVHistoryEntry"},"type":"array","title":"Exports"},"total_exports":{"type":"integer","title":"Total Exports"}},"type":"object","required":["person_code","exports","total_exports"],"title":"CFVHistoryResponse","description":"CFV export history response."},"CFVPrepareBlockchainRequest":{"properties":{"sections":{"items":{"type":"string"},"type":"array","title":"Sections","default":["all"]},"sign_with_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sign With Key"},"chain_target":{"type":"string","title":"Chain Target","default":"civicchain-mainnet"},"include_previous_hash":{"type":"boolean","title":"Include Previous Hash","default":true}},"type":"object","title":"CFVPrepareBlockchainRequest","description":"Request to prepare CFV for blockchain."},"CFVPrepareBlockchainResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"prepared_at":{"type":"string","format":"date-time","title":"Prepared At"},"data_hash":{"type":"string","title":"Data Hash"},"previous_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Hash"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"signed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed By"},"chain_target":{"type":"string","title":"Chain Target"},"payload_size_bytes":{"type":"integer","title":"Payload Size Bytes"},"ready_for_submission":{"type":"boolean","title":"Ready For Submission"}},"type":"object","required":["person_code","prepared_at","data_hash","chain_target","payload_size_bytes","ready_for_submission"],"title":"CFVPrepareBlockchainResponse","description":"Response for blockchain preparation."},"CFVSectionData":{"properties":{"person_code":{"type":"string","title":"Person Code"},"section":{"type":"string","title":"Section"},"data":{"additionalProperties":true,"type":"object","title":"Data"},"last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated"}},"type":"object","required":["person_code","section","data"],"title":"CFVSectionData","description":"Schema for a single CFV section."},"CFVShareRequest":{"properties":{"recipient_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Email"},"sections":{"items":{"type":"string"},"type":"array","title":"Sections","default":["person","civic_profile","skills","certifications"]},"expires_in_hours":{"type":"integer","maximum":720.0,"minimum":1.0,"title":"Expires In Hours","default":48},"max_views":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Max Views","default":3},"require_auth":{"type":"boolean","title":"Require Auth","default":false},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","title":"CFVShareRequest","description":"Request to share CFV."},"CFVShareResponse":{"properties":{"share_id":{"type":"string","title":"Share Id"},"share_url":{"type":"string","title":"Share Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"max_views":{"type":"integer","title":"Max Views"},"sections_shared":{"items":{"type":"string"},"type":"array","title":"Sections Shared"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["share_id","share_url","expires_at","max_views","sections_shared","created_at"],"title":"CFVShareResponse","description":"Response for CFV share creation."},"CFVSharedView":{"properties":{"share_id":{"type":"string","title":"Share Id"},"person_code":{"type":"string","title":"Person Code"},"sections":{"additionalProperties":true,"type":"object","title":"Sections"},"shared_at":{"type":"string","format":"date-time","title":"Shared At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"views_remaining":{"type":"integer","title":"Views Remaining"}},"type":"object","required":["share_id","person_code","sections","shared_at","expires_at","views_remaining"],"title":"CFVSharedView","description":"Schema for viewing shared CFV."},"CFVVerifyRequest":{"properties":{"cfv_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cfv Data"},"expected_hash":{"type":"string","title":"Expected Hash"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"verify_blockchain":{"type":"boolean","title":"Verify Blockchain","default":true}},"type":"object","required":["expected_hash"],"title":"CFVVerifyRequest","description":"Request to verify CFV."},"CFVVerifyResponse":{"properties":{"is_valid":{"type":"boolean","title":"Is Valid"},"hash_matches":{"type":"boolean","title":"Hash Matches"},"signature_valid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Signature Valid"},"blockchain_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Blockchain Verified"},"blockchain_block":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Blockchain Block"},"blockchain_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Blockchain Timestamp"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"verification_timestamp":{"type":"string","format":"date-time","title":"Verification Timestamp"}},"type":"object","required":["is_valid","hash_matches","verification_timestamp"],"title":"CFVVerifyResponse","description":"Response for CFV verification."},"CVImportConfirmRequest":{"properties":{"create_missing_companies":{"type":"boolean","title":"Create Missing Companies","default":true},"link_to_companies":{"type":"boolean","title":"Link To Companies","default":true},"notify_companies":{"type":"boolean","title":"Notify Companies","default":false},"privacy_settings":{"anyOf":[{"additionalProperties":{"type":"boolean"},"type":"object"},{"type":"null"}],"title":"Privacy Settings"}},"type":"object","title":"CVImportConfirmRequest","description":"Schema for confirm request"},"CVImportConfirmResponse":{"properties":{"import_id":{"type":"string","format":"uuid","title":"Import Id"},"import_code":{"type":"string","title":"Import Code"},"status":{"type":"string","title":"Status"},"person_created":{"additionalProperties":true,"type":"object","title":"Person Created"},"data_injected":{"additionalProperties":{"type":"integer"},"type":"object","title":"Data Injected"},"companies_processed":{"additionalProperties":{"type":"integer"},"type":"object","title":"Companies Processed"},"connections_created":{"items":{"$ref":"#/components/schemas/ConnectionCreated"},"type":"array","title":"Connections Created"}},"type":"object","required":["import_id","import_code","status","person_created","data_injected","companies_processed","connections_created"],"title":"CVImportConfirmResponse","description":"Schema for confirm response"},"CVImportListResponse":{"properties":{"imports":{"items":{"$ref":"#/components/schemas/CVImportStatusResponse"},"type":"array","title":"Imports"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page","default":1},"page_size":{"type":"integer","title":"Page Size","default":20}},"type":"object","required":["imports","total_count"],"title":"CVImportListResponse","description":"Schema for listing imports"},"CVImportParseRequest":{"properties":{"ai_provider":{"type":"string","title":"Ai Provider","default":"claude"},"extract_companies":{"type":"boolean","title":"Extract Companies","default":true},"match_existing_persons":{"type":"boolean","title":"Match Existing Persons","default":true},"ocr_if_needed":{"type":"boolean","title":"Ocr If Needed","default":true},"language":{"type":"string","title":"Language","default":"fr"}},"type":"object","title":"CVImportParseRequest","description":"Schema for parse request"},"CVImportParseResponse":{"properties":{"import_id":{"type":"string","format":"uuid","title":"Import Id"},"import_code":{"type":"string","title":"Import Code"},"status":{"type":"string","title":"Status"},"parsing_duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parsing Duration Ms"},"extracted_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extracted Data"},"entity_matches":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Entity Matches"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"warnings":{"anyOf":[{"items":{"$ref":"#/components/schemas/ExtractionWarning"},"type":"array"},{"type":"null"}],"title":"Warnings"},"next_step":{"type":"string","title":"Next Step","default":"preview"},"preview_url":{"type":"string","title":"Preview Url"}},"type":"object","required":["import_id","import_code","status","preview_url"],"title":"CVImportParseResponse","description":"Schema for parse response"},"CVImportPreviewResponse":{"properties":{"import_id":{"type":"string","format":"uuid","title":"Import Id"},"import_code":{"type":"string","title":"Import Code"},"status":{"type":"string","title":"Status"},"preview":{"additionalProperties":true,"type":"object","title":"Preview"},"entity_matches":{"items":{"$ref":"#/components/schemas/EntityMatch"},"type":"array","title":"Entity Matches"},"warnings":{"anyOf":[{"items":{"$ref":"#/components/schemas/ExtractionWarning"},"type":"array"},{"type":"null"}],"title":"Warnings"},"actions_available":{"items":{"type":"string"},"type":"array","title":"Actions Available","default":["edit","confirm","cancel"]}},"type":"object","required":["import_id","import_code","status","preview","entity_matches"],"title":"CVImportPreviewResponse","description":"Schema for preview response"},"CVImportPreviewUpdateRequest":{"properties":{"modifications":{"additionalProperties":true,"type":"object","title":"Modifications"}},"type":"object","required":["modifications"],"title":"CVImportPreviewUpdateRequest","description":"Schema for updating preview data"},"CVImportStatusResponse":{"properties":{"import_id":{"type":"string","format":"uuid","title":"Import Id"},"import_code":{"type":"string","title":"Import Code"},"status":{"type":"string","title":"Status"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"},"progress_percent":{"type":"integer","title":"Progress Percent","default":0},"file_name":{"type":"string","title":"File Name"},"uploaded_at":{"type":"string","format":"date-time","title":"Uploaded At"},"target_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Person Code"},"experiences_extracted":{"type":"integer","title":"Experiences Extracted","default":0},"skills_extracted":{"type":"integer","title":"Skills Extracted","default":0},"education_extracted":{"type":"integer","title":"Education Extracted","default":0},"certifications_extracted":{"type":"integer","title":"Certifications Extracted","default":0},"companies_matched":{"type":"integer","title":"Companies Matched","default":0},"companies_created":{"type":"integer","title":"Companies Created","default":0},"connections_created":{"type":"integer","title":"Connections Created","default":0},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["import_id","import_code","status","file_name","uploaded_at"],"title":"CVImportStatusResponse","description":"Schema for status check"},"CVImportUploadResponse":{"properties":{"import_id":{"type":"string","format":"uuid","title":"Import Id"},"import_code":{"type":"string","title":"Import Code"},"status":{"type":"string","title":"Status"},"file_name":{"type":"string","title":"File Name"},"file_size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size Bytes"},"file_type":{"type":"string","title":"File Type"},"detected_language":{"type":"string","title":"Detected Language","default":"fr"},"uploaded_at":{"type":"string","format":"date-time","title":"Uploaded At"},"next_step":{"type":"string","title":"Next Step","default":"parse"},"parse_url":{"type":"string","title":"Parse Url"}},"type":"object","required":["import_id","import_code","status","file_name","file_type","uploaded_at","parse_url"],"title":"CVImportUploadResponse","description":"Schema for upload response"},"CandidacyEligibility":{"properties":{"citizen_since_days":{"type":"integer","title":"Citizen Since Days"},"verification_level":{"type":"integer","title":"Verification Level"},"has_sanctions":{"type":"boolean","title":"Has Sanctions"},"is_resident":{"type":"boolean","title":"Is Resident"},"all_criteria_met":{"type":"boolean","title":"All Criteria Met"}},"type":"object","required":["citizen_since_days","verification_level","has_sanctions","is_resident","all_criteria_met"],"title":"CandidacyEligibility","description":"Eligibility criteria check results."},"CandidacyInfo":{"properties":{"candidacy_id":{"type":"string","title":"Candidacy Id"},"target_country":{"type":"string","title":"Target Country"},"is_ambassador_candidate":{"type":"boolean","title":"Is Ambassador Candidate","default":true}},"type":"object","required":["candidacy_id","target_country"],"title":"CandidacyInfo","description":"Info about Ambassador Country candidacy (only for Platform Master view)."},"CandidateCitizenJourney":{"properties":{"activated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Activated At"},"days_active":{"type":"integer","title":"Days Active","default":0}},"type":"object","title":"CandidateCitizenJourney","description":"Citizen journey info."},"CandidateDetailInfo":{"properties":{"person_code":{"type":"string","title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"citizen_journey":{"$ref":"#/components/schemas/CandidateCitizenJourney"},"verification_level":{"type":"integer","title":"Verification Level","default":0},"active_journeys":{"items":{"type":"string"},"type":"array","title":"Active Journeys"}},"type":"object","required":["person_code","display_name","citizen_journey"],"title":"CandidateDetailInfo","description":"Detailed candidate information."},"CandidateInfo":{"properties":{"person_code":{"type":"string","title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"}},"type":"object","required":["person_code","display_name"],"title":"CandidateInfo","description":"Basic info about a candidate."},"CandidateMatchItem":{"properties":{"person_code":{"type":"string","title":"Person Code"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"resume_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resume Slug"},"match_score":{"type":"number","title":"Match Score"},"experience_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Level"},"skills_matched":{"items":{"type":"string"},"type":"array","title":"Skills Matched","default":[]},"availability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Availability"}},"type":"object","required":["person_code","match_score"],"title":"CandidateMatchItem"},"CandidateMatchesResponse":{"properties":{"offer_code":{"type":"string","title":"Offer Code"},"candidates":{"items":{"$ref":"#/components/schemas/CandidateMatchItem"},"type":"array","title":"Candidates"},"total_candidates":{"type":"integer","title":"Total Candidates"}},"type":"object","required":["offer_code","candidates","total_candidates"],"title":"CandidateMatchesResponse"},"CertificationCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"certification_name":{"type":"string","title":"Certification Name"},"issuing_organization":{"type":"string","title":"Issuing Organization"},"issue_date":{"type":"string","format":"date","title":"Issue Date"},"expiry_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expiry Date"},"credential_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Id"},"credential_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"skills_certified":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Certified"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"}},"type":"object","required":["person_code","certification_name","issuing_organization","issue_date"],"title":"CertificationCreate","description":"Schema for creating a certification."},"CertificationItem":{"properties":{"certification_name":{"type":"string","title":"Certification Name"},"issuing_organization":{"type":"string","title":"Issuing Organization"},"issue_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Issue Date"},"expiry_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiry Date"},"credential_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Url"},"is_verified":{"type":"boolean","title":"Is Verified","default":false}},"type":"object","required":["certification_name","issuing_organization"],"title":"CertificationItem","description":"Single certification."},"CertificationListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"certifications":{"items":{"$ref":"#/components/schemas/CertificationResponse"},"type":"array","title":"Certifications"},"total_count":{"type":"integer","title":"Total Count"},"valid_count":{"type":"integer","title":"Valid Count","default":0},"expired_count":{"type":"integer","title":"Expired Count","default":0}},"type":"object","required":["person_code","certifications","total_count"],"title":"CertificationListResponse","description":"Schema for listing certifications."},"CertificationResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"certification_name":{"type":"string","title":"Certification Name"},"issuing_organization":{"type":"string","title":"Issuing Organization"},"issue_date":{"type":"string","format":"date","title":"Issue Date"},"expiry_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expiry Date"},"credential_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Id"},"credential_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"skills_certified":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Certified"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"certification_id":{"type":"string","format":"uuid","title":"Certification Id"},"certification_code":{"type":"string","title":"Certification Code"},"country_code":{"type":"string","title":"Country Code"},"is_valid":{"type":"boolean","title":"Is Valid","default":true},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","certification_name","issuing_organization","issue_date","certification_id","certification_code","country_code","created_at","datakey"],"title":"CertificationResponse","description":"Schema for certification response."},"CertificationUpdate":{"properties":{"certification_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Certification Name"},"issuing_organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuing Organization"},"issue_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Issue Date"},"expiry_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expiry Date"},"credential_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Id"},"credential_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"skills_certified":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Certified"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"}},"type":"object","title":"CertificationUpdate","description":"Schema for updating a certification - all fields optional."},"CivicEngagementCreate":{"properties":{"country_code":{"type":"string","title":"Country Code"},"engagement_code":{"type":"string","title":"Engagement Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"civic_profile_id":{"type":"string","format":"uuid","title":"Civic Profile Id"},"engagement_type":{"type":"string","title":"Engagement Type"},"target_id":{"type":"string","format":"uuid","title":"Target Id"},"target_code":{"type":"string","title":"Target Code"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"role_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Code"},"contribution_type":{"type":"string","title":"Contribution Type"},"skills_offered":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Offered"},"start_date":{"type":"string","format":"date-time","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"},"commitment_hours":{"type":"integer","title":"Commitment Hours","default":0},"actual_hours":{"type":"integer","title":"Actual Hours","default":0},"frequency":{"type":"string","title":"Frequency","default":"OCCASIONAL"},"tasks_completed":{"type":"integer","title":"Tasks Completed","default":0},"people_helped":{"type":"integer","title":"People Helped","default":0},"impact_score":{"type":"number","title":"Impact Score","default":0.0},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"},"testimonial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Testimonial"},"status":{"type":"string","title":"Status","default":"ACTIVE"},"motivation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Motivation"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Goals"},"availability":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Availability"},"remote_participation":{"type":"boolean","title":"Remote Participation","default":true}},"type":"object","required":["country_code","engagement_code","person_id","civic_profile_id","engagement_type","target_id","target_code","contribution_type","start_date"],"title":"CivicEngagementCreate"},"CivicEngagementResponse":{"properties":{"country_code":{"type":"string","title":"Country Code"},"engagement_code":{"type":"string","title":"Engagement Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"civic_profile_id":{"type":"string","format":"uuid","title":"Civic Profile Id"},"engagement_type":{"type":"string","title":"Engagement Type"},"target_id":{"type":"string","format":"uuid","title":"Target Id"},"target_code":{"type":"string","title":"Target Code"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"role_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Code"},"contribution_type":{"type":"string","title":"Contribution Type"},"skills_offered":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Offered"},"start_date":{"type":"string","format":"date-time","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"},"commitment_hours":{"type":"integer","title":"Commitment Hours","default":0},"actual_hours":{"type":"integer","title":"Actual Hours","default":0},"frequency":{"type":"string","title":"Frequency","default":"OCCASIONAL"},"tasks_completed":{"type":"integer","title":"Tasks Completed","default":0},"people_helped":{"type":"integer","title":"People Helped","default":0},"impact_score":{"type":"number","title":"Impact Score","default":0.0},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"},"testimonial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Testimonial"},"status":{"type":"string","title":"Status","default":"ACTIVE"},"motivation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Motivation"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Goals"},"availability":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Availability"},"remote_participation":{"type":"boolean","title":"Remote Participation","default":true},"engagement_id":{"type":"string","format":"uuid","title":"Engagement Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["country_code","engagement_code","person_id","civic_profile_id","engagement_type","target_id","target_code","contribution_type","start_date","engagement_id","created_at","datakey"],"title":"CivicEngagementResponse"},"CivicEventCreate":{"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"event_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Code"},"organizer_id":{"type":"string","format":"uuid","title":"Organizer Id"},"organizer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organizer Name"},"organizer_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organizer Type"},"title":{"type":"string","title":"Title"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"event_type":{"type":"string","title":"Event Type"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory"},"is_voting_event":{"type":"boolean","title":"Is Voting Event","default":false},"voting_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voting Type"},"voting_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voting Method"},"voting_options":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Voting Options"},"voting_results_public":{"type":"boolean","title":"Voting Results Public","default":false},"is_protest":{"type":"boolean","title":"Is Protest","default":false},"protest_cause":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protest Cause"},"protest_demands":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Protest Demands"},"estimated_participants":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Participants"},"is_educational":{"type":"boolean","title":"Is Educational","default":false},"educational_institution_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Educational Institution Id"},"educational_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Educational Level"},"target_audience":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Target Audience"},"learning_objectives":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Learning Objectives"},"start_datetime":{"type":"string","format":"date-time","title":"Start Datetime"},"end_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Datetime"},"duration_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Hours"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"is_recurring":{"type":"boolean","title":"Is Recurring","default":false},"recurrence_pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence Pattern"},"location_type":{"type":"string","title":"Location Type","default":"PHYSICAL"},"venue_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Venue Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"coordinates":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Coordinates"},"virtual_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Virtual Link"},"max_participants":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Participants"},"current_participants":{"type":"integer","title":"Current Participants","default":0},"waitlist_count":{"type":"integer","title":"Waitlist Count","default":0},"min_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Age"},"max_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Age"},"requires_authorization":{"type":"boolean","title":"Requires Authorization","default":false},"supervisors":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Supervisors"},"supervisor_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supervisor Ratio"},"safety_measures":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Safety Measures"},"emergency_contacts":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Emergency Contacts"},"agenda":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Agenda"},"speakers":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Speakers"},"sponsors":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Sponsors"},"partners":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Partners"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Tags"},"related_causes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Causes"},"objectives":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Objectives"},"expected_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Impact"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"gallery_urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Gallery Urls"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"live_stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Stream Url"},"status":{"type":"string","title":"Status","default":"DRAFT"},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"registration_required":{"type":"boolean","title":"Registration Required","default":true},"is_free":{"type":"boolean","title":"Is Free","default":true},"price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"results":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Results"},"turnout":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turnout"},"success_indicators":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Success Indicators"}},"type":"object","required":["organizer_id","title","event_type","start_datetime"],"title":"CivicEventCreate"},"CivicEventResponse":{"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"event_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Code"},"organizer_id":{"type":"string","format":"uuid","title":"Organizer Id"},"organizer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organizer Name"},"organizer_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organizer Type"},"title":{"type":"string","title":"Title"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"event_type":{"type":"string","title":"Event Type"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory"},"is_voting_event":{"type":"boolean","title":"Is Voting Event","default":false},"voting_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voting Type"},"voting_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voting Method"},"voting_options":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Voting Options"},"voting_results_public":{"type":"boolean","title":"Voting Results Public","default":false},"is_protest":{"type":"boolean","title":"Is Protest","default":false},"protest_cause":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protest Cause"},"protest_demands":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Protest Demands"},"estimated_participants":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Participants"},"is_educational":{"type":"boolean","title":"Is Educational","default":false},"educational_institution_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Educational Institution Id"},"educational_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Educational Level"},"target_audience":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Target Audience"},"learning_objectives":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Learning Objectives"},"start_datetime":{"type":"string","format":"date-time","title":"Start Datetime"},"end_datetime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Datetime"},"duration_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Hours"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"is_recurring":{"type":"boolean","title":"Is Recurring","default":false},"recurrence_pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recurrence Pattern"},"location_type":{"type":"string","title":"Location Type","default":"PHYSICAL"},"venue_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Venue Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"coordinates":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Coordinates"},"virtual_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Virtual Link"},"max_participants":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Participants"},"current_participants":{"type":"integer","title":"Current Participants","default":0},"waitlist_count":{"type":"integer","title":"Waitlist Count","default":0},"min_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Age"},"max_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Age"},"requires_authorization":{"type":"boolean","title":"Requires Authorization","default":false},"supervisors":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Supervisors"},"supervisor_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supervisor Ratio"},"safety_measures":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Safety Measures"},"emergency_contacts":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Emergency Contacts"},"agenda":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Agenda"},"speakers":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Speakers"},"sponsors":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Sponsors"},"partners":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Partners"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Tags"},"related_causes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Causes"},"objectives":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Objectives"},"expected_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Impact"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"gallery_urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Gallery Urls"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"live_stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Stream Url"},"status":{"type":"string","title":"Status","default":"DRAFT"},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"registration_required":{"type":"boolean","title":"Registration Required","default":true},"is_free":{"type":"boolean","title":"Is Free","default":true},"price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"results":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Results"},"turnout":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turnout"},"success_indicators":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Success Indicators"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["organizer_id","title","event_type","start_datetime","event_id","created_at","datakey"],"title":"CivicEventResponse"},"CivicEventUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"current_participants":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Participants"},"results":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Results"},"turnout":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turnout"}},"type":"object","title":"CivicEventUpdate"},"CivicProfileCreate":{"properties":{"country_code":{"type":"string","title":"Country Code"},"civic_profile_code":{"type":"string","title":"Civic Profile Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"identity_user_id":{"type":"string","format":"uuid","title":"Identity User Id"},"passport_verification_level":{"type":"integer","title":"Passport Verification Level"},"display_name":{"type":"string","title":"Display Name"},"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"profession":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profession"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"years_experience":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Experience"},"expertise_areas":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expertise Areas"},"civic_level":{"type":"integer","title":"Civic Level","default":1},"civic_xp":{"type":"integer","title":"Civic Xp","default":0},"impact_score":{"type":"integer","title":"Impact Score","default":0},"contribution_hours":{"type":"integer","title":"Contribution Hours","default":0},"people_impacted":{"type":"integer","title":"People Impacted","default":0},"projects_completed":{"type":"integer","title":"Projects Completed","default":0},"available_hours_per_week":{"type":"integer","title":"Available Hours Per Week","default":0},"availability_type":{"type":"string","title":"Availability Type","default":"OCCASIONAL"},"preferred_causes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Causes"},"preferred_roles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Roles"},"preferred_locations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Locations"},"remote_available":{"type":"boolean","title":"Remote Available","default":true},"profile_visibility":{"type":"string","title":"Profile Visibility","default":"PUBLIC"},"contact_preferences":{"anyOf":[{"additionalProperties":{"type":"boolean"},"type":"object"},{"type":"null"}],"title":"Contact Preferences"},"show_real_name":{"type":"boolean","title":"Show Real Name","default":false},"allow_messages":{"type":"boolean","title":"Allow Messages","default":true},"allow_connection_requests":{"type":"boolean","title":"Allow Connection Requests","default":true}},"type":"object","required":["country_code","civic_profile_code","person_id","identity_user_id","passport_verification_level","display_name"],"title":"CivicProfileCreate"},"CivicProfileResponse":{"properties":{"country_code":{"type":"string","title":"Country Code"},"civic_profile_code":{"type":"string","title":"Civic Profile Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"identity_user_id":{"type":"string","format":"uuid","title":"Identity User Id"},"passport_verification_level":{"type":"integer","title":"Passport Verification Level"},"display_name":{"type":"string","title":"Display Name"},"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"profession":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profession"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"years_experience":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Experience"},"expertise_areas":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expertise Areas"},"civic_level":{"type":"integer","title":"Civic Level","default":1},"civic_xp":{"type":"integer","title":"Civic Xp","default":0},"impact_score":{"type":"integer","title":"Impact Score","default":0},"contribution_hours":{"type":"integer","title":"Contribution Hours","default":0},"people_impacted":{"type":"integer","title":"People Impacted","default":0},"projects_completed":{"type":"integer","title":"Projects Completed","default":0},"available_hours_per_week":{"type":"integer","title":"Available Hours Per Week","default":0},"availability_type":{"type":"string","title":"Availability Type","default":"OCCASIONAL"},"preferred_causes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Causes"},"preferred_roles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Roles"},"preferred_locations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Locations"},"remote_available":{"type":"boolean","title":"Remote Available","default":true},"profile_visibility":{"type":"string","title":"Profile Visibility","default":"PUBLIC"},"contact_preferences":{"anyOf":[{"additionalProperties":{"type":"boolean"},"type":"object"},{"type":"null"}],"title":"Contact Preferences"},"show_real_name":{"type":"boolean","title":"Show Real Name","default":false},"allow_messages":{"type":"boolean","title":"Allow Messages","default":true},"allow_connection_requests":{"type":"boolean","title":"Allow Connection Requests","default":true},"civic_profile_id":{"type":"string","format":"uuid","title":"Civic Profile Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"last_activity":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["country_code","civic_profile_code","person_id","identity_user_id","passport_verification_level","display_name","civic_profile_id","created_at","datakey"],"title":"CivicProfileResponse"},"ClaimCreate":{"properties":{"target_type":{"type":"string","title":"Target Type","description":"CIVICPERSON or BARO_ACTOR"},"target_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Person Code","description":"person_code if CIVICPERSON"},"target_actor_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Actor Code","description":"actor_code if BARO_ACTOR"},"claim_type":{"type":"string","title":"Claim Type","description":"OWNS, REPRESENTS, MEMBER_OF, MANAGES"},"claim_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Role","description":"Free-text role (DG, Adherent, Depute)"},"claim_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Message","description":"Free-text message"},"evidence_type":{"type":"string","title":"Evidence Type","description":"NONE, DOCUMENT, EXTERNAL_LINK","default":"NONE"},"evidence_document_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Evidence Document Id"},"evidence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Url"}},"type":"object","required":["target_type","claim_type"],"title":"ClaimCreate","description":"POST /claims — submit a claim on an existing entity."},"ClaimCreateEntity":{"properties":{"entity":{"$ref":"#/components/schemas/ClaimEntityCreate"},"claim":{"$ref":"#/components/schemas/ClaimEntityClaimPart"}},"type":"object","required":["entity","claim"],"title":"ClaimCreateEntity","description":"POST /claims/create-entity — create new entity + implicit OWNS claim."},"ClaimCreateEntityResponse":{"properties":{"entity":{"additionalProperties":true,"type":"object","title":"Entity"},"claim":{"$ref":"#/components/schemas/ClaimCreateResponse"}},"type":"object","required":["entity","claim"],"title":"ClaimCreateEntityResponse","description":"Response after creating entity + claim."},"ClaimCreateResponse":{"properties":{"claim_id":{"type":"string","title":"Claim Id"},"status":{"type":"string","title":"Status"},"validation_method":{"type":"string","title":"Validation Method"},"message":{"type":"string","title":"Message"}},"type":"object","required":["claim_id","status","validation_method","message"],"title":"ClaimCreateResponse","description":"Response after creating a claim."},"ClaimEntityClaimPart":{"properties":{"claim_type":{"type":"string","title":"Claim Type","default":"OWNS"},"claim_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Role"},"evidence_type":{"type":"string","title":"Evidence Type","default":"NONE"},"evidence_document_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Evidence Document Id"}},"type":"object","title":"ClaimEntityClaimPart","description":"Claim part for create-entity endpoint."},"ClaimEntityClaimsResponse":{"properties":{"entity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"claims":{"items":{"$ref":"#/components/schemas/ClaimResponse"},"type":"array","title":"Claims"}},"type":"object","required":["claims"],"title":"ClaimEntityClaimsResponse","description":"Claims on a specific entity."},"ClaimEntityCreate":{"properties":{"person_type":{"type":"string","title":"Person Type","description":"MORAL or GROUP"},"moral_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Name"},"moral_legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Legal Form"},"moral_industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Industry"},"moral_subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Subcategory"},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country_code":{"type":"string","title":"Country Code","default":"FR"}},"type":"object","required":["person_type"],"title":"ClaimEntityCreate","description":"Entity definition for create-entity endpoint."},"ClaimListResponse":{"properties":{"claims":{"items":{"$ref":"#/components/schemas/ClaimResponse"},"type":"array","title":"Claims"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["claims","total"],"title":"ClaimListResponse","description":"List of claims."},"ClaimResolveS2SRequest":{"properties":{"decision":{"type":"string","title":"Decision","description":"APPROVED or REJECTED"},"resolved_by":{"type":"string","title":"Resolved By","description":"person_code or pipeline-v2"},"resolved_method":{"type":"string","title":"Resolved Method","description":"AUTOMATIC, AMBASSADOR, COMMUNITY"},"validation_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Validation Score"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["decision","resolved_by","resolved_method"],"title":"ClaimResolveS2SRequest","description":"S2S callback to resolve a claim."},"ClaimResolveS2SResponse":{"properties":{"claim_id":{"type":"string","title":"Claim Id"},"status":{"type":"string","title":"Status"},"resolved_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved Method"},"message":{"type":"string","title":"Message"}},"type":"object","required":["claim_id","status","message"],"title":"ClaimResolveS2SResponse","description":"Response after resolving a claim."},"ClaimResponse":{"properties":{"claim_id":{"type":"string","title":"Claim Id"},"country_code":{"type":"string","title":"Country Code"},"claimant_person_code":{"type":"string","title":"Claimant Person Code"},"claimant_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claimant Display Name"},"target_type":{"type":"string","title":"Target Type"},"target_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Person Code"},"target_actor_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Actor Code"},"target_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Display Name"},"claim_type":{"type":"string","title":"Claim Type"},"claim_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Role"},"claim_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim Message"},"evidence_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Type"},"status":{"type":"string","title":"Status"},"validation_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Method"},"validation_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Validation Score"},"community_votes_yes":{"type":"integer","title":"Community Votes Yes","default":0},"community_votes_no":{"type":"integer","title":"Community Votes No","default":0},"community_threshold":{"type":"integer","title":"Community Threshold","default":5},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"resolved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved By"},"resolved_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved Method"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"attempt_number":{"type":"integer","title":"Attempt Number","default":1},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["claim_id","country_code","claimant_person_code","target_type","claim_type","status"],"title":"ClaimResponse","description":"Single claim response."},"ClaimSearchResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/ClaimSearchResultItem"},"type":"array","title":"Results"},"total":{"type":"integer","title":"Total"},"query":{"type":"string","title":"Query"}},"type":"object","required":["results","total","query"],"title":"ClaimSearchResponse","description":"Unified search response."},"ClaimSearchResultItem":{"properties":{"source":{"type":"string","title":"Source"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"actor_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Code"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"person_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Type"},"moral_subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Subcategory"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"party":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Party"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"},"is_claimed":{"type":"boolean","title":"Is Claimed","default":false},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"}},"type":"object","required":["source"],"title":"ClaimSearchResultItem","description":"Single search result item."},"ClaimVote":{"properties":{"vote":{"type":"string","title":"Vote","description":"YES, NO, ABSTENTION"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"confidence_level":{"type":"string","title":"Confidence Level","description":"HIGH, MEDIUM, LOW","default":"MEDIUM"}},"type":"object","required":["vote"],"title":"ClaimVote","description":"POST /claims/{id}/vote — vote on a claim."},"ClaimVoteResponse":{"properties":{"message":{"type":"string","title":"Message"},"current_votes":{"additionalProperties":{"type":"integer"},"type":"object","title":"Current Votes"},"claim_status":{"type":"string","title":"Claim Status"}},"type":"object","required":["message","current_votes","claim_status"],"title":"ClaimVoteResponse","description":"Response after voting on a claim."},"ClassroomEntry":{"properties":{"level_code":{"type":"string","title":"Level Code"},"classroom_code":{"type":"string","title":"Classroom Code"}},"type":"object","required":["level_code","classroom_code"],"title":"ClassroomEntry","description":"A single classroom in a batch registration."},"ClassroomListItem":{"properties":{"level_code":{"type":"string","title":"Level Code"},"classroom_code":{"type":"string","title":"Classroom Code"},"student_count":{"type":"integer","title":"Student Count","default":0},"teacher_count":{"type":"integer","title":"Teacher Count","default":0},"declared_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Declared By"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["level_code","classroom_code"],"title":"ClassroomListItem","description":"A single classroom in a list response."},"ClassroomListResponse":{"properties":{"school_node_code":{"type":"string","title":"School Node Code"},"school_year":{"type":"string","title":"School Year"},"classrooms":{"items":{"$ref":"#/components/schemas/ClassroomListItem"},"type":"array","title":"Classrooms"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["school_node_code","school_year","classrooms","total"],"title":"ClassroomListResponse","description":"Response for listing classrooms."},"ClassroomRegisterRequest":{"properties":{"country_code":{"type":"string","title":"Country Code"},"school_node_code":{"type":"string","title":"School Node Code"},"school_year":{"type":"string","title":"School Year"},"classrooms":{"items":{"$ref":"#/components/schemas/ClassroomEntry"},"type":"array","title":"Classrooms"},"declared_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Declared By"},"declared_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Declared By Role"}},"type":"object","required":["country_code","school_node_code","school_year","classrooms"],"title":"ClassroomRegisterRequest","description":"POST /system/convergence/education/classrooms — register classrooms."},"ClassroomRegisterResponse":{"properties":{"total":{"type":"integer","title":"Total"},"created":{"type":"integer","title":"Created"},"existing":{"type":"integer","title":"Existing"},"school_node_code":{"type":"string","title":"School Node Code"},"school_year":{"type":"string","title":"School Year"}},"type":"object","required":["total","created","existing","school_node_code","school_year"],"title":"ClassroomRegisterResponse","description":"Response for classroom registration."},"ConnectionCreated":{"properties":{"from_person":{"type":"string","title":"From Person"},"to_person":{"type":"string","title":"To Person"},"connection_type":{"type":"string","title":"Connection Type"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}},"type":"object","required":["from_person","to_person","connection_type"],"title":"ConnectionCreated","description":"Schema for created connection"},"ConnectionStats":{"properties":{"total_connections":{"type":"integer","title":"Total Connections","default":0},"companies_worked":{"type":"integer","title":"Companies Worked","default":0},"colleagues":{"type":"integer","title":"Colleagues","default":0},"certifications":{"type":"integer","title":"Certifications","default":0},"education":{"type":"integer","title":"Education","default":0},"founded":{"type":"integer","title":"Founded","default":0}},"type":"object","title":"ConnectionStats","description":"Connection statistics."},"ConnectionsListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"connections":{"additionalProperties":{"items":{"$ref":"#/components/schemas/PersonConnectionResponse"},"type":"array"},"type":"object","title":"Connections"},"statistics":{"additionalProperties":{"type":"integer"},"type":"object","title":"Statistics"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","connections","statistics","total_count"],"title":"ConnectionsListResponse","description":"Schema for listing all connections of a person"},"ContactSection":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Address"},"social_links":{"additionalProperties":{"type":"string"},"type":"object","title":"Social Links","default":{}}},"type":"object","title":"ContactSection","description":"Contact information."},"ConvergenceBalanceResponse":{"properties":{"country_code":{"type":"string","title":"Country Code"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"gdam_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gdam Code"},"nodes_with_convergence":{"type":"integer","title":"Nodes With Convergence","default":0},"nodes_without_convergence":{"type":"integer","title":"Nodes Without Convergence","default":0},"nodes_total_leaf":{"type":"integer","title":"Nodes Total Leaf","default":0},"convergence_rate":{"type":"number","title":"Convergence Rate","default":0.0},"details":{"items":{"$ref":"#/components/schemas/BalanceEntry"},"type":"array","title":"Details"},"computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Computed At"}},"type":"object","required":["country_code"],"title":"ConvergenceBalanceResponse","description":"Balance verification result."},"ConvergenceMatchResponse":{"properties":{"node_code":{"type":"string","title":"Node Code"},"domain":{"type":"string","title":"Domain"},"rule_name":{"type":"string","title":"Rule Name"},"match_type":{"type":"string","title":"Match Type"},"matched_persons":{"items":{"$ref":"#/components/schemas/MatchedPersonResponse"},"type":"array","title":"Matched Persons"},"confidence":{"type":"number","title":"Confidence","default":1.0},"detected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Detected At"}},"type":"object","required":["node_code","domain","rule_name","match_type","matched_persons"],"title":"ConvergenceMatchResponse","description":"A single convergence match (e.g. student+teacher on same node)."},"ConvergenceStatsResponse":{"properties":{"country_code":{"type":"string","title":"Country Code","default":""},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"total_nodes":{"type":"integer","title":"Total Nodes","default":0},"active_nodes":{"type":"integer","title":"Active Nodes","default":0},"total_subscriptions":{"type":"integer","title":"Total Subscriptions","default":0},"active_subscriptions":{"type":"integer","title":"Active Subscriptions","default":0},"nodes_by_type":{"additionalProperties":{"type":"integer"},"type":"object","title":"Nodes By Type"},"subscriptions_by_role":{"additionalProperties":{"type":"integer"},"type":"object","title":"Subscriptions By Role"},"computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Computed At"}},"type":"object","title":"ConvergenceStatsResponse","description":"Global convergence statistics."},"CountryAmbassadorInfo":{"properties":{"person_code":{"type":"string","title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},"type":"object","required":["person_code","display_name"],"title":"CountryAmbassadorInfo","description":"Ambassador info."},"CountryAmbassadorListItem":{"properties":{"country_code":{"type":"string","title":"Country Code"},"country_name":{"type":"string","title":"Country Name"},"ambassador":{"$ref":"#/components/schemas/CountryAmbassadorInfo"},"stats":{"$ref":"#/components/schemas/CountryAmbassadorStats"},"status":{"type":"string","title":"Status","default":"active"}},"type":"object","required":["country_code","country_name","ambassador","stats"],"title":"CountryAmbassadorListItem","description":"Country ambassador list item."},"CountryAmbassadorListResponse":{"properties":{"ambassadors":{"items":{"$ref":"#/components/schemas/CountryAmbassadorListItem"},"type":"array","title":"Ambassadors"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["ambassadors","total"],"title":"CountryAmbassadorListResponse","description":"Response for list of country ambassadors."},"CountryAmbassadorStats":{"properties":{"citizen_count":{"type":"integer","title":"Citizen Count","default":0},"ambassador_count":{"type":"integer","title":"Ambassador Count","default":0},"coverage_percent":{"type":"number","title":"Coverage Percent","default":0.0}},"type":"object","title":"CountryAmbassadorStats","description":"Ambassador's country stats."},"CountryCandidacyDetailResponse":{"properties":{"candidacy_id":{"type":"string","title":"Candidacy Id"},"country":{"$ref":"#/components/schemas/CountryStatusInfo"},"candidate":{"$ref":"#/components/schemas/CandidateDetailInfo"},"eligibility":{"additionalProperties":{"$ref":"#/components/schemas/EligibilityCriterionDetail"},"type":"object","title":"Eligibility"},"motivation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Motivation"},"documents":{"items":{"$ref":"#/components/schemas/DocumentInfo"},"type":"array","title":"Documents"},"platform_activity":{"$ref":"#/components/schemas/PlatformActivityInfo"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"status":{"type":"string","title":"Status"}},"type":"object","required":["candidacy_id","country","candidate","eligibility","platform_activity","submitted_at","status"],"title":"CountryCandidacyDetailResponse","description":"Detailed candidacy response."},"CountryCandidacyListItem":{"properties":{"candidacy_id":{"type":"string","title":"Candidacy Id"},"country_code":{"type":"string","title":"Country Code"},"country_name":{"type":"string","title":"Country Name"},"person":{"$ref":"#/components/schemas/CandidateInfo"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"eligibility":{"$ref":"#/components/schemas/CandidacyEligibility"}},"type":"object","required":["candidacy_id","country_code","country_name","person","submitted_at","eligibility"],"title":"CountryCandidacyListItem","description":"Candidacy item in the list."},"CountryCandidacyListResponse":{"properties":{"candidacies":{"items":{"$ref":"#/components/schemas/CountryCandidacyListItem"},"type":"array","title":"Candidacies"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["candidacies","total"],"title":"CountryCandidacyListResponse","description":"Response for list of candidacies."},"CountryStatusInfo":{"properties":{"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"current_ambassador":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Ambassador"},"citizen_count":{"type":"integer","title":"Citizen Count","default":0},"verified_citizen_count":{"type":"integer","title":"Verified Citizen Count","default":0},"pending_identity_validations":{"type":"integer","title":"Pending Identity Validations","default":0}},"type":"object","required":["code","name"],"title":"CountryStatusInfo","description":"Country status information."},"CountrySummary":{"properties":{"country_code":{"type":"string","title":"Country Code"},"country_name":{"type":"string","title":"Country Name"},"has_ambassador":{"type":"boolean","title":"Has Ambassador"},"ambassador_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ambassador Name"},"ambassador_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ambassador Person Code"},"pending_candidacy":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Pending Candidacy"},"citizen_count":{"type":"integer","title":"Citizen Count","default":0},"status":{"type":"string","title":"Status","description":"active, pending, or vacant"}},"type":"object","required":["country_code","country_name","has_ambassador","status"],"title":"CountrySummary","description":"Summary of a country's status."},"DigitalNeedCreate":{"properties":{"need_title":{"type":"string","title":"Need Title","description":"Title of the need"},"need_category":{"type":"string","title":"Need Category","description":"Category from NEED_CATEGORIES"},"priority":{"type":"string","title":"Priority","description":"P0, P1, P2, P3"},"need_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Code","description":"Auto-generated if not provided"},"need_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Description"},"related_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Processes","description":"process_codes"},"affected_departments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Affected Departments"},"affected_users_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Affected Users Count"},"business_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Impact"},"urgency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Urgency"},"expected_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Time Saved Hours Per Month"},"expected_cost_reduction_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Cost Reduction Annual"},"expected_revenue_increase_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Revenue Increase Annual"},"expected_quality_improvement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Quality Improvement"},"estimated_roi_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Roi Months"},"budget_available":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Available"},"budget_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Budget Currency","default":"XAF"},"budget_approved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Budget Approved","default":false},"internal_resources_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Internal Resources Available","default":false},"external_help_needed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"External Help Needed","default":true},"desired_deadline":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Desired Deadline"},"estimated_implementation_weeks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Implementation Weeks"},"identified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identified By","description":"person_code of identifier"},"identified_by_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identified By Type","description":"SELF, STUDENT, EXPERT, etc."}},"type":"object","required":["need_title","need_category","priority"],"title":"DigitalNeedCreate","description":"Schema for creating a digital need."},"DigitalNeedListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"needs":{"items":{"$ref":"#/components/schemas/DigitalNeedResponse"},"type":"array","title":"Needs"},"total_count":{"type":"integer","title":"Total Count"},"by_priority":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Priority"},"by_status":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Status"},"by_category":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Category"}},"type":"object","required":["person_code","needs","total_count"],"title":"DigitalNeedListResponse","description":"List response for digital needs."},"DigitalNeedResponse":{"properties":{"need_id":{"type":"string","format":"uuid","title":"Need Id"},"person_code":{"type":"string","title":"Person Code"},"need_code":{"type":"string","title":"Need Code"},"need_title":{"type":"string","title":"Need Title"},"need_category":{"type":"string","title":"Need Category"},"need_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Description"},"priority":{"type":"string","title":"Priority"},"related_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Processes"},"affected_departments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Affected Departments"},"affected_users_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Affected Users Count"},"business_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Impact"},"urgency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Urgency"},"expected_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Time Saved Hours Per Month"},"expected_cost_reduction_annual":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Cost Reduction Annual"},"expected_revenue_increase_annual":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Revenue Increase Annual"},"expected_quality_improvement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Quality Improvement"},"estimated_roi_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Roi Months"},"budget_available":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Available"},"budget_currency":{"type":"string","title":"Budget Currency","default":"XAF"},"budget_approved":{"type":"boolean","title":"Budget Approved","default":false},"internal_resources_available":{"type":"boolean","title":"Internal Resources Available","default":false},"external_help_needed":{"type":"boolean","title":"External Help Needed","default":true},"desired_deadline":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Desired Deadline"},"estimated_implementation_weeks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Implementation Weeks"},"status":{"type":"string","title":"Status","default":"IDENTIFIED"},"identified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identified By"},"identified_by_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identified By Type"},"identified_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Identified Date"},"proposed_solutions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Proposed Solutions"},"selected_solution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected Solution"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["need_id","person_code","need_code","need_title","need_category","priority","created_at"],"title":"DigitalNeedResponse","description":"Response schema for digital need."},"DigitalNeedUpdate":{"properties":{"need_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Title"},"need_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Category"},"need_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Description"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"related_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Processes"},"affected_departments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Affected Departments"},"affected_users_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Affected Users Count"},"business_impact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Impact"},"urgency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Urgency"},"expected_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Time Saved Hours Per Month"},"expected_cost_reduction_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Cost Reduction Annual"},"expected_revenue_increase_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Revenue Increase Annual"},"expected_quality_improvement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Quality Improvement"},"estimated_roi_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Roi Months"},"budget_available":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Available"},"budget_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Budget Currency"},"budget_approved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Budget Approved"},"internal_resources_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Internal Resources Available"},"external_help_needed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"External Help Needed"},"desired_deadline":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Desired Deadline"},"estimated_implementation_weeks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Implementation Weeks"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"proposed_solutions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Proposed Solutions"},"selected_solution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected Solution"}},"type":"object","title":"DigitalNeedUpdate","description":"Schema for updating a digital need."},"DocumentInfo":{"properties":{"type":{"type":"string","title":"Type","description":"criminal_record, residency_proof, cv, recommendations, deployment_plan"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"status":{"type":"string","title":"Status","description":"submitted, verified","default":"submitted"}},"type":"object","required":["type"],"title":"DocumentInfo","description":"Document information."},"DuplicateCandidate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"name":{"type":"string","title":"Name"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"similarity_score":{"type":"number","title":"Similarity Score"},"is_verified":{"type":"boolean","title":"Is Verified","default":false}},"type":"object","required":["person_code","name","similarity_score"],"title":"DuplicateCandidate","description":"Schema for duplicate detection result."},"DuplicateCheckRequest":{"properties":{"name":{"type":"string","title":"Name"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"person_type":{"type":"string","title":"Person Type","default":"MORAL"}},"type":"object","required":["name"],"title":"DuplicateCheckRequest","description":"Schema for duplicate check request."},"DuplicateCheckResponse":{"properties":{"has_potential_duplicates":{"type":"boolean","title":"Has Potential Duplicates"},"candidates":{"items":{"$ref":"#/components/schemas/DuplicateCandidate"},"type":"array","title":"Candidates"},"should_proceed":{"type":"boolean","title":"Should Proceed"}},"type":"object","required":["has_potential_duplicates","candidates","should_proceed"],"title":"DuplicateCheckResponse","description":"Schema for duplicate check response."},"EducationCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"education_type":{"type":"string","title":"Education Type","default":"FORMATION_INITIALE"},"institution_name":{"type":"string","title":"Institution Name"},"institution_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Type"},"institution_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Website"},"campus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campus"},"degree_name":{"type":"string","title":"Degree Name"},"degree_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Degree Level"},"field_of_study":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field Of Study"},"specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialization"},"education_level_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Code"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"school_year_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Year Code"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"gpa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gpa"},"honors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Honors"},"thesis_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thesis Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"skills_acquired":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Acquired"},"certifications_obtained":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Certifications Obtained"}},"type":"object","required":["person_code","institution_name","degree_name","start_date"],"title":"EducationCreate","description":"Schema for creating education."},"EducationItem":{"properties":{"institution_name":{"type":"string","title":"Institution Name"},"institution_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Logo Url"},"degree_name":{"type":"string","title":"Degree Name"},"field_of_study":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field Of Study"},"start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["institution_name","degree_name"],"title":"EducationItem","description":"Single education entry."},"EducationJourneyEntry":{"properties":{"school_year_label":{"type":"string","title":"School Year Label"},"school_person_code":{"type":"string","title":"School Person Code"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name"},"education_level_code":{"type":"string","title":"Education Level Code"},"education_level_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Name"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"passed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Passed"},"honors":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Honors"},"average_grade":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Grade"}},"type":"object","required":["school_year_label","school_person_code","school_name","education_level_code","education_level_name","class_name","track_code","passed","honors","average_grade"],"title":"EducationJourneyEntry","description":"Single entry in education journey timeline."},"EducationJourneyResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"total_years":{"type":"integer","title":"Total Years"},"schools_attended":{"type":"integer","title":"Schools Attended"},"current_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Status"},"journey":{"items":{"$ref":"#/components/schemas/EducationJourneyEntry"},"type":"array","title":"Journey"},"by_school":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"By School"}},"type":"object","required":["person_code","total_years","schools_attended","current_status","journey","by_school"],"title":"EducationJourneyResponse","description":"Complete education journey timeline."},"EducationLevelCreate":{"properties":{"level_code":{"type":"string","title":"Level Code"},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"category":{"type":"string","title":"Category"},"order":{"type":"integer","title":"Order"},"profile_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Code"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"}},"type":"object","required":["level_code","name_fr","category","order"],"title":"EducationLevelCreate","description":"Schema for creating an EducationLevel."},"EducationLevelListResponse":{"properties":{"levels":{"items":{"$ref":"#/components/schemas/EducationLevelResponse"},"type":"array","title":"Levels"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["levels","total_count"],"title":"EducationLevelListResponse","description":"Schema for listing education levels."},"EducationLevelResponse":{"properties":{"level_code":{"type":"string","title":"Level Code"},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"category":{"type":"string","title":"Category"},"order":{"type":"integer","title":"Order"},"profile_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Code"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["level_code","name_fr","category","order","created_at"],"title":"EducationLevelResponse","description":"Schema for EducationLevel response."},"EducationListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"education":{"items":{"$ref":"#/components/schemas/EducationResponse"},"type":"array","title":"Education"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","education","total_count"],"title":"EducationListResponse","description":"Schema for listing education records."},"EducationRecordCreate":{"properties":{"person_code":{"type":"string","title":"Person Code","description":"Student person code"},"school_person_code":{"type":"string","title":"School Person Code","description":"School person code (CivicPerson MORAL)"},"school_year_label":{"type":"string","title":"School Year Label","description":"School year label: 2015-2016"},"school_year_start":{"type":"string","format":"date","title":"School Year Start","description":"Year start date: 2015-09-01"},"school_year_end":{"type":"string","format":"date","title":"School Year End","description":"Year end date: 2016-06-30"},"education_level_code":{"type":"string","title":"Education Level Code","description":"Level: 6EME, TERMINALE, L1"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name","description":"Class name: 6ème A"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code","description":"Track: SCIENTIFIQUE, LITTERAIRE"},"specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialization","description":"Specialization"},"is_current":{"type":"boolean","title":"Is Current","description":"Is this the current year","default":false}},"type":"object","required":["person_code","school_person_code","school_year_label","school_year_start","school_year_end","education_level_code"],"title":"EducationRecordCreate","description":"Schema for creating an annual education record."},"EducationRecordListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"total":{"type":"integer","title":"Total"},"records":{"items":{"$ref":"#/components/schemas/EducationRecordResponse"},"type":"array","title":"Records"}},"type":"object","required":["person_code","total","records"],"title":"EducationRecordListResponse","description":"Response for list of education records."},"EducationRecordResponse":{"properties":{"record_id":{"type":"string","format":"uuid","title":"Record Id"},"record_code":{"type":"string","title":"Record Code"},"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"school_person_code":{"type":"string","title":"School Person Code"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name"},"school_year_label":{"type":"string","title":"School Year Label"},"school_year_start":{"type":"string","format":"date","title":"School Year Start"},"school_year_end":{"type":"string","format":"date","title":"School Year End"},"education_level_code":{"type":"string","title":"Education Level Code"},"education_level_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Name"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"class_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Class Size"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"track_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Name"},"specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialization"},"average_grade":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Grade"},"ranking":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ranking"},"ranking_out_of":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ranking Out Of"},"passed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Passed"},"honors":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Honors"},"status":{"type":"string","title":"Status"},"is_current":{"type":"boolean","title":"Is Current"},"is_verified":{"type":"boolean","title":"Is Verified"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["record_id","record_code","country_code","person_code","school_person_code","school_year_label","school_year_start","school_year_end","education_level_code","status","is_current","is_verified","created_at"],"title":"EducationRecordResponse","description":"Response schema for education record."},"EducationRecordUpdate":{"properties":{"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialization"},"average_grade":{"anyOf":[{"type":"number","maximum":20.0,"minimum":0.0},{"type":"null"}],"title":"Average Grade"},"ranking":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Ranking"},"ranking_out_of":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Ranking Out Of"},"passed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Passed"},"honors":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Honors"},"comments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comments"},"teacher_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teacher Comment"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"}},"type":"object","title":"EducationRecordUpdate","description":"Schema for updating an education record (end of year)."},"EducationResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"education_type":{"type":"string","title":"Education Type","default":"FORMATION_INITIALE"},"institution_name":{"type":"string","title":"Institution Name"},"institution_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Type"},"institution_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Website"},"campus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campus"},"degree_name":{"type":"string","title":"Degree Name"},"degree_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Degree Level"},"field_of_study":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field Of Study"},"specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialization"},"education_level_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Code"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"school_year_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Year Code"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"gpa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gpa"},"honors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Honors"},"thesis_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thesis Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"skills_acquired":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Acquired"},"certifications_obtained":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Certifications Obtained"},"education_id":{"type":"string","format":"uuid","title":"Education Id"},"education_code":{"type":"string","title":"Education Code"},"country_code":{"type":"string","title":"Country Code"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","institution_name","degree_name","start_date","education_id","education_code","country_code","created_at","datakey"],"title":"EducationResponse","description":"Schema for education response."},"EducationTimelineResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"country_code":{"type":"string","title":"Country Code"},"entries":{"items":{"$ref":"#/components/schemas/TimelineEntry"},"type":"array","title":"Entries"},"gaps":{"items":{"$ref":"#/components/schemas/TimelineGap"},"type":"array","title":"Gaps","default":[]},"total_years":{"type":"integer","title":"Total Years"},"first_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"First Year"},"last_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Year"},"institutions_count":{"type":"integer","title":"Institutions Count","default":0},"completeness_pct":{"type":"number","title":"Completeness Pct","default":0.0}},"type":"object","required":["person_code","country_code","entries","total_years"],"title":"EducationTimelineResponse","description":"Aggregated education timeline for a person."},"EducationUpdate":{"properties":{"education_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Type"},"institution_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Name"},"institution_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Institution Type"},"degree_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Degree Name"},"degree_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Degree Level"},"field_of_study":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field Of Study"},"specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialization"},"education_level_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Code"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"},"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"gpa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gpa"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"skills_acquired":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Acquired"}},"type":"object","title":"EducationUpdate","description":"Schema for updating education - all fields optional."},"EligibilityCriterionDetail":{"properties":{"required":{"title":"Required"},"actual":{"title":"Actual"},"met":{"type":"boolean","title":"Met"}},"type":"object","required":["required","actual","met"],"title":"EligibilityCriterionDetail","description":"Detailed eligibility criterion."},"EnterpriseDiagnostic":{"properties":{"person_code":{"type":"string","title":"Person Code"},"business_activity":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Business Activity"},"processes_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Processes Summary"},"technology_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Technology Summary"},"needs_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Needs Summary"},"recommendations_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Recommendations Summary"},"overall_digital_maturity":{"type":"integer","title":"Overall Digital Maturity","default":0},"priority_actions":{"items":{"type":"string"},"type":"array","title":"Priority Actions","default":[]}},"type":"object","required":["person_code"],"title":"EnterpriseDiagnostic","description":"Full enterprise diagnostic."},"EnterpriseSearchResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/EnterpriseSearchResult"},"type":"array","title":"Results"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["results","total_count"],"title":"EnterpriseSearchResponse","description":"Response for enterprise search."},"EnterpriseSearchResult":{"properties":{"person_code":{"type":"string","title":"Person Code"},"primary_industry":{"type":"string","title":"Primary Industry"},"business_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Description"},"employee_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employee Count"},"digital_maturity_score":{"type":"integer","title":"Digital Maturity Score","default":0},"needs_count":{"type":"integer","title":"Needs Count","default":0},"high_priority_needs_count":{"type":"integer","title":"High Priority Needs Count","default":0},"has_open_needs":{"type":"boolean","title":"Has Open Needs","default":false}},"type":"object","required":["person_code","primary_industry"],"title":"EnterpriseSearchResult","description":"Search result for enterprise."},"EntityMatch":{"properties":{"entity_name":{"type":"string","title":"Entity Name"},"entity_type":{"type":"string","title":"Entity Type"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"exists":{"type":"boolean","title":"Exists"},"suggested_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Code"},"will_create":{"type":"boolean","title":"Will Create","default":false},"match_confidence":{"type":"number","title":"Match Confidence","default":0.0}},"type":"object","required":["entity_name","entity_type","exists"],"title":"EntityMatch","description":"Schema for entity matching result"},"EstablishmentCreate":{"properties":{"siret":{"anyOf":[{"type":"string","maxLength":14},{"type":"null"}],"title":"Siret"},"nic":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Nic"},"establishment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Establishment Type","description":"headquarters/branch/factory/retail/warehouse/rnd"},"is_headquarters":{"type":"boolean","title":"Is Headquarters","default":false},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"city_code_gdam":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City Code Gdam"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"employee_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Employee Count"},"date_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Start"},"date_close":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Close"},"is_active":{"type":"boolean","title":"Is Active","default":true},"opening_hours":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Opening Hours"},"photos":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Photos"}},"type":"object","title":"EstablishmentCreate"},"EstablishmentResponse":{"properties":{"siret":{"anyOf":[{"type":"string","maxLength":14},{"type":"null"}],"title":"Siret"},"nic":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Nic"},"establishment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Establishment Type","description":"headquarters/branch/factory/retail/warehouse/rnd"},"is_headquarters":{"type":"boolean","title":"Is Headquarters","default":false},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"city_code_gdam":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City Code Gdam"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"employee_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Employee Count"},"date_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Start"},"date_close":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Close"},"is_active":{"type":"boolean","title":"Is Active","default":true},"opening_hours":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Opening Hours"},"photos":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Photos"},"establishment_id":{"type":"string","title":"Establishment Id"},"person_code":{"type":"string","title":"Person Code"},"country_code":{"type":"string","title":"Country Code"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["establishment_id","person_code","country_code"],"title":"EstablishmentResponse"},"EstablishmentUpdate":{"properties":{"siret":{"anyOf":[{"type":"string","maxLength":14},{"type":"null"}],"title":"Siret"},"nic":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Nic"},"establishment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Establishment Type","description":"headquarters/branch/factory/retail/warehouse/rnd"},"is_headquarters":{"type":"boolean","title":"Is Headquarters","default":false},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"address_line_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 2"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"city_code_gdam":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City Code Gdam"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"employee_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Employee Count"},"date_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Start"},"date_close":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Close"},"is_active":{"type":"boolean","title":"Is Active","default":true},"opening_hours":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Opening Hours"},"photos":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Photos"}},"type":"object","title":"EstablishmentUpdate"},"ExperienceCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"experience_type":{"type":"string","title":"Experience Type","default":"WORK"},"organization_name":{"type":"string","title":"Organization Name"},"organization_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Type"},"organization_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Website"},"position_title":{"type":"string","title":"Position Title"},"position_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position Level"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"employment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Type"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"location_type":{"type":"string","title":"Location Type","default":"ONSITE"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"responsibilities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Responsibilities"},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"},"skills_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Used"},"skills_developed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Developed"},"tools_technologies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tools Technologies"},"civic_impact":{"type":"boolean","title":"Civic Impact","default":false},"causes_supported":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Causes Supported"},"volunteer_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volunteer Hours"}},"type":"object","required":["person_code","organization_name","position_title","start_date"],"title":"ExperienceCreate","description":"Schema for creating experience."},"ExperienceItem":{"properties":{"organization_name":{"type":"string","title":"Organization Name"},"organization_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Logo Url"},"position_title":{"type":"string","title":"Position Title"},"employment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Type"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"skills_used":{"items":{"type":"string"},"type":"array","title":"Skills Used","default":[]},"achievements":{"items":{"type":"string"},"type":"array","title":"Achievements","default":[]}},"type":"object","required":["organization_name","position_title"],"title":"ExperienceItem","description":"Single experience entry."},"ExperienceListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"experiences":{"items":{"$ref":"#/components/schemas/ExperienceResponse"},"type":"array","title":"Experiences"},"total_count":{"type":"integer","title":"Total Count"},"total_years":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Years"}},"type":"object","required":["person_code","experiences","total_count"],"title":"ExperienceListResponse","description":"Schema for listing experiences."},"ExperienceResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"experience_type":{"type":"string","title":"Experience Type","default":"WORK"},"organization_name":{"type":"string","title":"Organization Name"},"organization_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Type"},"organization_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Website"},"position_title":{"type":"string","title":"Position Title"},"position_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position Level"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"employment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Type"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"location_type":{"type":"string","title":"Location Type","default":"ONSITE"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"responsibilities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Responsibilities"},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"},"skills_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Used"},"skills_developed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Developed"},"tools_technologies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tools Technologies"},"civic_impact":{"type":"boolean","title":"Civic Impact","default":false},"causes_supported":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Causes Supported"},"volunteer_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volunteer Hours"},"experience_id":{"type":"string","format":"uuid","title":"Experience Id"},"experience_code":{"type":"string","title":"Experience Code"},"country_code":{"type":"string","title":"Country Code"},"duration_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Months"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","organization_name","position_title","start_date","experience_id","experience_code","country_code","created_at","datakey"],"title":"ExperienceResponse","description":"Schema for experience response."},"ExperienceUpdate":{"properties":{"experience_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Type"},"organization_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Name"},"position_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position Title"},"position_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position Level"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"employment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Type"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"},"location_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Type"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"responsibilities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Responsibilities"},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"},"skills_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Used"}},"type":"object","title":"ExperienceUpdate","description":"Schema for updating experience - all fields optional."},"ExtractionWarning":{"properties":{"field":{"type":"string","title":"Field"},"message":{"type":"string","title":"Message"},"suggestion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggestion"}},"type":"object","required":["field","message"],"title":"ExtractionWarning","description":"Schema for extraction warning"},"FileListResponse":{"properties":{"directory":{"type":"string","title":"Directory"},"total_files":{"type":"integer","title":"Total Files"},"files":{"items":{},"type":"array","title":"Files"},"by_type":{"additionalProperties":true,"type":"object","title":"By Type"},"by_country":{"additionalProperties":true,"type":"object","title":"By Country"}},"type":"object","required":["directory","total_files","files","by_type","by_country"],"title":"FileListResponse","description":"Response for file listing."},"GlobalDashboardResponse":{"properties":{"global_stats":{"$ref":"#/components/schemas/GlobalStats"},"countries_summary":{"items":{"$ref":"#/components/schemas/CountrySummary"},"type":"array","title":"Countries Summary"},"pending_candidacies_preview":{"items":{"$ref":"#/components/schemas/PendingCandidacySummary"},"type":"array","title":"Pending Candidacies Preview","description":"Preview of first 5 pending candidacies"},"pending_candidacies_count":{"type":"integer","title":"Pending Candidacies Count"}},"type":"object","required":["global_stats","countries_summary","pending_candidacies_count"],"title":"GlobalDashboardResponse","description":"Response for global dashboard endpoint."},"GlobalStats":{"properties":{"countries_covered":{"type":"integer","title":"Countries Covered","description":"Number of countries with active Ambassador Country"},"countries_total":{"type":"integer","title":"Countries Total","description":"Total countries in the world","default":195},"total_country_ambassadors":{"type":"integer","title":"Total Country Ambassadors","description":"Total active Ambassador Country"},"total_verified_citizens":{"type":"integer","title":"Total Verified Citizens","description":"Total verified citizens globally"},"pending_country_candidacies":{"type":"integer","title":"Pending Country Candidacies","description":"Candidacies waiting for review"}},"type":"object","required":["countries_covered","total_country_ambassadors","total_verified_citizens","pending_country_candidacies"],"title":"GlobalStats","description":"Global aggregated statistics."},"GraphPathRequest":{"properties":{"from_person_code":{"type":"string","title":"From Person Code"},"to_person_code":{"type":"string","title":"To Person Code"},"max_depth":{"type":"integer","maximum":6.0,"title":"Max Depth","default":3}},"type":"object","required":["from_person_code","to_person_code"],"title":"GraphPathRequest","description":"Schema for finding path between two persons"},"GraphPathResponse":{"properties":{"from_person":{"type":"string","title":"From Person"},"to_person":{"type":"string","title":"To Person"},"path_found":{"type":"boolean","title":"Path Found"},"path_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Path Length"},"path":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Path"}},"type":"object","required":["from_person","to_person","path_found"],"title":"GraphPathResponse","description":"Schema for path response"},"GraphSearchResponse":{"properties":{"query":{"type":"string","title":"Query"},"results":{"items":{"$ref":"#/components/schemas/GraphSearchResult"},"type":"array","title":"Results"},"total_results":{"type":"integer","title":"Total Results"},"facets":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},{"type":"null"}],"title":"Facets"}},"type":"object","required":["query","results","total_results"],"title":"GraphSearchResponse","description":"Schema for graph search response"},"GraphSearchResult":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type"},"display_name":{"type":"string","title":"Display Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"profession":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profession"},"home_page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Home Page Url"},"match_score":{"type":"number","title":"Match Score"},"matched_on":{"items":{"type":"string"},"type":"array","title":"Matched On"}},"type":"object","required":["person_code","person_type","display_name","match_score","matched_on"],"title":"GraphSearchResult","description":"Schema for a single search result"},"GroupInfoResponse":{"properties":{"members_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Members Count"},"founding_year":{"anyOf":[{"type":"integer","maximum":2100.0,"minimum":1800.0},{"type":"null"}],"title":"Founding Year"},"legal_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Status","description":"Legal status (Association loi 1901, Coopérative, etc.)"},"rna_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rna Number","description":"RNA number for associations"},"purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose","description":"Purpose/mission statement"},"is_public_utility":{"type":"boolean","title":"Is Public Utility","default":false},"activity_sectors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Activity Sectors"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope","description":"local, regional, national, international"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"headquarters_address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headquarters Address"},"governance_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Governance Type"},"board_members_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Board Members Count"},"last_general_assembly":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last General Assembly"},"annual_budget":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Annual Budget"},"funding_sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Funding Sources"},"is_non_profit":{"type":"boolean","title":"Is Non Profit","default":true},"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type","default":"GROUP"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["person_code"],"title":"GroupInfoResponse","description":"Response schema for group info."},"GroupInfoSection":{"properties":{"group_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Type"},"purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose"},"founded_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Founded Date"},"members_count":{"type":"integer","title":"Members Count","default":0},"is_official":{"type":"boolean","title":"Is Official","default":false},"legal_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Status"}},"type":"object","title":"GroupInfoSection","description":"Group specific information."},"GroupInfoUpdate":{"properties":{"members_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Members Count"},"founding_year":{"anyOf":[{"type":"integer","maximum":2100.0,"minimum":1800.0},{"type":"null"}],"title":"Founding Year"},"legal_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Status","description":"Legal status (Association loi 1901, Coopérative, etc.)"},"rna_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rna Number","description":"RNA number for associations"},"purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose","description":"Purpose/mission statement"},"is_public_utility":{"type":"boolean","title":"Is Public Utility","default":false},"activity_sectors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Activity Sectors"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope","description":"local, regional, national, international"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"headquarters_address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headquarters Address"},"governance_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Governance Type"},"board_members_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Board Members Count"},"last_general_assembly":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last General Assembly"},"annual_budget":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Annual Budget"},"funding_sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Funding Sources"},"is_non_profit":{"type":"boolean","title":"Is Non Profit","default":true}},"type":"object","title":"GroupInfoUpdate","description":"Schema for updating group info."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HappinessCardRecalculateRequest":{"properties":{"force":{"type":"boolean","title":"Force","default":false}},"type":"object","title":"HappinessCardRecalculateRequest","description":"Schema for requesting recalculation from pillar scores"},"HappinessCardResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"global_score":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Global Score"},"global_level":{"type":"string","title":"Global Level"},"pillars_in_critical":{"type":"integer","title":"Pillars In Critical","default":0},"pillars_in_fragile":{"type":"integer","title":"Pillars In Fragile","default":0},"pillars_in_stable":{"type":"integer","title":"Pillars In Stable","default":0},"pillars_in_good":{"type":"integer","title":"Pillars In Good","default":0},"pillars_in_excellent":{"type":"integer","title":"Pillars In Excellent","default":0},"needs_support":{"type":"boolean","title":"Needs Support","default":false},"priority_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority Level"},"support_areas":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Support Areas"},"trend":{"type":"string","title":"Trend","default":"stable"},"previous_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Previous Score"},"score_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score Change"},"pillar_breakdown":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Pillar Breakdown"},"calculation_method":{"type":"string","title":"Calculation Method","default":"weighted_average"},"data_completeness":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Data Completeness","default":1.0},"happiness_card_id":{"type":"string","format":"uuid","title":"Happiness Card Id"},"country_code":{"type":"string","title":"Country Code"},"last_calculated":{"type":"string","format":"date-time","title":"Last Calculated"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","global_score","global_level","happiness_card_id","country_code","last_calculated","created_at","datakey"],"title":"HappinessCardResponse","description":"Schema for happiness card response"},"HappinessCardSection":{"properties":{"global_score":{"type":"number","title":"Global Score"},"global_level":{"type":"string","title":"Global Level"},"pillars_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Pillars Distribution"},"needs_support":{"type":"boolean","title":"Needs Support","default":false},"support_areas":{"items":{"type":"string"},"type":"array","title":"Support Areas","default":[]}},"type":"object","required":["global_score","global_level","pillars_distribution"],"title":"HappinessCardSection","description":"Happiness card / Well-being summary."},"HappinessCardUpdate":{"properties":{"global_score":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Global Score"},"global_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Global Level"},"pillars_in_critical":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pillars In Critical"},"pillars_in_fragile":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pillars In Fragile"},"pillars_in_stable":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pillars In Stable"},"pillars_in_good":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pillars In Good"},"pillars_in_excellent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pillars In Excellent"},"needs_support":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Support"},"priority_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority Level"},"support_areas":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Support Areas"}},"type":"object","title":"HappinessCardUpdate","description":"Schema for updating a happiness card - all fields optional"},"HealthcareDemandResponse":{"properties":{"total_active_needs":{"type":"integer","title":"Total Active Needs"},"by_specialty":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Specialty"},"by_urgency":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Urgency"},"teleconsult_willing_pct":{"type":"number","title":"Teleconsult Willing Pct"}},"type":"object","required":["total_active_needs","by_specialty","by_urgency","teleconsult_willing_pct"],"title":"HealthcareDemandResponse"},"HealthcareNeedCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"specialty_sought":{"type":"string","title":"Specialty Sought"},"urgency_level":{"type":"string","title":"Urgency Level","default":"NORMAL"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"accepts_teleconsultation":{"type":"boolean","title":"Accepts Teleconsultation","default":false},"max_distance_km":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Distance Km"},"preferred_city_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred City Code"},"preferred_city_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred City Name"}},"type":"object","required":["person_code","specialty_sought"],"title":"HealthcareNeedCreate"},"HealthcareNeedListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"needs":{"items":{"$ref":"#/components/schemas/HealthcareNeedResponse"},"type":"array","title":"Needs"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","needs","total_count"],"title":"HealthcareNeedListResponse"},"HealthcareNeedResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"specialty_sought":{"type":"string","title":"Specialty Sought"},"urgency_level":{"type":"string","title":"Urgency Level","default":"NORMAL"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"accepts_teleconsultation":{"type":"boolean","title":"Accepts Teleconsultation","default":false},"max_distance_km":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Distance Km"},"preferred_city_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred City Code"},"preferred_city_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred City Name"},"need_id":{"type":"string","format":"uuid","title":"Need Id"},"need_code":{"type":"string","title":"Need Code"},"country_code":{"type":"string","title":"Country Code"},"need_status":{"type":"string","title":"Need Status","default":"ACTIVE"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","specialty_sought","need_id","need_code","country_code","created_at","datakey"],"title":"HealthcareNeedResponse"},"HealthcareNeedUpdate":{"properties":{"urgency_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Urgency Level"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"accepts_teleconsultation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accepts Teleconsultation"},"max_distance_km":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Distance Km"},"need_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Status"}},"type":"object","title":"HealthcareNeedUpdate"},"HealthcareRecordCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"specialty_code":{"type":"string","title":"Specialty Code"},"specialty_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty Name"},"rpps_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rpps Number"},"facility_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Person Code"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"facility_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Type"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"installation_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Installation Year"},"schedule_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Json"},"acts_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acts Json"},"languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"},"accepts_new_patients":{"type":"boolean","title":"Accepts New Patients","default":true},"teleconsultation":{"type":"boolean","title":"Teleconsultation","default":false}},"type":"object","required":["person_code","specialty_code"],"title":"HealthcareRecordCreate","description":"Schema for creating a healthcare record."},"HealthcareRecordListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"records":{"items":{"$ref":"#/components/schemas/HealthcareRecordResponse"},"type":"array","title":"Records"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","records","total_count"],"title":"HealthcareRecordListResponse","description":"Schema for listing healthcare records."},"HealthcareRecordResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"specialty_code":{"type":"string","title":"Specialty Code"},"specialty_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty Name"},"rpps_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rpps Number"},"facility_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Person Code"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"facility_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Type"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"installation_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Installation Year"},"schedule_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Json"},"acts_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acts Json"},"languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"},"accepts_new_patients":{"type":"boolean","title":"Accepts New Patients","default":true},"teleconsultation":{"type":"boolean","title":"Teleconsultation","default":false},"record_id":{"type":"string","format":"uuid","title":"Record Id"},"record_code":{"type":"string","title":"Record Code"},"country_code":{"type":"string","title":"Country Code"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","specialty_code","record_id","record_code","country_code","created_at","datakey"],"title":"HealthcareRecordResponse","description":"Schema for API response."},"HealthcareRecordUpdate":{"properties":{"specialty_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty Code"},"specialty_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty Name"},"rpps_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rpps Number"},"facility_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Person Code"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"facility_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Type"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"installation_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Installation Year"},"schedule_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Json"},"acts_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acts Json"},"languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"},"accepts_new_patients":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accepts New Patients"},"teleconsultation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Teleconsultation"}},"type":"object","title":"HealthcareRecordUpdate","description":"Schema for updating — all fields optional."},"HeroSection":{"properties":{"display_name":{"type":"string","title":"Display Name"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"profile_photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Photo Url"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"verification_level":{"type":"integer","title":"Verification Level","default":0},"civic_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Civic Level"}},"type":"object","required":["display_name"],"title":"HeroSection","description":"Hero section with cover image and main info."},"HomePageConfigCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type"},"slug":{"type":"string","title":"Slug"},"is_public":{"type":"boolean","title":"Is Public","default":true},"is_searchable":{"type":"boolean","title":"Is Searchable","default":true},"is_indexed":{"type":"boolean","title":"Is Indexed","default":true},"theme":{"type":"string","title":"Theme","default":"professional-blue"},"primary_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Color"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"sections_visibility":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Sections Visibility"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"seo_keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Seo Keywords"},"show_email":{"type":"boolean","title":"Show Email","default":false},"show_phone":{"type":"boolean","title":"Show Phone","default":false},"contact_form_enabled":{"type":"boolean","title":"Contact Form Enabled","default":true}},"type":"object","required":["person_code","person_type","slug"],"title":"HomePageConfigCreate","description":"Schema for creating home page config"},"HomePageConfigResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type"},"slug":{"type":"string","title":"Slug"},"is_public":{"type":"boolean","title":"Is Public","default":true},"is_searchable":{"type":"boolean","title":"Is Searchable","default":true},"is_indexed":{"type":"boolean","title":"Is Indexed","default":true},"theme":{"type":"string","title":"Theme","default":"professional-blue"},"primary_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Color"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"sections_visibility":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Sections Visibility"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"seo_keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Seo Keywords"},"show_email":{"type":"boolean","title":"Show Email","default":false},"show_phone":{"type":"boolean","title":"Show Phone","default":false},"contact_form_enabled":{"type":"boolean","title":"Contact Form Enabled","default":true},"config_id":{"type":"string","format":"uuid","title":"Config Id"},"country_code":{"type":"string","title":"Country Code"},"custom_sections":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Custom Sections"},"og_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Og Title"},"og_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Og Description"},"og_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Og Image Url"},"view_count":{"type":"integer","title":"View Count","default":0},"last_viewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Viewed At"},"unique_visitors":{"type":"integer","title":"Unique Visitors","default":0},"is_premium":{"type":"boolean","title":"Is Premium","default":false},"custom_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Domain"},"verified_badge":{"type":"boolean","title":"Verified Badge","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","person_type","slug","config_id","country_code","created_at","datakey"],"title":"HomePageConfigResponse","description":"Schema for home page config response"},"HomePageConfigUpdate":{"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public"},"is_searchable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Searchable"},"theme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"},"primary_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Color"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"sections_visibility":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Sections Visibility"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"seo_keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Seo Keywords"},"show_email":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Email"},"show_phone":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Phone"},"contact_form_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Contact Form Enabled"}},"type":"object","title":"HomePageConfigUpdate","description":"Schema for updating home page config - all fields optional"},"HomePageGroupResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type","default":"GROUP"},"slug":{"type":"string","title":"Slug"},"theme":{"type":"string","title":"Theme","default":"creative-green"},"is_public":{"type":"boolean","title":"Is Public","default":true},"hero":{"$ref":"#/components/schemas/HeroSection"},"group_info":{"anyOf":[{"$ref":"#/components/schemas/GroupInfoSection"},{"type":"null"}]},"pillar_scores":{"items":{"$ref":"#/components/schemas/PillarScoreItem"},"type":"array","title":"Pillar Scores","default":[]},"members":{"anyOf":[{"$ref":"#/components/schemas/MembersSection"},{"type":"null"}]},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactSection"},{"type":"null"}]},"view_count":{"type":"integer","title":"View Count","default":0},"last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated"}},"type":"object","required":["person_code","slug","hero"],"title":"HomePageGroupResponse","description":"Complete Home Page for GROUP (collective/association)."},"HomePageHumanResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type","default":"HUMAN"},"slug":{"type":"string","title":"Slug"},"theme":{"type":"string","title":"Theme","default":"professional-blue"},"is_public":{"type":"boolean","title":"Is Public","default":true},"hero":{"$ref":"#/components/schemas/HeroSection"},"pillar_scores":{"items":{"$ref":"#/components/schemas/PillarScoreItem"},"type":"array","title":"Pillar Scores","default":[]},"happiness_card":{"anyOf":[{"$ref":"#/components/schemas/HappinessCardSection"},{"type":"null"}]},"skills":{"items":{"$ref":"#/components/schemas/SkillItem"},"type":"array","title":"Skills","default":[]},"skills_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Skills Summary"},"certifications":{"items":{"$ref":"#/components/schemas/CertificationItem"},"type":"array","title":"Certifications","default":[]},"education":{"items":{"$ref":"#/components/schemas/EducationItem"},"type":"array","title":"Education","default":[]},"experiences":{"items":{"$ref":"#/components/schemas/ExperienceItem"},"type":"array","title":"Experiences","default":[]},"badges":{"items":{"$ref":"#/components/schemas/BadgeItem"},"type":"array","title":"Badges","default":[]},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactSection"},{"type":"null"}]},"connections":{"anyOf":[{"$ref":"#/components/schemas/ConnectionStats"},{"type":"null"}]},"view_count":{"type":"integer","title":"View Count","default":0},"last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated"}},"type":"object","required":["person_code","slug","hero"],"title":"HomePageHumanResponse","description":"Complete Home Page for HUMAN (physical person)."},"HomePageMoralResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type","default":"MORAL"},"slug":{"type":"string","title":"Slug"},"theme":{"type":"string","title":"Theme","default":"corporate-blue"},"is_public":{"type":"boolean","title":"Is Public","default":true},"hero":{"$ref":"#/components/schemas/HeroSection"},"business_info":{"anyOf":[{"$ref":"#/components/schemas/BusinessInfoSection"},{"type":"null"}]},"pillar_scores":{"items":{"$ref":"#/components/schemas/PillarScoreItem"},"type":"array","title":"Pillar Scores","default":[]},"certifications":{"items":{"$ref":"#/components/schemas/CertificationItem"},"type":"array","title":"Certifications","default":[]},"people_connections":{"anyOf":[{"$ref":"#/components/schemas/PeopleConnectionsSection"},{"type":"null"}]},"contact":{"anyOf":[{"$ref":"#/components/schemas/ContactSection"},{"type":"null"}]},"view_count":{"type":"integer","title":"View Count","default":0},"last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated"}},"type":"object","required":["person_code","slug","hero"],"title":"HomePageMoralResponse","description":"Complete Home Page for MORAL (company/organization)."},"HomePagePublicResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type"},"display_name":{"type":"string","title":"Display Name"},"slug":{"type":"string","title":"Slug"},"profession":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profession"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"profile_photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Photo Url"},"cover_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Image Url"},"experiences":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Experiences"},"education":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Education"},"skills_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Skills Summary"},"certifications":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Certifications"},"badges":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Badges"},"connections":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Connections"},"verification":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Verification"},"civic_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Civic Level"},"business_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Business Info"},"people_connections":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"People Connections"},"group_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Group Info"}},"type":"object","required":["person_code","person_type","display_name","slug"],"title":"HomePagePublicResponse","description":"Schema for public home page access (filtered data)"},"HomePageUrlResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"slug":{"type":"string","title":"Slug"},"url":{"type":"string","title":"Url"},"person_type":{"type":"string","title":"Person Type"}},"type":"object","required":["person_code","slug","url","person_type"],"title":"HomePageUrlResponse","description":"Schema for getting home page URL"},"IdentityDataPayload":{"properties":{"first_name":{"type":"string","title":"First Name"},"middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Middle Name","default":""},"last_name":{"type":"string","title":"Last Name"},"slug_of_name":{"type":"string","title":"Slug Of Name"},"user_code":{"type":"string","title":"User Code"},"country_code":{"type":"string","title":"Country Code"}},"type":"object","required":["first_name","last_name","slug_of_name","user_code","country_code"],"title":"IdentityDataPayload","description":"Data payload from Identity."},"IdentitySyncRequest":{"properties":{"event":{"type":"string","title":"Event"},"identity_user_id":{"type":"string","title":"Identity User Id"},"data":{"$ref":"#/components/schemas/IdentityDataPayload"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["event","identity_user_id","data","timestamp"],"title":"IdentitySyncRequest","description":"Request from Identity when user data changes."},"IndustryListResponse":{"properties":{"industries":{"items":{"type":"string"},"type":"array","title":"Industries"},"revenue_ranges":{"items":{"type":"string"},"type":"array","title":"Revenue Ranges"},"geographic_scopes":{"items":{"type":"string"},"type":"array","title":"Geographic Scopes"},"transformation_priorities":{"items":{"type":"string"},"type":"array","title":"Transformation Priorities"}},"type":"object","title":"IndustryListResponse","description":"Response with list of available industries."},"InseeInjectionReport":{"properties":{"total":{"type":"integer","title":"Total"},"matched":{"type":"integer","title":"Matched"},"updated":{"type":"integer","title":"Updated"},"not_found":{"type":"integer","title":"Not Found"},"errors":{"type":"integer","title":"Errors"},"details":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Details","default":[]}},"type":"object","required":["total","matched","updated","not_found","errors"],"title":"InseeInjectionReport","description":"Rapport d'injection batch INSEE."},"InseeInjectionRequest":{"properties":{"records":{"items":{"$ref":"#/components/schemas/InseeRecord"},"type":"array","maxItems":1000,"minItems":1,"title":"Records"}},"type":"object","required":["records"],"title":"InseeInjectionRequest","description":"Requete d'injection batch de donnees INSEE."},"InseeRecord":{"properties":{"siret":{"type":"string","maxLength":14,"minLength":14,"title":"Siret","description":"SIRET 14 chiffres"},"siren":{"anyOf":[{"type":"string","maxLength":9},{"type":"null"}],"title":"Siren","description":"SIREN 9 chiffres"},"denomination":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Denomination"},"forme_juridique":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forme Juridique"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"naf_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Label"},"capital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capital"},"date_creation":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Creation"},"effectif_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effectif Range"},"effectif_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Effectif Count"},"adresse_siege":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Adresse Siege"},"statut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statut","description":"OPERATING/CLOSED"}},"type":"object","required":["siret"],"title":"InseeRecord","description":"Un enregistrement INSEE/SIRENE pour injection batch."},"IsAmbassadorCreate":{"properties":{"specializations":{"items":{"type":"string"},"type":"array","title":"Specializations","description":"Areas of expertise"},"languages":{"items":{"type":"string"},"type":"array","title":"Languages","default":["fr"]},"availability":{"type":"string","title":"Availability","default":"weekends"},"max_persons":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Max Persons","default":5},"remote_assistance":{"type":"boolean","title":"Remote Assistance","default":true},"home_visits":{"type":"boolean","title":"Home Visits","default":false},"cities_covered":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cities Covered"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"certification_type":{"type":"string","title":"Certification Type","default":"VOLUNTEER"},"available_hours_per_week":{"type":"integer","maximum":40.0,"minimum":1.0,"title":"Available Hours Per Week","default":5}},"type":"object","required":["specializations","display_name"],"title":"IsAmbassadorCreate","description":"Schema for becoming an ambassador."},"IsAmbassadorResponse":{"properties":{"helper_id":{"type":"string","format":"uuid","title":"Helper Id"},"person_code":{"type":"string","title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"is_ambassador":{"type":"boolean","title":"Is Ambassador","default":true},"ambassador_since":{"type":"string","format":"date-time","title":"Ambassador Since"},"specializations":{"items":{"type":"string"},"type":"array","title":"Specializations"},"languages":{"items":{"type":"string"},"type":"array","title":"Languages","default":["fr"]},"availability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Availability"},"max_persons":{"type":"integer","title":"Max Persons","default":5},"current_persons_count":{"type":"integer","title":"Current Persons Count","default":0},"persons_helped_count":{"type":"integer","title":"Persons Helped Count","default":0},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"sessions_completed":{"type":"integer","title":"Sessions Completed","default":0},"total_hours_volunteered":{"type":"integer","title":"Total Hours Volunteered","default":0},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_available":{"type":"boolean","title":"Is Available","default":true},"certification_level":{"type":"integer","title":"Certification Level","default":1},"badges_earned":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Badges Earned"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["helper_id","person_code","display_name","ambassador_since","specializations","created_at"],"title":"IsAmbassadorResponse","description":"Response schema for ambassador."},"IsAmbassadorUpdate":{"properties":{"specializations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Specializations"},"languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"},"availability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Availability"},"max_persons":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Persons"},"is_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Available"},"remote_assistance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Remote Assistance"},"home_visits":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Home Visits"},"cities_covered":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cities Covered"},"available_hours_per_week":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Available Hours Per Week"}},"type":"object","title":"IsAmbassadorUpdate","description":"Schema for updating ambassador profile."},"JobMatchItem":{"properties":{"offer_code":{"type":"string","title":"Offer Code"},"enterprise_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Name"},"job_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Title"},"match_score":{"type":"number","title":"Match Score"},"breakdown":{"$ref":"#/components/schemas/MatchBreakdown"}},"type":"object","required":["offer_code","match_score","breakdown"],"title":"JobMatchItem"},"JobOfferCreate":{"properties":{"offer_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Offer Code"},"enterprise_name":{"type":"string","title":"Enterprise Name"},"enterprise_siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Siren"},"enterprise_naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Naf Code"},"enterprise_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise City"},"enterprise_region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Region"},"job_title":{"type":"string","title":"Job Title"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"contract_type":{"type":"string","title":"Contract Type"},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"experience_required":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Required"},"start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"},"work_location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Work Location"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope"},"remote_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remote Policy"},"required_skills":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Required Skills","default":[]},"preferred_skills":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Skills","default":[]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["enterprise_name","job_title","contract_type"],"title":"JobOfferCreate"},"JobOfferListResponse":{"properties":{"enterprise_person_code":{"type":"string","title":"Enterprise Person Code"},"offers":{"items":{"$ref":"#/components/schemas/JobOfferResponse"},"type":"array","title":"Offers"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["enterprise_person_code","offers","total_count"],"title":"JobOfferListResponse"},"JobOfferResponse":{"properties":{"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"offer_code":{"type":"string","title":"Offer Code"},"country_code":{"type":"string","title":"Country Code"},"enterprise_person_code":{"type":"string","title":"Enterprise Person Code"},"enterprise_name":{"type":"string","title":"Enterprise Name"},"enterprise_siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Siren"},"enterprise_naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Naf Code"},"enterprise_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise City"},"enterprise_region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Region"},"job_title":{"type":"string","title":"Job Title"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"contract_type":{"type":"string","title":"Contract Type"},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"experience_required":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Required"},"start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"},"work_location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Work Location"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope"},"remote_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remote Policy"},"required_skills":{"items":{"type":"string"},"type":"array","title":"Required Skills","default":[]},"preferred_skills":{"items":{"type":"string"},"type":"array","title":"Preferred Skills","default":[]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"status":{"type":"string","title":"Status","default":"ACTIVE"},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"is_searchable":{"type":"boolean","title":"Is Searchable","default":true},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"view_count":{"type":"integer","title":"View Count","default":0},"application_count":{"type":"integer","title":"Application Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["offer_id","offer_code","country_code","enterprise_person_code","enterprise_name","job_title","contract_type","created_at"],"title":"JobOfferResponse"},"JobOfferUpdate":{"properties":{"job_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Title"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"contract_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Type"},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"experience_required":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Required"},"work_location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Work Location"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope"},"remote_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remote Policy"},"required_skills":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Required Skills"},"preferred_skills":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Skills"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibility"},"is_searchable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Searchable"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","title":"JobOfferUpdate"},"JobRecordCreate":{"properties":{"enterprise_person_code":{"type":"string","title":"Enterprise Person Code","description":"Person MORAL code of the employer"},"enterprise_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Name"},"job_title":{"type":"string","title":"Job Title","description":"Job position title"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"contract_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Type"},"start_date":{"type":"string","title":"Start Date","description":"ISO date (YYYY-MM-DD)"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":true},"status":{"type":"string","title":"Status","default":"ACTIVE"}},"type":"object","required":["enterprise_person_code","job_title","start_date"],"title":"JobRecordCreate"},"JobRecordListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"records":{"items":{"$ref":"#/components/schemas/JobRecordResponse"},"type":"array","title":"Records"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","records","total_count"],"title":"JobRecordListResponse"},"JobRecordResponse":{"properties":{"record_id":{"type":"string","title":"Record Id"},"record_code":{"type":"string","title":"Record Code"},"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"person_id":{"type":"string","title":"Person Id"},"enterprise_person_code":{"type":"string","title":"Enterprise Person Code"},"enterprise_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Name"},"job_title":{"type":"string","title":"Job Title"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"contract_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Type"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date"},"status":{"type":"string","title":"Status"},"is_current":{"type":"boolean","title":"Is Current"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"job_record_id":{"type":"string","title":"Job Record Id","default":""},"job_record_code":{"type":"string","title":"Job Record Code","default":""}},"type":"object","required":["record_id","record_code","country_code","person_code","person_id","enterprise_person_code","job_title","status","is_current","is_active"],"title":"JobRecordResponse"},"JobSearchProfileCreate":{"properties":{"search_domain":{"type":"string","title":"Search Domain"},"contract_type_sought":{"type":"string","title":"Contract Type Sought"},"geographic_scope":{"type":"string","title":"Geographic Scope"},"geographic_code":{"type":"string","title":"Geographic Code"},"experience_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Level"},"years_experience":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Experience","default":0},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"availability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Availability","default":"TO_DEFINE"},"desired_titles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Desired Titles","default":[]}},"type":"object","required":["search_domain","contract_type_sought","geographic_scope","geographic_code"],"title":"JobSearchProfileCreate"},"JobSearchProfileListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"profiles":{"items":{"$ref":"#/components/schemas/JobSearchProfileResponse"},"type":"array","title":"Profiles"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","profiles","total_count"],"title":"JobSearchProfileListResponse"},"JobSearchProfileResponse":{"properties":{"profile_id":{"type":"string","format":"uuid","title":"Profile Id"},"profile_code":{"type":"string","title":"Profile Code"},"person_code":{"type":"string","title":"Person Code"},"country_code":{"type":"string","title":"Country Code"},"search_domain":{"type":"string","title":"Search Domain"},"contract_type_sought":{"type":"string","title":"Contract Type Sought"},"geographic_scope":{"type":"string","title":"Geographic Scope"},"geographic_code":{"type":"string","title":"Geographic Code"},"experience_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Level"},"years_experience":{"type":"integer","title":"Years Experience","default":0},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"availability":{"type":"string","title":"Availability","default":"TO_DEFINE"},"desired_titles":{"items":{"type":"string"},"type":"array","title":"Desired Titles","default":[]},"is_active":{"type":"boolean","title":"Is Active","default":true},"status":{"type":"string","title":"Status","default":"ACTIVE"},"skills":{"items":{"$ref":"#/components/schemas/JobSearchSkillResponse"},"type":"array","title":"Skills","default":[]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["profile_id","profile_code","person_code","country_code","search_domain","contract_type_sought","geographic_scope","geographic_code","created_at"],"title":"JobSearchProfileResponse"},"JobSearchProfileUpdate":{"properties":{"search_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Domain"},"contract_type_sought":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Type Sought"},"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope"},"geographic_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Code"},"experience_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experience Level"},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"availability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Availability"},"desired_titles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Desired Titles"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"JobSearchProfileUpdate"},"JobSearchSkillBulkCreate":{"properties":{"skills":{"items":{"$ref":"#/components/schemas/JobSearchSkillCreate"},"type":"array","title":"Skills"}},"type":"object","required":["skills"],"title":"JobSearchSkillBulkCreate"},"JobSearchSkillBulkResponse":{"properties":{"created":{"items":{"$ref":"#/components/schemas/JobSearchSkillResponse"},"type":"array","title":"Created"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["created","total"],"title":"JobSearchSkillBulkResponse"},"JobSearchSkillCreate":{"properties":{"skill_code":{"type":"string","title":"Skill Code"},"skill_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skill Name"},"proficiency_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proficiency Level","default":"INTERMEDIATE"},"is_inherited":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Inherited","default":false}},"type":"object","required":["skill_code"],"title":"JobSearchSkillCreate"},"JobSearchSkillResponse":{"properties":{"skill_id":{"type":"string","format":"uuid","title":"Skill Id"},"skill_code":{"type":"string","title":"Skill Code"},"skill_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skill Name"},"proficiency_level":{"type":"string","title":"Proficiency Level"},"is_inherited":{"type":"boolean","title":"Is Inherited"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["skill_id","skill_code","proficiency_level","is_inherited","created_at"],"title":"JobSearchSkillResponse"},"JobSkillCreate":{"properties":{"skill_code":{"type":"string","title":"Skill Code"},"proficiency_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proficiency Level"}},"type":"object","required":["skill_code"],"title":"JobSkillCreate"},"JobSkillsBulkCreate":{"properties":{"skills":{"items":{"$ref":"#/components/schemas/JobSkillCreate"},"type":"array","title":"Skills"}},"type":"object","required":["skills"],"title":"JobSkillsBulkCreate"},"JobStatusResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"progress":{"additionalProperties":true,"type":"object","title":"Progress"},"current_profile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Profile"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"elapsed_seconds":{"type":"number","title":"Elapsed Seconds"},"errors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Errors"}},"type":"object","required":["job_id","status","progress","current_profile","started_at","elapsed_seconds","errors"],"title":"JobStatusResponse","description":"Response for job status."},"JobTriggerResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"estimated_profiles":{"type":"integer","title":"Estimated Profiles"},"created_at":{"type":"string","title":"Created At"},"status_url":{"type":"string","title":"Status Url"}},"type":"object","required":["job_id","status","estimated_profiles","created_at","status_url"],"title":"JobTriggerResponse","description":"Response after triggering a job."},"JourneyActivateRequest":{"properties":{"journey_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Journey Data","description":"Journey-specific data (e.g., institution, degree for student)"},"is_public":{"type":"boolean","title":"Is Public","description":"Visible on public profile","default":true},"is_primary":{"type":"boolean","title":"Is Primary","description":"Primary journey","default":false}},"type":"object","title":"JourneyActivateRequest","description":"Request to activate a journey for a person"},"JourneyAvailability":{"properties":{"is_enabled":{"type":"boolean","title":"Is Enabled","default":true},"is_public":{"type":"boolean","title":"Is Public","default":true},"is_beta":{"type":"boolean","title":"Is Beta","default":false},"beta_user_codes":{"items":{"type":"string"},"type":"array","title":"Beta User Codes","default":[]},"available_countries":{"items":{"type":"string"},"type":"array","title":"Available Countries","description":"['*'] for all countries","default":["*"]},"excluded_countries":{"items":{"type":"string"},"type":"array","title":"Excluded Countries","default":[]}},"type":"object","title":"JourneyAvailability","description":"Availability configuration for a journey"},"JourneyDisplayConfig":{"properties":{"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"SF Symbol name"},"icon_fallback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Fallback"},"color_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Primary","description":"Primary hex color"},"color_secondary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Secondary"},"emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emoji"}},"type":"object","title":"JourneyDisplayConfig","description":"Display configuration for a journey"},"JourneyEligibilityResponse":{"properties":{"journey_code":{"type":"string","title":"Journey Code"},"person_code":{"type":"string","title":"Person Code"},"is_eligible":{"type":"boolean","title":"Is Eligible"},"is_visible":{"type":"boolean","title":"Is Visible"},"already_activated":{"type":"boolean","title":"Already Activated"},"missing_requirements":{"items":{"type":"string"},"type":"array","title":"Missing Requirements"},"required_proofs":{"items":{"type":"string"},"type":"array","title":"Required Proofs"},"proof_validation_mode":{"type":"string","title":"Proof Validation Mode","description":"AUTOMATIC, MANUAL, API_VERIFICATION","default":"MANUAL"}},"type":"object","required":["journey_code","person_code","is_eligible","is_visible","already_activated","missing_requirements","required_proofs"],"title":"JourneyEligibilityResponse","description":"Response for journey eligibility check"},"JourneyListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"journeys":{"items":{"$ref":"#/components/schemas/JourneyResponse"},"type":"array","title":"Journeys"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"}},"type":"object","required":["total","journeys","categories"],"title":"JourneyListResponse","description":"Response for journey catalog list"},"JourneyProofSubmitRequest":{"properties":{"proof_type":{"type":"string","title":"Proof Type","description":"Type of proof: diploma, certificate, card, etc."},"document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id","description":"Reference to uploaded document"},"document_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Url"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["proof_type"],"title":"JourneyProofSubmitRequest","description":"Request to submit proof for a journey"},"JourneyResponse":{"properties":{"journey_code":{"type":"string","title":"Journey Code","description":"Unique journey code (lowercase)"},"journey_names":{"additionalProperties":{"type":"string"},"type":"object","title":"Journey Names","description":"Localized names {'en': 'Student', 'fr': 'Étudiant'}"},"journey_descriptions":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Journey Descriptions"},"short_descriptions":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Short Descriptions"},"category":{"type":"string","title":"Category","description":"CIVIC, EDUCATIONAL, PROFESSIONAL, SOCIAL, PROPERTY"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory"},"sort_order":{"type":"integer","title":"Sort Order","default":0},"ambassador_app_access_mode":{"type":"string","title":"Ambassador App Access Mode","description":"GROUP_ENTITY_BUSINESS_MANAGER or INDIVIDUAL_SELF_MANAGED","default":"INDIVIDUAL_SELF_MANAGED"},"grants_ambassador_app_access":{"type":"boolean","title":"Grants Ambassador App Access","description":"Whether this journey grants access to Ambassador application","default":false},"display":{"$ref":"#/components/schemas/JourneyDisplayConfig"},"availability":{"$ref":"#/components/schemas/JourneyAvailability"},"mobile_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mobile Config"},"eligibility":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eligibility"},"profil_manager_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profil Manager Code","description":"Linked profile in Profil Manager"},"profile_type_link":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Profile Type Link","description":"Profile type link {profile_type_code, priority, upgrade_only}"},"profile_type_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Type Code","description":"Derived from profile_type_link.profile_type_code"},"version":{"type":"string","title":"Version","default":"1.0.0"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["journey_code","journey_names","category"],"title":"JourneyResponse","description":"Schema for journey catalog response"},"JourneyValidateRequest":{"properties":{"validated_by_person_code":{"type":"string","title":"Validated By Person Code","description":"Ambassador or admin validating"},"status":{"type":"string","title":"Status","description":"VALIDATED or REJECTED"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["validated_by_person_code","status"],"title":"JourneyValidateRequest","description":"Request to validate a journey (by ambassador/admin)"},"LifeJourneyEvent":{"properties":{"type":{"type":"string","title":"Type"},"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"year":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Year"},"title":{"type":"string","title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"organization_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Code"},"details":{"additionalProperties":true,"type":"object","title":"Details"},"is_current":{"type":"boolean","title":"Is Current"}},"type":"object","required":["type","date","end_date","year","title","subtitle","organization","organization_code","details","is_current"],"title":"LifeJourneyEvent","description":"Single event in life journey timeline."},"LifeJourneyResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"current_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Status"},"total_events":{"type":"integer","title":"Total Events"},"organizations_count":{"type":"integer","title":"Organizations Count"},"summary":{"$ref":"#/components/schemas/LifeJourneySummary"},"timeline":{"items":{"$ref":"#/components/schemas/LifeJourneyEvent"},"type":"array","title":"Timeline"}},"type":"object","required":["person_code","current_status","total_events","organizations_count","summary","timeline"],"title":"LifeJourneyResponse","description":"Complete life journey response."},"LifeJourneySummary":{"properties":{"education_years":{"type":"integer","title":"Education Years"},"work_positions":{"type":"integer","title":"Work Positions"},"missions_completed":{"type":"integer","title":"Missions Completed"},"badges_earned":{"type":"integer","title":"Badges Earned"}},"type":"object","required":["education_years","work_positions","missions_completed","badges_earned"],"title":"LifeJourneySummary","description":"Summary counts."},"LifeJourneySummaryResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"current_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Status"},"summary":{"$ref":"#/components/schemas/LifeJourneySummary"},"organizations_count":{"type":"integer","title":"Organizations Count"}},"type":"object","required":["person_code","current_status","summary","organizations_count"],"title":"LifeJourneySummaryResponse","description":"Compact summary response."},"LiteracyProgressCreate":{"properties":{"evaluation_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Evaluation Date"},"evaluation_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluation Period"},"overall_level":{"type":"integer","title":"Overall Level","default":1},"previous_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Level"},"digital_autonomy_score":{"type":"number","title":"Digital Autonomy Score","default":0.0},"basic_computer_skills":{"type":"integer","title":"Basic Computer Skills","default":0},"internet_navigation":{"type":"integer","title":"Internet Navigation","default":0},"email_usage":{"type":"integer","title":"Email Usage","default":0},"file_management":{"type":"integer","title":"File Management","default":0},"online_security":{"type":"integer","title":"Online Security","default":0},"current_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Current Barriers"},"overcome_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Overcome Barriers"},"activities_completed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Activities Completed"},"exercises_passed":{"type":"integer","title":"Exercises Passed","default":0},"exercises_failed":{"type":"integer","title":"Exercises Failed","default":0},"study_hours":{"type":"integer","title":"Study Hours","default":0},"practice_hours":{"type":"integer","title":"Practice Hours","default":0},"assisted_hours":{"type":"integer","title":"Assisted Hours","default":0},"autonomous_hours":{"type":"integer","title":"Autonomous Hours","default":0},"milestones_reached":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Milestones Reached"},"badges_earned":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Badges Earned"},"helper_assessment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Assessment"},"helper_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Notes"},"areas_of_improvement":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Areas Of Improvement"},"strengths_identified":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Strengths Identified"},"self_assessment_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Self Assessment Score"},"self_confidence_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Self Confidence Score"}},"type":"object","title":"LiteracyProgressCreate"},"LiteracyProgressResponse":{"properties":{"progress_id":{"type":"string","format":"uuid","title":"Progress Id"},"progress_code":{"type":"string","title":"Progress Code"},"person_code":{"type":"string","title":"Person Code"},"assisted_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assisted Id"},"assisted_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assisted Code"},"evaluation_date":{"type":"string","format":"date-time","title":"Evaluation Date"},"overall_level":{"type":"integer","title":"Overall Level"},"previous_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Level"},"level_change":{"type":"integer","title":"Level Change","default":0},"digital_autonomy_score":{"type":"number","title":"Digital Autonomy Score","default":0.0},"exercises_passed":{"type":"integer","title":"Exercises Passed","default":0},"exercises_failed":{"type":"integer","title":"Exercises Failed","default":0},"success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate"},"study_hours":{"type":"integer","title":"Study Hours","default":0},"practice_hours":{"type":"integer","title":"Practice Hours","default":0},"assisted_hours":{"type":"integer","title":"Assisted Hours","default":0},"autonomous_hours":{"type":"integer","title":"Autonomous Hours","default":0},"milestones_reached":{"items":{"type":"string"},"type":"array","title":"Milestones Reached"},"badges_earned":{"items":{"type":"string"},"type":"array","title":"Badges Earned"},"helper_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Helper Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["progress_id","progress_code","person_code","evaluation_date","overall_level"],"title":"LiteracyProgressResponse"},"LiteracyProgressUpdate":{"properties":{"evaluation_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluation Period"},"overall_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Overall Level"},"previous_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Level"},"digital_autonomy_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Digital Autonomy Score"},"basic_computer_skills":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Basic Computer Skills"},"internet_navigation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Internet Navigation"},"email_usage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Email Usage"},"file_management":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Management"},"online_security":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Online Security"},"current_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Current Barriers"},"overcome_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Overcome Barriers"},"activities_completed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Activities Completed"},"exercises_passed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exercises Passed"},"exercises_failed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exercises Failed"},"study_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Study Hours"},"practice_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Practice Hours"},"assisted_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assisted Hours"},"autonomous_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Autonomous Hours"},"milestones_reached":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Milestones Reached"},"badges_earned":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Badges Earned"},"helper_assessment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Assessment"},"helper_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Notes"},"areas_of_improvement":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Areas Of Improvement"},"strengths_identified":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Strengths Identified"},"self_assessment_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Self Assessment Score"},"self_confidence_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Self Confidence Score"}},"type":"object","title":"LiteracyProgressUpdate"},"LoadFileRequest":{"properties":{"filepath":{"type":"string","title":"Filepath","description":"Full path to the JSON file to load"},"dry_run":{"type":"boolean","title":"Dry Run","description":"Validate without saving","default":false}},"type":"object","required":["filepath"],"title":"LoadFileRequest","description":"Request body for load-file endpoint."},"LoadLocalRequest":{"properties":{"directory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Directory","description":"Directory containing simulation JSON files. Defaults to simulation-data/persons/"},"mode":{"type":"string","title":"Mode","description":"Loading mode: 'upsert' (create or update) or 'create_only'","default":"upsert"},"dry_run":{"type":"boolean","title":"Dry Run","description":"If true, validate files without saving to database","default":false},"batch_size":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Batch Size","description":"Number of files to process in parallel","default":10},"continue_on_error":{"type":"boolean","title":"Continue On Error","description":"Continue processing if a file fails","default":true}},"type":"object","title":"LoadLocalRequest","description":"Request body for load-local endpoint."},"ManualSyncRequest":{"properties":{"sync_all":{"type":"boolean","title":"Sync All","default":false},"identity_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity User Id"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","title":"ManualSyncRequest","description":"Request for manual sync operation."},"MatchBreakdown":{"properties":{"domain":{"type":"number","title":"Domain","default":0.0},"skills":{"type":"number","title":"Skills","default":0.0},"contract":{"type":"number","title":"Contract","default":0.0},"salary":{"type":"number","title":"Salary","default":0.0},"experience":{"type":"number","title":"Experience","default":0.0},"location":{"type":"number","title":"Location","default":0.0}},"type":"object","title":"MatchBreakdown"},"MatchedPersonResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"role_in_node":{"type":"string","title":"Role In Node"}},"type":"object","required":["person_code","role_in_node"],"title":"MatchedPersonResponse","description":"A person matched in a convergence detection."},"MembersSection":{"properties":{"total_members":{"type":"integer","title":"Total Members","default":0},"active_members":{"type":"integer","title":"Active Members","default":0},"featured_members":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Featured Members","default":[]}},"type":"object","title":"MembersSection","description":"Members information for GROUP."},"MissionCreate":{"properties":{"title":{"type":"string","maxLength":200,"minLength":5,"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"domain_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain Code"},"platform_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Code"},"enterprise_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Person Code"},"enterprise_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Name"},"professional_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Person Code"},"professional_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Name"},"skills_targeted":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Targeted"},"deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deadline"}},"type":"object","required":["title"],"title":"MissionCreate","description":"Schema for creating a mission."},"MissionDetailResponse":{"properties":{"mission_id":{"type":"string","format":"uuid","title":"Mission Id"},"mission_code":{"type":"string","title":"Mission Code"},"person_code":{"type":"string","title":"Person Code"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"domain_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain Code"},"platform_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Code"},"enterprise_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Person Code"},"enterprise_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Name"},"teacher_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teacher Person Code"},"teacher_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teacher Name"},"professional_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Person Code"},"professional_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Name"},"status":{"type":"string","title":"Status"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deadline"},"total_activity_minutes":{"type":"integer","title":"Total Activity Minutes","default":0},"activity_count":{"type":"integer","title":"Activity Count","default":0},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"teacher_validated":{"type":"boolean","title":"Teacher Validated","default":false},"professional_validated":{"type":"boolean","title":"Professional Validated","default":false},"is_fully_validated":{"type":"boolean","title":"Is Fully Validated","default":false},"skills_targeted":{"items":{"type":"string"},"type":"array","title":"Skills Targeted","default":[]},"skills_validated":{"items":{"type":"string"},"type":"array","title":"Skills Validated","default":[]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"validations":{"$ref":"#/components/schemas/MissionValidations"},"recent_activities":{"items":{"$ref":"#/components/schemas/ActivityResponse"},"type":"array","title":"Recent Activities","default":[]}},"type":"object","required":["mission_id","mission_code","person_code","title","status","created_at","validations"],"title":"MissionDetailResponse","description":"Schema for detailed mission with validations."},"MissionListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"missions":{"items":{"$ref":"#/components/schemas/MissionResponse"},"type":"array","title":"Missions"},"total_count":{"type":"integer","title":"Total Count"},"validated_count":{"type":"integer","title":"Validated Count"},"in_progress_count":{"type":"integer","title":"In Progress Count"}},"type":"object","required":["person_code","missions","total_count","validated_count","in_progress_count"],"title":"MissionListResponse","description":"Schema for mission list."},"MissionResponse":{"properties":{"mission_id":{"type":"string","format":"uuid","title":"Mission Id"},"mission_code":{"type":"string","title":"Mission Code"},"person_code":{"type":"string","title":"Person Code"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"domain_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain Code"},"platform_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Code"},"enterprise_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Person Code"},"enterprise_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Name"},"teacher_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teacher Person Code"},"teacher_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teacher Name"},"professional_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Person Code"},"professional_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Name"},"status":{"type":"string","title":"Status"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deadline"},"total_activity_minutes":{"type":"integer","title":"Total Activity Minutes","default":0},"activity_count":{"type":"integer","title":"Activity Count","default":0},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"teacher_validated":{"type":"boolean","title":"Teacher Validated","default":false},"professional_validated":{"type":"boolean","title":"Professional Validated","default":false},"is_fully_validated":{"type":"boolean","title":"Is Fully Validated","default":false},"skills_targeted":{"items":{"type":"string"},"type":"array","title":"Skills Targeted","default":[]},"skills_validated":{"items":{"type":"string"},"type":"array","title":"Skills Validated","default":[]},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["mission_id","mission_code","person_code","title","status","created_at"],"title":"MissionResponse","description":"Schema for mission response."},"MissionUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":5},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string","pattern":"^(CREATED|IN_PROGRESS|PENDING_VALIDATION|VALIDATED|REJECTED|ABANDONED)$"},{"type":"null"}],"title":"Status"},"platform_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Code"},"professional_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Person Code"},"professional_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Professional Name"},"skills_targeted":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Targeted"},"deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deadline"}},"type":"object","title":"MissionUpdate","description":"Schema for updating a mission."},"MissionValidations":{"properties":{"teacher":{"$ref":"#/components/schemas/ValidationStatus"},"professional":{"$ref":"#/components/schemas/ValidationStatus"},"is_fully_validated":{"type":"boolean","title":"Is Fully Validated"},"skills_validated":{"items":{"type":"string"},"type":"array","title":"Skills Validated","default":[]}},"type":"object","required":["teacher","professional","is_fully_validated"],"title":"MissionValidations","description":"Schema for all validations of a mission."},"MoralCertificationCreate":{"properties":{"cert_name":{"type":"string","minLength":1,"title":"Cert Name","description":"Nom de la certification (ex: ISO 14001)"},"cert_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Type","description":"quality/environmental/security/social/industry"},"cert_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Body","description":"Organisme certificateur (ex: AFNOR)"},"cert_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Number"},"cert_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Scope","description":"Perimetre (ex: Tous les sites francais)"},"cert_date_issued":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cert Date Issued"},"cert_date_expiry":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cert Date Expiry"},"cert_document_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Document Url"},"cert_is_active":{"type":"boolean","title":"Cert Is Active","default":true}},"type":"object","required":["cert_name"],"title":"MoralCertificationCreate"},"MoralCertificationResponse":{"properties":{"cert_name":{"type":"string","minLength":1,"title":"Cert Name","description":"Nom de la certification (ex: ISO 14001)"},"cert_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Type","description":"quality/environmental/security/social/industry"},"cert_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Body","description":"Organisme certificateur (ex: AFNOR)"},"cert_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Number"},"cert_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Scope","description":"Perimetre (ex: Tous les sites francais)"},"cert_date_issued":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cert Date Issued"},"cert_date_expiry":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cert Date Expiry"},"cert_document_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Document Url"},"cert_is_active":{"type":"boolean","title":"Cert Is Active","default":true},"certification_id":{"type":"string","title":"Certification Id"},"person_code":{"type":"string","title":"Person Code"},"country_code":{"type":"string","title":"Country Code"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"verified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verified By"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["cert_name","certification_id","person_code","country_code"],"title":"MoralCertificationResponse"},"MoralCertificationUpdate":{"properties":{"cert_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Name"},"cert_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Type"},"cert_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Body"},"cert_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Number"},"cert_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Scope"},"cert_date_issued":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cert Date Issued"},"cert_date_expiry":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Cert Date Expiry"},"cert_document_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Document Url"},"cert_is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cert Is Active"}},"type":"object","title":"MoralCertificationUpdate"},"NeedCategoriesResponse":{"properties":{"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"statuses":{"items":{"type":"string"},"type":"array","title":"Statuses"},"priorities":{"items":{"type":"string"},"type":"array","title":"Priorities"},"impacts":{"items":{"type":"string"},"type":"array","title":"Impacts"},"identifier_types":{"items":{"type":"string"},"type":"array","title":"Identifier Types"}},"type":"object","title":"NeedCategoriesResponse","description":"Response with available categories."},"NeedsAmbassadorCreate":{"properties":{"assistance_type":{"items":{"type":"string"},"type":"array","title":"Assistance Type","description":"Types of assistance needed"},"accessibility_needs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Accessibility Needs"},"preferred_languages":{"items":{"type":"string"},"type":"array","title":"Preferred Languages","default":["fr"]},"preferred_schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Schedule"},"urgency_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Urgency Level","default":"medium"},"digital_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Digital Barriers"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Goals"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"difficulty_level":{"type":"string","title":"Difficulty Level","default":"MODERATE"}},"type":"object","required":["assistance_type","display_name"],"title":"NeedsAmbassadorCreate","description":"Schema for registering need for ambassador."},"NeedsAmbassadorResponse":{"properties":{"assisted_id":{"type":"string","format":"uuid","title":"Assisted Id"},"person_code":{"type":"string","title":"Person Code"},"display_name":{"type":"string","title":"Display Name"},"needs_ambassador":{"type":"boolean","title":"Needs Ambassador","default":true},"assistance_type":{"items":{"type":"string"},"type":"array","title":"Assistance Type"},"accessibility_needs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Accessibility Needs"},"preferred_languages":{"items":{"type":"string"},"type":"array","title":"Preferred Languages","default":["fr"]},"preferred_schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Schedule"},"urgency_level":{"type":"string","title":"Urgency Level","default":"medium"},"digital_barriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Digital Barriers"},"goals":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Goals"},"status":{"type":"string","title":"Status","default":"ACTIVE"},"helper_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Helper Id"},"helper_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Helper Name"},"sessions_count":{"type":"integer","title":"Sessions Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["assisted_id","person_code","display_name","assistance_type","created_at"],"title":"NeedsAmbassadorResponse","description":"Response schema for person needing ambassador."},"NeedsAmbassadorUpdate":{"properties":{"assistance_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Assistance Type"},"accessibility_needs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Accessibility Needs"},"preferred_languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preferred Languages"},"preferred_schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Schedule"},"urgency_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Urgency Level"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"NeedsAmbassadorUpdate","description":"Schema for updating ambassador need."},"NodeChainCreate":{"properties":{"country_code":{"type":"string","title":"Country Code"},"node_code":{"type":"string","title":"Node Code"},"domain":{"type":"string","title":"Domain"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"},"node_type_leaf":{"type":"string","title":"Node Type Leaf","default":"LEAF"}},"type":"object","required":["country_code","node_code","domain"],"title":"NodeChainCreate","description":"POST /system/convergence/nodes — create a full node chain."},"NodeChildrenResponse":{"properties":{"parent_node_code":{"type":"string","title":"Parent Node Code"},"children":{"items":{"$ref":"#/components/schemas/NodeResponse"},"type":"array","title":"Children"},"total_children":{"type":"integer","title":"Total Children"}},"type":"object","required":["parent_node_code","children","total_children"],"title":"NodeChildrenResponse","description":"GET /nodes/{nc}/children — children of a node."},"NodeResponse":{"properties":{"node_id":{"type":"string","title":"Node Id"},"node_code":{"type":"string","title":"Node Code"},"domain":{"type":"string","title":"Domain"},"node_type":{"type":"string","title":"Node Type"},"depth":{"type":"integer","title":"Depth"},"gdam_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gdam Code"},"parent_node_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Node Code"},"subscriber_count":{"type":"integer","title":"Subscriber Count","default":0},"role_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Role Counts"},"metadata":{"additionalProperties":{"type":"string"},"type":"object","title":"Metadata"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"chain_created":{"type":"integer","title":"Chain Created","default":0},"chain_existing":{"type":"integer","title":"Chain Existing","default":0}},"type":"object","required":["node_id","node_code","domain","node_type","depth"],"title":"NodeResponse","description":"Response for a single convergence node."},"NodeSubscribersResponse":{"properties":{"node_code":{"type":"string","title":"Node Code"},"subscribers":{"items":{"$ref":"#/components/schemas/SubscriptionResponse"},"type":"array","title":"Subscribers"},"total":{"type":"integer","title":"Total"},"by_role":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Role"}},"type":"object","required":["node_code","subscribers","total"],"title":"NodeSubscribersResponse","description":"GET /nodes/{nc}/subscribers — subscribers of a node."},"OrgInfo":{"properties":{"exists":{"type":"boolean","title":"Exists"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"person_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Id"},"moral_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Name"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Published"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"},"profile_type_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Type Code"},"moral_industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Industry"}},"type":"object","required":["exists"],"title":"OrgInfo"},"OrgStatusResponse":{"properties":{"country_code":{"type":"string","title":"Country Code"},"organizations":{"additionalProperties":{"$ref":"#/components/schemas/OrgInfo"},"type":"object","title":"Organizations"},"is_open":{"type":"boolean","title":"Is Open"}},"type":"object","required":["country_code","organizations","is_open"],"title":"OrgStatusResponse"},"OrganizationInfoResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"business_info":{"anyOf":[{"$ref":"#/components/schemas/BusinessInfoResponse"},{"type":"null"}]},"group_info":{"anyOf":[{"$ref":"#/components/schemas/GroupInfoResponse"},{"type":"null"}]}},"type":"object","required":["person_code","person_type"],"title":"OrganizationInfoResponse","description":"Combined organization info for MORAL or GROUP."},"PartnershipCreate":{"properties":{"school_code":{"type":"string","title":"School Code"},"enterprise_code":{"type":"string","title":"Enterprise Code"},"partnership_type":{"type":"string","title":"Partnership Type"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"conventions_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conventions Count"},"budget":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Budget"}},"type":"object","required":["school_code","enterprise_code","partnership_type"],"title":"PartnershipCreate"},"PatientRecordCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"treating_doctor_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Person Code"},"treating_doctor_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Name"},"treating_doctor_specialty":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Specialty"},"facility_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Person Code"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"facility_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Type"},"visit_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Frequency","default":"REGULIER"},"blood_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Type"},"has_chronic_condition":{"type":"boolean","title":"Has Chronic Condition","default":false},"chronic_condition_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chronic Condition Type"},"allergies_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allergies Json"},"current_medications_count":{"type":"integer","title":"Current Medications Count","default":0},"has_social_security":{"type":"boolean","title":"Has Social Security","default":true},"has_complementary":{"type":"boolean","title":"Has Complementary","default":false},"coverage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Type","default":"REGIME_GENERAL"}},"type":"object","required":["person_code"],"title":"PatientRecordCreate"},"PatientRecordListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"records":{"items":{"$ref":"#/components/schemas/PatientRecordResponse"},"type":"array","title":"Records"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","records","total_count"],"title":"PatientRecordListResponse"},"PatientRecordResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"treating_doctor_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Person Code"},"treating_doctor_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Name"},"treating_doctor_specialty":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Specialty"},"facility_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Person Code"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"facility_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Type"},"visit_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Frequency","default":"REGULIER"},"blood_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Type"},"has_chronic_condition":{"type":"boolean","title":"Has Chronic Condition","default":false},"chronic_condition_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chronic Condition Type"},"allergies_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allergies Json"},"current_medications_count":{"type":"integer","title":"Current Medications Count","default":0},"has_social_security":{"type":"boolean","title":"Has Social Security","default":true},"has_complementary":{"type":"boolean","title":"Has Complementary","default":false},"coverage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Type","default":"REGIME_GENERAL"},"record_id":{"type":"string","format":"uuid","title":"Record Id"},"record_code":{"type":"string","title":"Record Code"},"country_code":{"type":"string","title":"Country Code"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","record_id","record_code","country_code","created_at","datakey"],"title":"PatientRecordResponse"},"PatientRecordUpdate":{"properties":{"treating_doctor_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Person Code"},"treating_doctor_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treating Doctor Name"},"facility_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Person Code"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"visit_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Frequency"},"has_chronic_condition":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Chronic Condition"},"chronic_condition_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chronic Condition Type"},"current_medications_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Medications Count"},"has_complementary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Complementary"},"coverage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Type"}},"type":"object","title":"PatientRecordUpdate"},"PendingCandidacySummary":{"properties":{"candidacy_id":{"type":"string","title":"Candidacy Id"},"country_code":{"type":"string","title":"Country Code"},"country_name":{"type":"string","title":"Country Name"},"person_name":{"type":"string","title":"Person Name"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"}},"type":"object","required":["candidacy_id","country_code","country_name","person_name","submitted_at"],"title":"PendingCandidacySummary","description":"Summary of pending candidacy for dashboard."},"PendingValidationList":{"properties":{"entities":{"items":{"$ref":"#/components/schemas/ValidationTarget"},"type":"array","title":"Entities"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["entities","total_count"],"title":"PendingValidationList","description":"Schema for listing entities pending validation."},"PendingVerificationItem":{"properties":{"verification_id":{"type":"string","title":"Verification Id"},"user_id":{"type":"string","title":"User Id"},"user_email":{"type":"string","title":"User Email"},"user_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Display Name"},"document_type":{"type":"string","title":"Document Type"},"document_country":{"type":"string","title":"Document Country"},"created_at":{"type":"string","title":"Created At"},"ocr_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ocr Data"},"cross_validations":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cross Validations"},"name_similarity_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Name Similarity Score"},"face_match_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Face Match Score"},"document_recto_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Recto Url"},"document_verso_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Verso Url"},"candidacy_info":{"anyOf":[{"$ref":"#/components/schemas/CandidacyInfo"},{"type":"null"}]}},"type":"object","required":["verification_id","user_id","user_email","document_type","document_country","created_at"],"title":"PendingVerificationItem"},"PendingVerificationsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PendingVerificationItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"filters":{"additionalProperties":true,"type":"object","title":"Filters"},"ambassador":{"additionalProperties":true,"type":"object","title":"Ambassador"}},"type":"object","required":["items","total","limit","offset","filters","ambassador"],"title":"PendingVerificationsResponse"},"PeopleConnectionsSection":{"properties":{"current_employees_count":{"type":"integer","title":"Current Employees Count","default":0},"former_employees_count":{"type":"integer","title":"Former Employees Count","default":0},"total_connections":{"type":"integer","title":"Total Connections","default":0},"featured_people":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Featured People","default":[]}},"type":"object","title":"PeopleConnectionsSection","description":"People connected to this MORAL entity."},"PersonBadgeResponse":{"properties":{"attribution_id":{"type":"string","format":"uuid","title":"Attribution Id"},"person_code":{"type":"string","title":"Person Code"},"badge_code":{"type":"string","title":"Badge Code"},"badge_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Badge Name"},"badge_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Badge Category"},"awarded_at":{"type":"string","format":"date-time","title":"Awarded At"},"awarded_by_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Awarded By Person Code"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"source":{"type":"string","title":"Source"},"mission_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mission Id"},"mission_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mission Code"},"xp_earned":{"type":"integer","title":"Xp Earned","default":0},"civic_points_earned":{"type":"integer","title":"Civic Points Earned","default":0},"is_active":{"type":"boolean","title":"Is Active","default":true},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"revocation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revocation Reason"}},"type":"object","required":["attribution_id","person_code","badge_code","awarded_at","source"],"title":"PersonBadgeResponse","description":"Response for a person's badge"},"PersonBadgesResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"total":{"type":"integer","title":"Total"},"active_count":{"type":"integer","title":"Active Count"},"total_xp":{"type":"integer","title":"Total Xp"},"total_civic_points":{"type":"integer","title":"Total Civic Points"},"badges":{"items":{"$ref":"#/components/schemas/PersonBadgeResponse"},"type":"array","title":"Badges"},"by_category":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Category"}},"type":"object","required":["person_code","total","active_count","total_xp","total_civic_points","badges","by_category"],"title":"PersonBadgesResponse","description":"Response for list of person's badges"},"PersonConnectionCreate":{"properties":{"source_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Person Code"},"source_person_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Person Type"},"target_person_code":{"type":"string","title":"Target Person Code"},"target_person_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Person Type"},"connection_type":{"type":"string","title":"Connection Type"},"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"status":{"type":"string","title":"Status","default":"ACTIVE"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"skills_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Used"},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"},"custom_fields":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Custom Fields"},"source":{"type":"string","title":"Source","default":"declaration"},"is_bidirectional":{"type":"boolean","title":"Is Bidirectional","default":true}},"type":"object","required":["target_person_code","connection_type"],"title":"PersonConnectionCreate","description":"Schema for creating a connection"},"PersonConnectionResponse":{"properties":{"source_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Person Code"},"source_person_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Person Type"},"target_person_code":{"type":"string","title":"Target Person Code"},"target_person_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Person Type"},"connection_type":{"type":"string","title":"Connection Type"},"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"status":{"type":"string","title":"Status","default":"ACTIVE"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"skills_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Used"},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"},"custom_fields":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Custom Fields"},"source":{"type":"string","title":"Source","default":"declaration"},"connection_id":{"type":"string","format":"uuid","title":"Connection Id"},"country_code":{"type":"string","title":"Country Code"},"is_bidirectional":{"type":"boolean","title":"Is Bidirectional"},"reverse_connection_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reverse Connection Id"},"verified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verified By"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["target_person_code","connection_type","connection_id","country_code","is_bidirectional","created_at","datakey"],"title":"PersonConnectionResponse","description":"Schema for connection response"},"PersonConnectionUpdate":{"properties":{"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"skills_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Used"},"achievements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Achievements"}},"type":"object","title":"PersonConnectionUpdate","description":"Schema for updating a connection - all fields optional"},"PersonConvergenceMatchesResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"matches":{"items":{"$ref":"#/components/schemas/ConvergenceMatchResponse"},"type":"array","title":"Matches"},"total_matches":{"type":"integer","title":"Total Matches"}},"type":"object","required":["person_code","matches","total_matches"],"title":"PersonConvergenceMatchesResponse","description":"GET /persons/{pc}/convergence/matches — convergence matches for a person."},"PersonConvergenceResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"subscriptions":{"items":{"$ref":"#/components/schemas/SubscriptionResponse"},"type":"array","title":"Subscriptions"},"total":{"type":"integer","title":"Total"},"by_domain":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Domain"},"by_type":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Type"}},"type":"object","required":["person_code","subscriptions","total"],"title":"PersonConvergenceResponse","description":"GET /persons/{pc}/convergence — all subscriptions for a person."},"PersonCreate":{"properties":{"country_primary_residence_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Primary Residence Code"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"identity_user_id":{"type":"string","format":"uuid","title":"Identity User Id"},"passport_verification_level":{"type":"integer","title":"Passport Verification Level"},"passport_last_validated":{"type":"string","format":"date-time","title":"Passport Last Validated"},"person_type":{"type":"string","title":"Person Type"},"human_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Display Name"},"human_first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human First Name"},"human_middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Middle Name"},"human_last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Last Name"},"human_public_bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Public Bio"},"human_gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Gender"},"human_birth_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Human Birth Year"},"human_nationality_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Human Nationality Codes"},"moral_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Name"},"moral_legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Legal Form"},"moral_siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Siret"},"moral_siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Siren"},"moral_trade_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Trade Name"},"moral_naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Naf Code"},"moral_naf_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Naf Label"},"moral_registration_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Registration Country"},"moral_registration_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Moral Registration Date"},"moral_creation_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Moral Creation Date"},"moral_industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Industry"},"moral_subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Subcategory"},"moral_employees_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Employees Range"},"moral_operational_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Operational Status"},"moral_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Website"},"moral_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Description"},"moral_territorial_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Territorial Level"},"moral_ess_label":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Moral Ess Label"},"moral_is_mission_company":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Moral Is Mission Company"},"hero_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hero Image Url"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"parent_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Person Code"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code"},"municipality_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Municipality Code"},"hierarchical_city_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hierarchical City Code"},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name"},"group_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Type"},"group_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Purpose"},"group_founded_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Group Founded Date"},"group_members_count":{"type":"integer","title":"Group Members Count","default":0},"group_is_official":{"type":"boolean","title":"Group Is Official","default":false},"public_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Public Email"},"public_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Phone"},"public_address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Public Address"},"social_links":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Social Links"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_public":{"type":"boolean","title":"Is Public","default":true},"is_published":{"type":"boolean","title":"Is Published","default":false},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Tags"},"custom_fields":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Custom Fields"}},"type":"object","required":["identity_user_id","passport_verification_level","passport_last_validated","person_type"],"title":"PersonCreate"},"PersonDocumentDetailResponse":{"properties":{"document_id":{"type":"string","format":"uuid","title":"Document Id"},"document_code":{"type":"string","title":"Document Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"document_type":{"type":"string","title":"Document Type"},"document_category":{"type":"string","title":"Document Category"},"document_subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Subtype"},"document_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Number"},"document_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Hash"},"issuing_authority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuing Authority"},"issuing_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuing Country"},"issue_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Issue Date"},"expiry_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiry Date"},"is_expired":{"type":"boolean","title":"Is Expired","default":false},"storage_type":{"type":"string","title":"Storage Type","default":"MEDIAHUB"},"file_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Url"},"file_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Hash"},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"},"pages_count":{"type":"integer","title":"Pages Count","default":1},"extracted_data":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Extracted Data"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"},"verification_status":{"type":"string","title":"Verification Status","default":"PENDING"},"verification_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Method"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"verification_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Notes"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"access_level":{"type":"string","title":"Access Level","default":"PRIVATE"},"consent_given":{"type":"boolean","title":"Consent Given","default":false},"consent_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Consent Date"},"is_sensitive":{"type":"boolean","title":"Is Sensitive","default":false},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["document_id","document_code","person_id","document_type","document_category"],"title":"PersonDocumentDetailResponse","description":"Schema complet pour le detail d'un document."},"PersonDocumentListItem":{"properties":{"document_id":{"type":"string","format":"uuid","title":"Document Id"},"document_code":{"type":"string","title":"Document Code"},"document_type":{"type":"string","title":"Document Type"},"document_category":{"type":"string","title":"Document Category"},"document_subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Subtype"},"document_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Number"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size"},"file_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Url"},"issuing_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuing Country"},"issue_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Issue Date"},"expiry_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiry Date"},"is_expired":{"type":"boolean","title":"Is Expired","default":false},"verification_status":{"type":"string","title":"Verification Status","default":"PENDING"},"verification_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Method"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["document_id","document_code","document_type","document_category"],"title":"PersonDocumentListItem","description":"Schema leger pour la liste de documents."},"PersonDocumentsListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"total_count":{"type":"integer","title":"Total Count"},"documents":{"items":{"$ref":"#/components/schemas/PersonDocumentListItem"},"type":"array","title":"Documents"}},"type":"object","required":["person_code","total_count","documents"],"title":"PersonDocumentsListResponse","description":"Response pour la liste de documents."},"PersonEventParticipationCreate":{"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"participation_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Participation Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"civic_profile_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Civic Profile Id"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"event_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Code"},"participation_role":{"type":"string","title":"Participation Role"},"session_presented":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Presented"},"presentation_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Presentation Title"},"presentation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Presentation Url"},"registration_status":{"type":"string","title":"Registration Status","default":"REGISTERED"},"attended":{"type":"boolean","title":"Attended","default":false},"attendance_verified":{"type":"boolean","title":"Attendance Verified","default":false},"check_in_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Check In Time"},"check_out_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Check Out Time"},"voted":{"type":"boolean","title":"Voted","default":false},"vote_choice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vote Choice"},"vote_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Vote Timestamp"},"vote_verified":{"type":"boolean","title":"Vote Verified","default":false},"survey_completed":{"type":"boolean","title":"Survey Completed","default":false},"survey_responses":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Survey Responses"},"survey_submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Survey Submitted At"},"protest_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protest Role"},"arrest_record":{"type":"boolean","title":"Arrest Record","default":false},"parental_authorization":{"type":"boolean","title":"Parental Authorization","default":false},"authorization_document_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Document Url"},"medical_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medical Notes"},"emergency_contact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact"},"questions_asked":{"type":"integer","title":"Questions Asked","default":0},"connections_made":{"type":"integer","title":"Connections Made","default":0},"feedback_rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Feedback Rating"},"feedback_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback Comment"},"certificate_issued":{"type":"boolean","title":"Certificate Issued","default":false},"certificate_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Certificate Url"},"certificate_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Certificate Code"}},"type":"object","required":["person_id","event_id","participation_role"],"title":"PersonEventParticipationCreate"},"PersonEventParticipationResponse":{"properties":{"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"participation_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Participation Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"civic_profile_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Civic Profile Id"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"event_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Code"},"participation_role":{"type":"string","title":"Participation Role"},"session_presented":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Presented"},"presentation_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Presentation Title"},"presentation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Presentation Url"},"registration_status":{"type":"string","title":"Registration Status","default":"REGISTERED"},"attended":{"type":"boolean","title":"Attended","default":false},"attendance_verified":{"type":"boolean","title":"Attendance Verified","default":false},"check_in_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Check In Time"},"check_out_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Check Out Time"},"voted":{"type":"boolean","title":"Voted","default":false},"vote_choice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vote Choice"},"vote_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Vote Timestamp"},"vote_verified":{"type":"boolean","title":"Vote Verified","default":false},"survey_completed":{"type":"boolean","title":"Survey Completed","default":false},"survey_responses":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Survey Responses"},"survey_submitted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Survey Submitted At"},"protest_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protest Role"},"arrest_record":{"type":"boolean","title":"Arrest Record","default":false},"parental_authorization":{"type":"boolean","title":"Parental Authorization","default":false},"authorization_document_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Document Url"},"medical_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medical Notes"},"emergency_contact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact"},"questions_asked":{"type":"integer","title":"Questions Asked","default":0},"connections_made":{"type":"integer","title":"Connections Made","default":0},"feedback_rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Feedback Rating"},"feedback_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback Comment"},"certificate_issued":{"type":"boolean","title":"Certificate Issued","default":false},"certificate_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Certificate Url"},"certificate_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Certificate Code"},"participation_id":{"type":"string","format":"uuid","title":"Participation Id"},"registered_at":{"type":"string","format":"date-time","title":"Registered At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_id","event_id","participation_role","participation_id","registered_at","datakey"],"title":"PersonEventParticipationResponse"},"PersonEventParticipationUpdate":{"properties":{"registration_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Status"},"attended":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Attended"},"voted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Voted"},"vote_choice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vote Choice"},"survey_responses":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Survey Responses"},"feedback_rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Feedback Rating"},"feedback_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback Comment"}},"type":"object","title":"PersonEventParticipationUpdate"},"PersonJobMatchesResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"matches":{"items":{"$ref":"#/components/schemas/JobMatchItem"},"type":"array","title":"Matches"},"total_matches":{"type":"integer","title":"Total Matches"},"high_matches":{"type":"integer","title":"High Matches"}},"type":"object","required":["person_code","matches","total_matches","high_matches"],"title":"PersonJobMatchesResponse"},"PersonJourneyResponse":{"properties":{"person_journey_id":{"type":"string","format":"uuid","title":"Person Journey Id"},"person_code":{"type":"string","title":"Person Code"},"journey_code":{"type":"string","title":"Journey Code"},"journey_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journey Name"},"journey_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journey Category"},"journey_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journey Icon"},"journey_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Journey Color"},"status":{"type":"string","title":"Status","description":"PENDING, ACTIVE, SUSPENDED, ARCHIVED"},"validation_status":{"type":"string","title":"Validation Status","description":"PENDING_PROOF, PROOF_SUBMITTED, VALIDATED, REJECTED"},"activation_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Activation Date"},"deactivation_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deactivation Date"},"validated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Validated At"},"validated_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Validated By"},"validation_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Notes"},"proofs_submitted":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Proofs Submitted"},"journey_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Journey Data"},"completion_percent":{"type":"integer","title":"Completion Percent","default":0},"milestones_completed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Milestones Completed"},"next_milestone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Milestone"},"is_public":{"type":"boolean","title":"Is Public","default":true},"is_primary":{"type":"boolean","title":"Is Primary","default":false},"is_system_granted":{"type":"boolean","title":"Is System Granted","description":"Auto-granted by system","default":false},"is_locked":{"type":"boolean","title":"Is Locked","description":"Cannot be deactivated by user","default":false},"granted_by_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granted By Reason","description":"Reason for auto-grant"},"system_granted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"System Granted At"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["person_journey_id","person_code","journey_code","status","validation_status"],"title":"PersonJourneyResponse","description":"Response for a person's activated journey"},"PersonJourneysResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"country_code":{"type":"string","title":"Country Code"},"total":{"type":"integer","title":"Total"},"active_count":{"type":"integer","title":"Active Count"},"primary_journey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Journey"},"journeys":{"items":{"$ref":"#/components/schemas/PersonJourneyResponse"},"type":"array","title":"Journeys"},"by_category":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Category"},"by_status":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Status"}},"type":"object","required":["person_code","country_code","total","active_count","journeys","by_category","by_status"],"title":"PersonJourneysResponse","description":"Response for list of person's activated journeys"},"PersonResponse":{"properties":{"country_primary_residence_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Primary Residence Code"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"identity_user_id":{"type":"string","format":"uuid","title":"Identity User Id"},"passport_verification_level":{"type":"integer","title":"Passport Verification Level"},"passport_last_validated":{"type":"string","format":"date-time","title":"Passport Last Validated"},"person_type":{"type":"string","title":"Person Type"},"human_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Display Name"},"human_first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human First Name"},"human_middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Middle Name"},"human_last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Last Name"},"human_public_bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Public Bio"},"human_gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Gender"},"human_birth_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Human Birth Year"},"human_nationality_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Human Nationality Codes"},"moral_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Name"},"moral_legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Legal Form"},"moral_siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Siret"},"moral_siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Siren"},"moral_trade_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Trade Name"},"moral_naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Naf Code"},"moral_naf_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Naf Label"},"moral_registration_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Registration Country"},"moral_registration_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Moral Registration Date"},"moral_creation_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Moral Creation Date"},"moral_industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Industry"},"moral_subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Subcategory"},"moral_employees_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Employees Range"},"moral_operational_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Operational Status"},"moral_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Website"},"moral_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Description"},"moral_territorial_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Territorial Level"},"moral_ess_label":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Moral Ess Label"},"moral_is_mission_company":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Moral Is Mission Company"},"hero_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hero Image Url"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"parent_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Person Code"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code"},"municipality_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Municipality Code"},"hierarchical_city_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hierarchical City Code"},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name"},"group_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Type"},"group_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Purpose"},"group_founded_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Group Founded Date"},"group_members_count":{"type":"integer","title":"Group Members Count","default":0},"group_is_official":{"type":"boolean","title":"Group Is Official","default":false},"public_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Public Email"},"public_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Phone"},"public_address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Public Address"},"social_links":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Social Links"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_public":{"type":"boolean","title":"Is Public","default":true},"is_published":{"type":"boolean","title":"Is Published","default":false},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Tags"},"custom_fields":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Custom Fields"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["identity_user_id","passport_verification_level","passport_last_validated","person_type","person_id","created_at","datakey"],"title":"PersonResponse"},"PersonSchoolRecordCreate":{"properties":{"school_person_code":{"type":"string","title":"School Person Code","description":"Person MORAL code of the school"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name","description":"Denormalized school name for display"},"school_year_code":{"type":"string","title":"School Year Code","description":"FK SchoolYear (e.g. FR_2025_2026)"},"education_level_code":{"type":"string","title":"Education Level Code","description":"FK EducationLevel (e.g. TERMINALE)"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code","description":"FK Track (e.g. SCIENTIFIQUE)"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name","description":"Class name (e.g. Tle S1)"},"status":{"type":"string","title":"Status","description":"IN_PROGRESS, COMPLETED, TRANSFERRED","default":"IN_PROGRESS"},"is_current":{"type":"boolean","title":"Is Current","description":"Is this the current school year record","default":false}},"type":"object","required":["school_person_code","school_year_code","education_level_code"],"title":"PersonSchoolRecordCreate","description":"Schema for creating a PersonSchoolRecord."},"PersonSchoolRecordListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"records":{"items":{"$ref":"#/components/schemas/PersonSchoolRecordResponse"},"type":"array","title":"Records"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","records","total_count"],"title":"PersonSchoolRecordListResponse","description":"Schema for listing PersonSchoolRecords."},"PersonSchoolRecordResponse":{"properties":{"record_id":{"type":"string","format":"uuid","title":"Record Id"},"record_code":{"type":"string","title":"Record Code"},"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"school_person_code":{"type":"string","title":"School Person Code"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name"},"school_year_code":{"type":"string","title":"School Year Code"},"education_level_code":{"type":"string","title":"Education Level Code"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"status":{"type":"string","title":"Status","default":"IN_PROGRESS"},"is_current":{"type":"boolean","title":"Is Current","default":false},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["record_id","record_code","country_code","person_code","person_id","school_person_code","school_year_code","education_level_code","created_at"],"title":"PersonSchoolRecordResponse","description":"Schema for PersonSchoolRecord API response."},"PersonSchoolRecordUpdate":{"properties":{"school_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Person Code"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name"},"school_year_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Year Code"},"education_level_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Code"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"}},"type":"object","title":"PersonSchoolRecordUpdate","description":"Schema for updating a PersonSchoolRecord — all fields optional."},"PersonSchoolSubjectBulkCreate":{"properties":{"subjects":{"items":{"$ref":"#/components/schemas/PersonSchoolSubjectItem"},"type":"array","minItems":1,"title":"Subjects","description":"List of subjects to associate"}},"type":"object","required":["subjects"],"title":"PersonSchoolSubjectBulkCreate","description":"Schema for bulk-creating subjects on a record."},"PersonSchoolSubjectItem":{"properties":{"subject_code":{"type":"string","title":"Subject Code","description":"FK Subject referential (e.g. MATHEMATICS)"},"input_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Name","description":"Original user input for history"},"is_major":{"type":"boolean","title":"Is Major","description":"Main subject / speciality","default":false},"hours_per_week":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hours Per Week","description":"Weekly hours"},"coefficient":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coefficient","description":"Exam coefficient"}},"type":"object","required":["subject_code"],"title":"PersonSchoolSubjectItem","description":"Single subject item in a bulk create request."},"PersonSchoolSubjectListResponse":{"properties":{"record_id":{"type":"string","format":"uuid","title":"Record Id"},"person_code":{"type":"string","title":"Person Code"},"subjects":{"items":{"$ref":"#/components/schemas/PersonSchoolSubjectResponse"},"type":"array","title":"Subjects"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["record_id","person_code","subjects","total_count"],"title":"PersonSchoolSubjectListResponse","description":"Schema for listing subjects on a record."},"PersonSchoolSubjectResponse":{"properties":{"school_subject_id":{"type":"string","format":"uuid","title":"School Subject Id"},"country_code":{"type":"string","title":"Country Code"},"record_id":{"type":"string","format":"uuid","title":"Record Id"},"person_code":{"type":"string","title":"Person Code"},"subject_code":{"type":"string","title":"Subject Code"},"input_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Name"},"is_major":{"type":"boolean","title":"Is Major","default":false},"hours_per_week":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hours Per Week"},"coefficient":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coefficient"},"profile_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Code"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["school_subject_id","country_code","record_id","person_code","subject_code","created_at"],"title":"PersonSchoolSubjectResponse","description":"Schema for PersonSchoolSubject API response."},"PersonSubjectBulkCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"education_id":{"type":"string","format":"uuid","title":"Education Id"},"subjects":{"items":{"type":"string"},"type":"array","title":"Subjects"}},"type":"object","required":["person_code","education_id","subjects"],"title":"PersonSubjectBulkCreate","description":"Schema for creating multiple PersonSubjects at once."},"PersonSubjectListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"education_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Education Id"},"subjects":{"items":{"$ref":"#/components/schemas/PersonSubjectResponse"},"type":"array","title":"Subjects"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","subjects","total_count"],"title":"PersonSubjectListResponse","description":"Schema for listing person subjects."},"PersonSubjectPlatformCreate":{"properties":{"platform_code":{"type":"string","title":"Platform Code","description":"External platform code (SAGEMATH, JUPYTERHUB, etc.)"},"platform_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Name","description":"Platform display name"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url","description":"URL for this student"},"platform_sso_enabled":{"type":"boolean","title":"Platform Sso Enabled","description":"SSO configured for this platform","default":false}},"type":"object","required":["platform_code"],"title":"PersonSubjectPlatformCreate","description":"Schema for manually creating a platform assignment."},"PersonSubjectPlatformListResponse":{"properties":{"record_id":{"type":"string","format":"uuid","title":"Record Id"},"person_code":{"type":"string","title":"Person Code"},"platforms":{"items":{"$ref":"#/components/schemas/PersonSubjectPlatformResponse"},"type":"array","title":"Platforms"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["record_id","person_code","platforms","total_count"],"title":"PersonSubjectPlatformListResponse","description":"Schema for listing platforms on a record."},"PersonSubjectPlatformResponse":{"properties":{"subject_platform_id":{"type":"string","format":"uuid","title":"Subject Platform Id"},"country_code":{"type":"string","title":"Country Code"},"school_subject_id":{"type":"string","format":"uuid","title":"School Subject Id"},"record_id":{"type":"string","format":"uuid","title":"Record Id"},"person_code":{"type":"string","title":"Person Code"},"platform_code":{"type":"string","title":"Platform Code"},"platform_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Name"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"platform_sso_enabled":{"type":"boolean","title":"Platform Sso Enabled","default":false},"total_sessions":{"type":"integer","title":"Total Sessions","default":0},"total_duration_minutes":{"type":"integer","title":"Total Duration Minutes","default":0},"last_session_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Session At"},"first_session_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Session At"},"status":{"type":"string","title":"Status","default":"ASSIGNED"},"assigned_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Assigned At"},"activated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Activated At"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["subject_platform_id","country_code","school_subject_id","record_id","person_code","platform_code","created_at"],"title":"PersonSubjectPlatformResponse","description":"Schema for PersonSubjectPlatform API response."},"PersonSubjectPlatformUpdate":{"properties":{"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"platform_sso_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Platform Sso Enabled"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"ASSIGNED, ACTIVE, SUSPENDED"},"total_sessions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Sessions"},"total_duration_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Duration Minutes"},"last_session_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Session At"},"first_session_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Session At"},"activated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Activated At"}},"type":"object","title":"PersonSubjectPlatformUpdate","description":"Schema for updating a platform assignment (status, tracking)."},"PersonSubjectResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"education_id":{"type":"string","format":"uuid","title":"Education Id"},"subject_code":{"type":"string","title":"Subject Code"},"input_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Name"},"is_major":{"type":"boolean","title":"Is Major","default":false},"hours_per_week":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hours Per Week"},"coefficient":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coefficient"},"platform_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Code"},"platform_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Name"},"country_code":{"type":"string","title":"Country Code"},"person_subject_id":{"type":"string","format":"uuid","title":"Person Subject Id"},"person_subject_code":{"type":"string","title":"Person Subject Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"profile_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Code"},"profile_attributed":{"type":"boolean","title":"Profile Attributed","default":false},"mission_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mission Id"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["person_code","education_id","subject_code","country_code","person_subject_id","person_subject_code","person_id","created_at"],"title":"PersonSubjectResponse","description":"Schema for PersonSubject response."},"PersonSystemCreate":{"properties":{"identity_user_id":{"type":"string","format":"uuid","title":"Identity User Id"},"person_type":{"type":"string","title":"Person Type","default":"HUMAN"},"country_primary_residence_code":{"type":"string","title":"Country Primary Residence Code","default":"FR"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"human_first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human First Name"},"human_middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Middle Name"},"human_last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Last Name"},"human_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Display Name"},"human_gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Gender"},"human_birth_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Human Birth Year"},"human_nationality_codes":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Human Nationality Codes"},"public_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Public Email"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code"},"municipality_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Municipality Code"},"hierarchical_city_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hierarchical City Code"},"moral_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Name"},"moral_legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Legal Form"},"moral_siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Siret"},"moral_siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Siren"},"moral_trade_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Trade Name"},"moral_naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Naf Code"},"moral_naf_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Naf Label"},"moral_registration_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Registration Country"},"moral_registration_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Registration Date"},"moral_creation_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Creation Date"},"moral_industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Industry"},"moral_subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Subcategory"},"moral_employees_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Employees Range"},"moral_operational_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Operational Status"},"moral_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Website"},"moral_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Description"},"moral_ess_label":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Moral Ess Label"},"moral_is_mission_company":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Moral Is Mission Company"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"public_address":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Public Address"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_verified":{"type":"boolean","title":"Is Verified","default":false}},"type":"object","required":["identity_user_id"],"title":"PersonSystemCreate","description":"Schema for creating a Person via system endpoint.\nUsed by Identity Backend during user registration (HUMAN)\nand by Enterprise Publisher scheduler (MORAL)."},"PersonTeachingRecordCreate":{"properties":{"school_person_code":{"type":"string","title":"School Person Code","description":"Person MORAL code of the school"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name","description":"Denormalized school name for display"},"school_year_code":{"type":"string","title":"School Year Code","description":"FK SchoolYear (e.g. FR_2025_2026)"},"levels_taught":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Levels Taught","description":"Education levels taught (e.g. ['TERMINALE', 'PREMIERE'])"},"classes_count":{"type":"integer","title":"Classes Count","description":"Total number of classes","default":0},"students_count_approx":{"type":"integer","title":"Students Count Approx","description":"Approximate total students","default":0},"hours_per_week":{"type":"integer","title":"Hours Per Week","description":"Weekly teaching hours","default":0},"status":{"type":"string","title":"Status","description":"ACTIVE, COMPLETED, ON_LEAVE","default":"ACTIVE"},"is_current":{"type":"boolean","title":"Is Current","description":"Is this the current school year record","default":false}},"type":"object","required":["school_person_code","school_year_code","levels_taught"],"title":"PersonTeachingRecordCreate","description":"Schema for creating a PersonTeachingRecord."},"PersonTeachingRecordListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"records":{"items":{"$ref":"#/components/schemas/PersonTeachingRecordResponse"},"type":"array","title":"Records"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["person_code","records","total_count"],"title":"PersonTeachingRecordListResponse","description":"Schema for listing PersonTeachingRecords."},"PersonTeachingRecordResponse":{"properties":{"record_id":{"type":"string","format":"uuid","title":"Record Id"},"record_code":{"type":"string","title":"Record Code"},"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"school_person_code":{"type":"string","title":"School Person Code"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name"},"school_year_code":{"type":"string","title":"School Year Code"},"levels_taught":{"items":{"type":"string"},"type":"array","title":"Levels Taught"},"classes_count":{"type":"integer","title":"Classes Count","default":0},"students_count_approx":{"type":"integer","title":"Students Count Approx","default":0},"hours_per_week":{"type":"integer","title":"Hours Per Week","default":0},"status":{"type":"string","title":"Status","default":"ACTIVE"},"is_current":{"type":"boolean","title":"Is Current","default":false},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["record_id","record_code","country_code","person_code","person_id","school_person_code","school_year_code","created_at"],"title":"PersonTeachingRecordResponse","description":"Schema for PersonTeachingRecord API response."},"PersonTeachingRecordUpdate":{"properties":{"school_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Person Code"},"school_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Name"},"school_year_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Year Code"},"levels_taught":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Levels Taught"},"classes_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Classes Count"},"students_count_approx":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Students Count Approx"},"hours_per_week":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hours Per Week"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"}},"type":"object","title":"PersonTeachingRecordUpdate","description":"Schema for updating a PersonTeachingRecord — all fields optional."},"PersonTeachingSubjectBulkCreate":{"properties":{"subjects":{"items":{"$ref":"#/components/schemas/PersonTeachingSubjectItem"},"type":"array","minItems":1,"title":"Subjects","description":"List of subjects to associate"}},"type":"object","required":["subjects"],"title":"PersonTeachingSubjectBulkCreate","description":"Schema for bulk-creating teaching subjects on a record."},"PersonTeachingSubjectItem":{"properties":{"subject_code":{"type":"string","title":"Subject Code","description":"FK Subject referential (e.g. MATHEMATICS)"},"input_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Name","description":"Original user input for history"},"is_main_subject":{"type":"boolean","title":"Is Main Subject","description":"Main teaching subject","default":false},"hours_per_week":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hours Per Week","description":"Weekly teaching hours for this subject"},"levels_for_subject":{"items":{"type":"string"},"type":"array","title":"Levels For Subject","description":"Levels where this subject is taught"}},"type":"object","required":["subject_code"],"title":"PersonTeachingSubjectItem","description":"Single subject item in a bulk create request."},"PersonTeachingSubjectListResponse":{"properties":{"record_id":{"type":"string","format":"uuid","title":"Record Id"},"person_code":{"type":"string","title":"Person Code"},"subjects":{"items":{"$ref":"#/components/schemas/PersonTeachingSubjectResponse"},"type":"array","title":"Subjects"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["record_id","person_code","subjects","total_count"],"title":"PersonTeachingSubjectListResponse","description":"Schema for listing teaching subjects on a record."},"PersonTeachingSubjectResponse":{"properties":{"teaching_subject_id":{"type":"string","format":"uuid","title":"Teaching Subject Id"},"country_code":{"type":"string","title":"Country Code"},"record_id":{"type":"string","format":"uuid","title":"Record Id"},"person_code":{"type":"string","title":"Person Code"},"subject_code":{"type":"string","title":"Subject Code"},"input_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Name"},"is_main_subject":{"type":"boolean","title":"Is Main Subject","default":false},"hours_per_week":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hours Per Week"},"levels_for_subject":{"items":{"type":"string"},"type":"array","title":"Levels For Subject"},"profile_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Code"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["teaching_subject_id","country_code","record_id","person_code","subject_code","created_at"],"title":"PersonTeachingSubjectResponse","description":"Schema for PersonTeachingSubject API response."},"PersonUpdate":{"properties":{"human_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Display Name"},"human_public_bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Public Bio"}},"type":"object","title":"PersonUpdate"},"PersonVoteEligibilityResponse":{"properties":{"identity_user_id":{"type":"string","format":"uuid","title":"Identity User Id"},"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"passport_verification_level":{"type":"integer","title":"Passport Verification Level"},"citizen_journey_active":{"type":"boolean","title":"Citizen Journey Active"},"citizen_journey_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Citizen Journey Status"},"citizen_journey_is_active":{"type":"boolean","title":"Citizen Journey Is Active","default":false},"eligible_to_vote":{"type":"boolean","title":"Eligible To Vote"},"message":{"type":"string","title":"Message"}},"type":"object","required":["identity_user_id","person_code","person_type","passport_verification_level","citizen_journey_active","eligible_to_vote","message"],"title":"PersonVoteEligibilityResponse","description":"Vote eligibility for a person resolved from Identity."},"PersonsByCodesRequest":{"properties":{"person_codes":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Person Codes","description":"List of person_codes to fetch (max 100)"},"fields":{"type":"string","enum":["card","full"],"title":"Fields","description":"'card' returns 7 lightweight fields, 'full' returns PersonResponse","default":"card"}},"type":"object","required":["person_codes"],"title":"PersonsByCodesRequest","description":"Request body for batch person card lookup."},"PersonsByCodesResponse":{"properties":{"persons":{"items":{},"type":"array","title":"Persons"},"total":{"type":"integer","title":"Total"},"not_found":{"items":{"type":"string"},"type":"array","title":"Not Found","default":[]}},"type":"object","required":["persons","total"],"title":"PersonsByCodesResponse","description":"Response for batch person card lookup."},"PillarCodeCreate":{"properties":{"pillar_code":{"type":"string","title":"Pillar Code"},"domain_code":{"type":"string","title":"Domain Code"},"domain_name_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain Name Fr"},"domain_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain Name En"},"domain_order":{"type":"integer","title":"Domain Order","default":1},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"description_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Fr"},"description_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description En"},"emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emoji"},"icon_lucide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Lucide"},"color_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Primary"},"pillar_order":{"type":"integer","title":"Pillar Order","default":0},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["pillar_code","domain_code","name_fr"],"title":"PillarCodeCreate"},"PillarCodeListResponse":{"properties":{"pillar_codes":{"items":{"$ref":"#/components/schemas/PillarCodeResponse"},"type":"array","title":"Pillar Codes"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["pillar_codes","total_count"],"title":"PillarCodeListResponse"},"PillarCodeResponse":{"properties":{"pillar_code":{"type":"string","title":"Pillar Code"},"domain_code":{"type":"string","title":"Domain Code"},"domain_name_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain Name Fr"},"domain_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain Name En"},"domain_order":{"type":"integer","title":"Domain Order","default":1},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"description_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Fr"},"description_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description En"},"emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emoji"},"icon_lucide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Lucide"},"color_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Primary"},"pillar_order":{"type":"integer","title":"Pillar Order","default":0},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["pillar_code","domain_code","name_fr"],"title":"PillarCodeResponse","description":"Response schema for a single pillar code."},"PillarScoreBulkCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"pillars":{"additionalProperties":{"type":"integer"},"type":"object","title":"Pillars"},"source":{"type":"string","title":"Source","default":"declaration"}},"type":"object","required":["person_code","pillars"],"title":"PillarScoreBulkCreate","description":"Schema for creating multiple pillar scores at once"},"PillarScoreItem":{"properties":{"pillar_code":{"type":"string","title":"Pillar Code"},"pillar_name":{"type":"string","title":"Pillar Name"},"score":{"type":"integer","title":"Score"},"level":{"type":"string","title":"Level"},"trend":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trend"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"}},"type":"object","required":["pillar_code","pillar_name","score","level"],"title":"PillarScoreItem","description":"Single pillar score."},"PillarScoreResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"pillar_code":{"type":"string","title":"Pillar Code"},"score":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Score"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"trend":{"type":"string","title":"Trend","default":"stable"},"sub_scores":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Sub Scores"},"source":{"type":"string","title":"Source","default":"declaration"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence","default":1.0},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"pillar_score_id":{"type":"string","format":"uuid","title":"Pillar Score Id"},"country_code":{"type":"string","title":"Country Code"},"calculated_at":{"type":"string","format":"date-time","title":"Calculated At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","pillar_code","score","pillar_score_id","country_code","calculated_at","created_at","datakey"],"title":"PillarScoreResponse","description":"Schema for pillar score response"},"PillarScoreUpdate":{"properties":{"score":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Score"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"trend":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trend"},"sub_scores":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Sub Scores"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"confidence":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Confidence"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"PillarScoreUpdate","description":"Schema for updating a pillar score - all fields optional"},"PillarScoresResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"pillar_scores":{"additionalProperties":{"$ref":"#/components/schemas/PillarScoreResponse"},"type":"object","title":"Pillar Scores"},"total_count":{"type":"integer","title":"Total Count"},"last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated"}},"type":"object","required":["person_code","pillar_scores","total_count"],"title":"PillarScoresResponse","description":"Schema for returning all pillar scores of a person"},"PlatformActivityInfo":{"properties":{"persons_helped":{"type":"integer","title":"Persons Helped","default":0},"average_rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Rating"},"reports_received":{"type":"integer","title":"Reports Received","default":0},"last_activity":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity"}},"type":"object","title":"PlatformActivityInfo","description":"Platform activity statistics."},"PlatformRecommendationCreate":{"properties":{"platform_name":{"type":"string","title":"Platform Name","description":"Name of recommended platform"},"platform_category":{"type":"string","title":"Platform Category","description":"Category from PLATFORM_CATEGORIES"},"need_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Need Id","description":"Related DigitalNeed ID"},"need_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Code"},"related_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Processes"},"platform_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Type"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"platform_documentation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Documentation Url"},"use_case_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case Description"},"features_needed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features Needed"},"features_nice_to_have":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features Nice To Have"},"estimated_setup_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Setup Cost"},"estimated_monthly_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Monthly Cost"},"estimated_annual_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Annual Cost"},"estimated_training_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Training Cost"},"cost_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Currency","default":"XAF"},"estimated_roi_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Roi Months"},"estimated_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Time Saved Hours Per Month"},"estimated_cost_reduction_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Cost Reduction Annual"},"implementation_complexity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Implementation Complexity"},"estimated_implementation_weeks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Implementation Weeks"},"technical_skills_required":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Technical Skills Required"},"alternative_platforms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alternative Platforms"},"why_this_platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Why This Platform","description":"Justification"},"recommended_by_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended By Person Code","description":"person_code"},"recommended_by_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended By Type","description":"STUDENT, EXPERT, etc."},"confidence_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Confidence Score"},"school_project":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"School Project","default":false}},"type":"object","required":["platform_name","platform_category"],"title":"PlatformRecommendationCreate","description":"Schema for creating a platform recommendation."},"PlatformRecommendationListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"recommendations":{"items":{"$ref":"#/components/schemas/PlatformRecommendationResponse"},"type":"array","title":"Recommendations"},"total_count":{"type":"integer","title":"Total Count"},"by_status":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Status"},"by_category":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Category"},"by_recommender_type":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Recommender Type"}},"type":"object","required":["person_code","recommendations","total_count"],"title":"PlatformRecommendationListResponse","description":"List response for recommendations."},"PlatformRecommendationResponse":{"properties":{"recommendation_id":{"type":"string","format":"uuid","title":"Recommendation Id"},"person_code":{"type":"string","title":"Person Code"},"need_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Need Id"},"need_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Need Code"},"related_processes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Processes"},"platform_name":{"type":"string","title":"Platform Name"},"platform_category":{"type":"string","title":"Platform Category"},"platform_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Type"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"platform_documentation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Documentation Url"},"use_case_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case Description"},"features_needed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features Needed"},"features_nice_to_have":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features Nice To Have"},"estimated_setup_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Setup Cost"},"estimated_monthly_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Monthly Cost"},"estimated_annual_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Annual Cost"},"estimated_training_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Training Cost"},"estimated_total_first_year_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Total First Year Cost"},"cost_currency":{"type":"string","title":"Cost Currency","default":"XAF"},"estimated_roi_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Roi Months"},"estimated_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Time Saved Hours Per Month"},"estimated_cost_reduction_annual":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Cost Reduction Annual"},"implementation_complexity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Implementation Complexity"},"estimated_implementation_weeks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Implementation Weeks"},"technical_skills_required":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Technical Skills Required"},"alternative_platforms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alternative Platforms"},"why_this_platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Why This Platform"},"recommended_by_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended By Person Code"},"recommended_by_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended By Type"},"recommendation_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Recommendation Date"},"confidence_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Confidence Score"},"enterprise_feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Feedback"},"enterprise_rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Enterprise Rating"},"status":{"type":"string","title":"Status","default":"RECOMMENDED"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"adoption_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Adoption Date"},"associated_mission_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Associated Mission Code"},"school_project":{"type":"boolean","title":"School Project","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["recommendation_id","person_code","platform_name","platform_category","created_at"],"title":"PlatformRecommendationResponse","description":"Response schema for platform recommendation."},"PlatformRecommendationUpdate":{"properties":{"platform_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Name"},"platform_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Category"},"platform_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Type"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"platform_documentation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Documentation Url"},"use_case_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case Description"},"features_needed":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features Needed"},"features_nice_to_have":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features Nice To Have"},"estimated_setup_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Setup Cost"},"estimated_monthly_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Monthly Cost"},"estimated_annual_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Annual Cost"},"estimated_training_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Training Cost"},"cost_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Currency"},"estimated_roi_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Roi Months"},"estimated_time_saved_hours_per_month":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Time Saved Hours Per Month"},"estimated_cost_reduction_annual":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Cost Reduction Annual"},"implementation_complexity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Implementation Complexity"},"estimated_implementation_weeks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Implementation Weeks"},"technical_skills_required":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Technical Skills Required"},"alternative_platforms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alternative Platforms"},"why_this_platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Why This Platform"},"confidence_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Confidence Score"}},"type":"object","title":"PlatformRecommendationUpdate","description":"Schema for updating a recommendation."},"PortfolioAnalytics":{"properties":{"person_code":{"type":"string","title":"Person Code"},"period":{"type":"string","title":"Period"},"total_views":{"type":"integer","title":"Total Views","default":0},"unique_viewers":{"type":"integer","title":"Unique Viewers","default":0},"downloads":{"type":"integer","title":"Downloads","default":0},"shares_created":{"type":"integer","title":"Shares Created","default":0},"by_portfolio":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"By Portfolio"},"views_by_day":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Views By Day"},"top_referrers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Top Referrers"}},"type":"object","required":["person_code","period"],"title":"PortfolioAnalytics","description":"Analytics data for portfolios."},"PortfolioContentOptions":{"properties":{"max_experiences":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Max Experiences","default":5},"max_skills":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Skills","default":10},"max_education":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Education","default":3},"max_certifications":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Max Certifications","default":5},"skills_display":{"type":"string","title":"Skills Display","default":"bars"},"experience_format":{"type":"string","title":"Experience Format","default":"detailed"},"hide_dates":{"type":"boolean","title":"Hide Dates","default":false},"anonymize_company_names":{"type":"boolean","title":"Anonymize Company Names","default":false}},"type":"object","title":"PortfolioContentOptions","description":"Content options for portfolio generation."},"PortfolioCustomization":{"properties":{"primary_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Color","default":"#2563eb"},"font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Family","default":"Inter"},"photo_shape":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Shape","default":"circle"},"show_qr_code":{"type":"boolean","title":"Show Qr Code","default":true},"show_civic_level":{"type":"boolean","title":"Show Civic Level","default":true},"show_pillar_chart":{"type":"boolean","title":"Show Pillar Chart","default":true},"show_contact_info":{"type":"boolean","title":"Show Contact Info","default":true},"header_style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Header Style","default":"modern"},"page_size":{"type":"string","title":"Page Size","default":"A4"}},"type":"object","title":"PortfolioCustomization","description":"Customization options for portfolio generation."},"PortfolioExportRequest":{"properties":{"portfolio_id":{"type":"string","title":"Portfolio Id"},"formats":{"items":{"type":"string"},"type":"array","title":"Formats","default":["pdf","pdf-web","html","png"]},"include_qr":{"type":"boolean","title":"Include Qr","default":true}},"type":"object","required":["portfolio_id"],"title":"PortfolioExportRequest","description":"Request for multi-format export."},"PortfolioExportResponse":{"properties":{"exports":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Exports"},"zip_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["exports","expires_at"],"title":"PortfolioExportResponse","description":"Response for multi-format export."},"PortfolioGenerateRequest":{"properties":{"template_id":{"type":"string","title":"Template Id"},"format":{"type":"string","title":"Format","default":"pdf"},"sections":{"items":{"type":"string"},"type":"array","title":"Sections","default":["person","civic_profile","education","experiences","skills","certifications"]},"customization":{"anyOf":[{"$ref":"#/components/schemas/PortfolioCustomization"},{"type":"null"}]},"content_options":{"anyOf":[{"$ref":"#/components/schemas/PortfolioContentOptions"},{"type":"null"}]},"language":{"type":"string","title":"Language","default":"fr"},"include_verification_stamp":{"type":"boolean","title":"Include Verification Stamp","default":true}},"type":"object","required":["template_id"],"title":"PortfolioGenerateRequest","description":"Request to generate a portfolio."},"PortfolioGenerateResponse":{"properties":{"portfolio_id":{"type":"string","title":"Portfolio Id"},"person_code":{"type":"string","title":"Person Code"},"template_id":{"type":"string","title":"Template Id"},"format":{"type":"string","title":"Format"},"status":{"type":"string","title":"Status"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"},"file_size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size Bytes"},"page_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Count"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"verification_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Code"}},"type":"object","required":["portfolio_id","person_code","template_id","format","status","generated_at"],"title":"PortfolioGenerateResponse","description":"Response after generating a portfolio."},"PortfolioPreviewResponse":{"properties":{"preview_url":{"type":"string","title":"Preview Url"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"expires_in_minutes":{"type":"integer","title":"Expires In Minutes","default":30},"page_count":{"type":"integer","title":"Page Count"},"warnings":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Warnings"}},"type":"object","required":["preview_url","page_count"],"title":"PortfolioPreviewResponse","description":"Response for portfolio preview."},"PortfolioSaveRequest":{"properties":{"name":{"type":"string","title":"Name"},"template_id":{"type":"string","title":"Template Id"},"sections":{"items":{"type":"string"},"type":"array","title":"Sections"},"customization":{"anyOf":[{"$ref":"#/components/schemas/PortfolioCustomization"},{"type":"null"}]},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","required":["name","template_id","sections"],"title":"PortfolioSaveRequest","description":"Request to save a portfolio."},"PortfolioShareListResponse":{"properties":{"shares":{"items":{"$ref":"#/components/schemas/PortfolioShareResponse"},"type":"array","title":"Shares"},"total_active":{"type":"integer","title":"Total Active"}},"type":"object","required":["shares","total_active"],"title":"PortfolioShareListResponse","description":"Response for listing portfolio shares."},"PortfolioShareRequest":{"properties":{"portfolio_id":{"type":"string","title":"Portfolio Id"},"recipient_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Email"},"expires_in_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Expires In Days","default":30},"max_views":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Max Views","default":10},"require_auth":{"type":"boolean","title":"Require Auth","default":false},"allow_download":{"type":"boolean","title":"Allow Download","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"track_views":{"type":"boolean","title":"Track Views","default":true}},"type":"object","required":["portfolio_id"],"title":"PortfolioShareRequest","description":"Request to share a portfolio."},"PortfolioShareResponse":{"properties":{"share_id":{"type":"string","title":"Share Id"},"share_url":{"type":"string","title":"Share Url"},"short_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"max_views":{"type":"integer","title":"Max Views"},"current_views":{"type":"integer","title":"Current Views","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"qr_code_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Code Url"}},"type":"object","required":["share_id","share_url","expires_at","max_views","created_at"],"title":"PortfolioShareResponse","description":"Response after creating a portfolio share."},"PortfolioTemplate":{"properties":{"template_id":{"type":"string","title":"Template Id"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"person_types":{"items":{"type":"string"},"type":"array","title":"Person Types"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"colors":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Colors"},"sections_supported":{"items":{"type":"string"},"type":"array","title":"Sections Supported"},"is_premium":{"type":"boolean","title":"Is Premium","default":false},"languages":{"items":{"type":"string"},"type":"array","title":"Languages","default":["fr"]}},"type":"object","required":["template_id","name","category","person_types","sections_supported"],"title":"PortfolioTemplate","description":"Schema for a portfolio template."},"PortfolioTemplateListResponse":{"properties":{"templates":{"items":{"$ref":"#/components/schemas/PortfolioTemplate"},"type":"array","title":"Templates"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["templates","total_count"],"title":"PortfolioTemplateListResponse","description":"Response for listing portfolio templates."},"PortfolioVerifyResponse":{"properties":{"is_valid":{"type":"boolean","title":"Is Valid"},"verification_code":{"type":"string","title":"Verification Code"},"person_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Display Name"},"portfolio_generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Portfolio Generated At"},"data_snapshot_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Data Snapshot At"},"is_current":{"type":"boolean","title":"Is Current","default":true},"changes_since_generation":{"type":"integer","title":"Changes Since Generation","default":0},"changed_sections":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Changed Sections"},"civic_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Civic Level"},"is_verified_identity":{"type":"boolean","title":"Is Verified Identity","default":false},"verification_message":{"type":"string","title":"Verification Message"}},"type":"object","required":["is_valid","verification_code","verification_message"],"title":"PortfolioVerifyResponse","description":"Response for portfolio verification."},"PortraitCertification":{"properties":{"certification_id":{"type":"string","title":"Certification Id"},"cert_name":{"type":"string","title":"Cert Name"},"cert_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Type"},"cert_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Body"},"cert_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Number"},"cert_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Scope"},"cert_date_issued":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Date Issued"},"cert_date_expiry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cert Date Expiry"},"cert_is_active":{"type":"boolean","title":"Cert Is Active","default":true},"is_verified":{"type":"boolean","title":"Is Verified","default":false}},"type":"object","required":["certification_id","cert_name"],"title":"PortraitCertification"},"PortraitCivicEngagement":{"properties":{"civic_level":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Civic Level"},"esg_score":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Esg Score"},"carbon_footprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carbon Footprint"},"carbon_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Carbon Target"},"volunteer_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Volunteer Hours"},"foundation_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Foundation Name"},"is_mission_company":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mission Company"},"purpose_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose Statement"}},"type":"object","title":"PortraitCivicEngagement"},"PortraitContact":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"email_commercial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Commercial"},"email_hr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Hr"},"email_press":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Press"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"phone_secondary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Secondary"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"careers_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Careers Url"},"booking_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Booking Url"},"address":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Address"},"social_links":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Social Links"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"opening_hours":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Opening Hours"}},"type":"object","title":"PortraitContact"},"PortraitEstablishment":{"properties":{"establishment_id":{"type":"string","title":"Establishment Id"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siret"},"nic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nic"},"establishment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Establishment Type"},"is_headquarters":{"type":"boolean","title":"Is Headquarters","default":false},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"address_line_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Line 1"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"gps_latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Latitude"},"gps_longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gps Longitude"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"employee_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employee Count"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["establishment_id"],"title":"PortraitEstablishment"},"PortraitFinancials":{"properties":{"revenue_latest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revenue Latest"},"revenue_history":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Revenue History"},"net_income_latest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Net Income Latest"},"capital_amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capital Amount"},"accounts_confidential":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accounts Confidential"},"fiscal_year_end":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fiscal Year End"},"funding_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Funding Stage"},"funding_rounds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Funding Rounds"},"statutory_auditor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statutory Auditor"}},"type":"object","title":"PortraitFinancials"},"PortraitHistory":{"properties":{"founded_by":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Founded By"},"previous_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Previous Names"},"milestones":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Milestones"}},"type":"object","title":"PortraitHistory"},"PortraitIdentity":{"properties":{"moral_name":{"type":"string","title":"Moral Name"},"trade_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trade Name"},"legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Form"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siret"},"siren":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Siren"},"naf_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Code"},"naf_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Naf Label"},"vat_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Number"},"capital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capital"},"creation_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creation Date"},"registration_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Date"},"registration_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Country"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"operational_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operational Status"},"collective_agreement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collective Agreement"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory"}},"type":"object","required":["moral_name"],"title":"PortraitIdentity"},"PortraitLeader":{"properties":{"person_code":{"type":"string","title":"Person Code"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position"},"governance_function":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Governance Function"},"mandate_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mandate Start"},"mandate_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mandate End"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"connection_type":{"type":"string","title":"Connection Type"}},"type":"object","required":["person_code","connection_type"],"title":"PortraitLeader"},"PortraitMedia":{"properties":{"gallery":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Gallery"},"videos":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Videos"},"virtual_tour_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Virtual Tour Url"},"brochures":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Brochures"}},"type":"object","title":"PortraitMedia"},"PortraitOfferings":{"properties":{"offerings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Offerings"}},"type":"object","title":"PortraitOfferings"},"PortraitPartner":{"properties":{"person_code":{"type":"string","title":"Person Code"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"connection_type":{"type":"string","title":"Connection Type"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"}},"type":"object","required":["person_code","connection_type"],"title":"PortraitPartner"},"PortraitPartnerships":{"properties":{"partners":{"anyOf":[{"items":{"$ref":"#/components/schemas/PortraitPartner"},"type":"array"},{"type":"null"}],"title":"Partners"},"parent_company":{"anyOf":[{"$ref":"#/components/schemas/PortraitPartner"},{"type":"null"}]},"subsidiaries":{"anyOf":[{"items":{"$ref":"#/components/schemas/PortraitPartner"},"type":"array"},{"type":"null"}],"title":"Subsidiaries"}},"type":"object","title":"PortraitPartnerships"},"PortraitPresentation":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline"},"full_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Description"},"mission":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mission"},"vision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vision"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values"},"specialties":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Specialties"},"languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"}},"type":"object","title":"PortraitPresentation"},"PortraitResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type","default":"MORAL"},"identity":{"anyOf":[{"$ref":"#/components/schemas/PortraitIdentity"},{"type":"null"}]},"visual":{"anyOf":[{"$ref":"#/components/schemas/PortraitVisual"},{"type":"null"}]},"presentation":{"anyOf":[{"$ref":"#/components/schemas/PortraitPresentation"},{"type":"null"}]},"contact":{"anyOf":[{"$ref":"#/components/schemas/PortraitContact"},{"type":"null"}]},"establishments":{"anyOf":[{"items":{"$ref":"#/components/schemas/PortraitEstablishment"},"type":"array"},{"type":"null"}],"title":"Establishments"},"leadership":{"anyOf":[{"items":{"$ref":"#/components/schemas/PortraitLeader"},"type":"array"},{"type":"null"}],"title":"Leadership"},"workforce":{"anyOf":[{"$ref":"#/components/schemas/PortraitWorkforce"},{"type":"null"}]},"financials":{"anyOf":[{"$ref":"#/components/schemas/PortraitFinancials"},{"type":"null"}]},"offerings":{"anyOf":[{"$ref":"#/components/schemas/PortraitOfferings"},{"type":"null"}]},"certifications":{"anyOf":[{"items":{"$ref":"#/components/schemas/PortraitCertification"},"type":"array"},{"type":"null"}],"title":"Certifications"},"partnerships":{"anyOf":[{"$ref":"#/components/schemas/PortraitPartnerships"},{"type":"null"}]},"civic_engagement":{"anyOf":[{"$ref":"#/components/schemas/PortraitCivicEngagement"},{"type":"null"}]},"media":{"anyOf":[{"$ref":"#/components/schemas/PortraitMedia"},{"type":"null"}]},"history":{"anyOf":[{"$ref":"#/components/schemas/PortraitHistory"},{"type":"null"}]},"territorial":{"anyOf":[{"$ref":"#/components/schemas/PortraitTerritorial"},{"type":"null"}]}},"type":"object","required":["person_code"],"title":"PortraitResponse","description":"Portrait complet 360° d'une organisation MORAL — 15 sections."},"PortraitTerritorial":{"properties":{"territorial_presence":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Territorial Presence"},"territorial_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Territorial Level"},"local_jobs_created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Local Jobs Created"},"local_sourcing_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Local Sourcing Percent"},"economic_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Economic Zone"},"affiliations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Affiliations"},"clusters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Clusters"},"franchise_network":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Franchise Network"}},"type":"object","title":"PortraitTerritorial"},"PortraitVisual":{"properties":{"hero_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hero Image Url"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"avatar_white_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar White Url"},"brand_color_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Color Primary"},"brand_color_secondary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Color Secondary"},"brand_font":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Font"}},"type":"object","title":"PortraitVisual"},"PortraitWorkforce":{"properties":{"employees_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employees Count"},"employees_range":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employees Range"},"employees_france":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employees France"},"gender_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender Ratio"},"equality_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Equality Index"},"apprentice_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Apprentice Count"},"intern_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intern Count"},"turnover_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Turnover Rate"},"open_positions_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Open Positions Count"}},"type":"object","title":"PortraitWorkforce"},"ProcessCategoriesResponse":{"properties":{"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"frequencies":{"items":{"type":"string"},"type":"array","title":"Frequencies"},"priorities":{"items":{"type":"string"},"type":"array","title":"Priorities"},"impacts":{"items":{"type":"string"},"type":"array","title":"Impacts"},"digitalization_levels":{"additionalProperties":true,"type":"object","title":"Digitalization Levels"}},"type":"object","title":"ProcessCategoriesResponse","description":"Response with available categories and constants."},"ProfileTypeCreate":{"properties":{"profile_type_code":{"type":"string","title":"Profile Type Code"},"base_person_type":{"type":"string","title":"Base Person Type"},"label_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label Fr"},"label_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label En"},"emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emoji"},"icon_lucide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Lucide"},"color_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Primary"},"badge_variant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Badge Variant"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_default":{"type":"boolean","title":"Is Default","default":false},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["profile_type_code","base_person_type"],"title":"ProfileTypeCreate"},"ProfileTypeListResponse":{"properties":{"profile_types":{"items":{"$ref":"#/components/schemas/ProfileTypeResponse"},"type":"array","title":"Profile Types"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["profile_types","total_count"],"title":"ProfileTypeListResponse"},"ProfileTypeResponse":{"properties":{"profile_type_code":{"type":"string","title":"Profile Type Code"},"base_person_type":{"type":"string","title":"Base Person Type"},"parent_profile_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Profile Code"},"label_fr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label Fr"},"label_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label En"},"emoji":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emoji"},"icon_lucide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Lucide"},"color_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Primary"},"badge_variant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Badge Variant"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_default":{"type":"boolean","title":"Is Default","default":false},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["profile_type_code","base_person_type"],"title":"ProfileTypeResponse","description":"Response schema — flattened from the ScyllaDB model."},"PublicHealthcareListResponse":{"properties":{"practitioners":{"items":{"$ref":"#/components/schemas/PublicPractitionerResponse"},"type":"array","title":"Practitioners"},"total_count":{"type":"integer","title":"Total Count"},"filters_applied":{"additionalProperties":true,"type":"object","title":"Filters Applied"}},"type":"object","required":["practitioners","total_count","filters_applied"],"title":"PublicHealthcareListResponse","description":"Public directory response."},"PublicJobOfferSearchResponse":{"properties":{"offers":{"items":{"$ref":"#/components/schemas/JobOfferResponse"},"type":"array","title":"Offers"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["offers","total_count"],"title":"PublicJobOfferSearchResponse"},"PublicOfferMatchStats":{"properties":{"offer_code":{"type":"string","title":"Offer Code"},"total_candidates":{"type":"integer","title":"Total Candidates"},"avg_score":{"type":"number","title":"Avg Score"},"top_score":{"type":"number","title":"Top Score"}},"type":"object","required":["offer_code","total_candidates","avg_score","top_score"],"title":"PublicOfferMatchStats","description":"Anonymized match stats for a public offer."},"PublicPractitionerResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"specialty_code":{"type":"string","title":"Specialty Code"},"specialty_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty Name"},"facility_person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Person Code"},"facility_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Name"},"facility_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facility Type"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"schedule_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Json"},"acts_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acts Json"},"languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages"},"accepts_new_patients":{"type":"boolean","title":"Accepts New Patients","default":true},"teleconsultation":{"type":"boolean","title":"Teleconsultation","default":false}},"type":"object","required":["person_code","specialty_code"],"title":"PublicPractitionerResponse","description":"Public-facing practitioner info (no sensitive data)."},"PublicResumeResponse":{"properties":{"slug":{"type":"string","title":"Slug"},"person_code":{"type":"string","title":"Person Code"},"resume_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resume Json"},"sections_included":{"items":{"type":"string"},"type":"array","title":"Sections Included","default":[]},"completeness_score":{"type":"integer","title":"Completeness Score","default":0},"generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Generated At"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"}},"type":"object","required":["slug","person_code"],"title":"PublicResumeResponse","description":"Public view of a resume (no sensitive data)."},"RecommendationAdopt":{"properties":{"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"},"rating":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Rating"}},"type":"object","title":"RecommendationAdopt","description":"Schema for adopting a recommendation."},"RecommendationConstantsResponse":{"properties":{"statuses":{"items":{"type":"string"},"type":"array","title":"Statuses"},"recommender_types":{"items":{"type":"string"},"type":"array","title":"Recommender Types"},"complexity_levels":{"items":{"type":"string"},"type":"array","title":"Complexity Levels"},"platform_categories":{"items":{"type":"string"},"type":"array","title":"Platform Categories"},"platform_types":{"items":{"type":"string"},"type":"array","title":"Platform Types"}},"type":"object","title":"RecommendationConstantsResponse","description":"Response with available constants."},"RecommendationEvaluate":{"properties":{"enterprise_feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprise Feedback"},"enterprise_rating":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Enterprise Rating"}},"type":"object","title":"RecommendationEvaluate","description":"Schema for evaluating a recommendation."},"RecommendationReject":{"properties":{"reason":{"type":"string","title":"Reason","description":"Reason for rejection"}},"type":"object","required":["reason"],"title":"RecommendationReject","description":"Schema for rejecting a recommendation."},"RejectCandidacyRequest":{"properties":{"reason":{"type":"string","title":"Reason","description":"Rejection reason code: insufficient_experience, residency_issue, etc."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Message to the candidate"}},"type":"object","required":["reason"],"title":"RejectCandidacyRequest","description":"Request to reject a candidacy."},"RejectCandidacyResponse":{"properties":{"status":{"type":"string","title":"Status","default":"rejected"},"can_reapply_after":{"type":"string","format":"date-time","title":"Can Reapply After"},"notification_sent":{"type":"boolean","title":"Notification Sent","default":true}},"type":"object","required":["can_reapply_after"],"title":"RejectCandidacyResponse","description":"Response after rejecting candidacy."},"ResumeGenerate":{"properties":{"resume_json":{"type":"string","title":"Resume Json"},"sections_included":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sections Included","default":[]},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibility","default":"PUBLIC"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"}},"type":"object","required":["resume_json"],"title":"ResumeGenerate","description":"Schema for generating/publishing a resume."},"ResumeGenerateResponse":{"properties":{"resume_code":{"type":"string","title":"Resume Code"},"slug":{"type":"string","title":"Slug"},"completeness_score":{"type":"integer","title":"Completeness Score"},"status":{"type":"string","title":"Status"},"url":{"type":"string","title":"Url"}},"type":"object","required":["resume_code","slug","completeness_score","status","url"],"title":"ResumeGenerateResponse","description":"Response after generating a resume."},"ResumeResponse":{"properties":{"resume_id":{"type":"string","format":"uuid","title":"Resume Id"},"resume_code":{"type":"string","title":"Resume Code"},"slug":{"type":"string","title":"Slug"},"person_code":{"type":"string","title":"Person Code"},"person_id":{"type":"string","format":"uuid","title":"Person Id"},"country_code":{"type":"string","title":"Country Code"},"resume_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resume Json"},"sections_included":{"items":{"type":"string"},"type":"array","title":"Sections Included","default":[]},"completeness_score":{"type":"integer","title":"Completeness Score","default":0},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"status":{"type":"string","title":"Status","default":"DRAFT"},"is_searchable":{"type":"boolean","title":"Is Searchable","default":false},"generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Generated At"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"view_count":{"type":"integer","title":"View Count","default":0},"download_count":{"type":"integer","title":"Download Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["resume_id","resume_code","slug","person_code","person_id","country_code","created_at"],"title":"ResumeResponse"},"ResumeUpdate":{"properties":{"visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibility"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"is_searchable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Searchable"}},"type":"object","title":"ResumeUpdate","description":"Schema for updating resume metadata."},"RevokeAmbassadorRequest":{"properties":{"reason":{"type":"string","title":"Reason","description":"Reason for revocation"},"ban_reapplication_days":{"type":"integer","minimum":0.0,"title":"Ban Reapplication Days","description":"Days before they can reapply","default":365}},"type":"object","required":["reason"],"title":"RevokeAmbassadorRequest","description":"Request to revoke an Ambassador Country."},"RevokeAmbassadorResponse":{"properties":{"status":{"type":"string","title":"Status","default":"revoked"},"country_code":{"type":"string","title":"Country Code"},"country_now_vacant":{"type":"boolean","title":"Country Now Vacant","default":true}},"type":"object","required":["country_code"],"title":"RevokeAmbassadorResponse","description":"Response after revoking ambassador."},"RoleDefinition":{"properties":{"role_type":{"type":"string","title":"Role Type"},"scope_type":{"type":"string","title":"Scope Type"},"role_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Label"},"source":{"type":"string","title":"Source","default":"seed"}},"type":"object","required":["role_type","scope_type"],"title":"RoleDefinition"},"SavedPortfolio":{"properties":{"portfolio_id":{"type":"string","title":"Portfolio Id"},"name":{"type":"string","title":"Name"},"template_id":{"type":"string","title":"Template Id"},"format":{"type":"string","title":"Format"},"is_default":{"type":"boolean","title":"Is Default","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"view_count":{"type":"integer","title":"View Count","default":0}},"type":"object","required":["portfolio_id","name","template_id","format","created_at"],"title":"SavedPortfolio","description":"Schema for a saved portfolio."},"SavedPortfolioListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"portfolios":{"items":{"$ref":"#/components/schemas/SavedPortfolio"},"type":"array","title":"Portfolios"},"total_count":{"type":"integer","title":"Total Count"},"max_portfolios_allowed":{"type":"integer","title":"Max Portfolios Allowed","default":5}},"type":"object","required":["person_code","portfolios","total_count"],"title":"SavedPortfolioListResponse","description":"Response for listing saved portfolios."},"SchoolCategoryCreate":{"properties":{"category_code":{"type":"string","title":"Category Code"},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"order":{"type":"integer","title":"Order"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["category_code","name_fr","order"],"title":"SchoolCategoryCreate","description":"Schema for creating a SchoolCategory."},"SchoolCategoryListResponse":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/SchoolCategoryResponse"},"type":"array","title":"Categories"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["categories","total_count"],"title":"SchoolCategoryListResponse","description":"Schema for listing school categories."},"SchoolCategoryResponse":{"properties":{"category_code":{"type":"string","title":"Category Code"},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"order":{"type":"integer","title":"Order"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["category_code","name_fr","order","created_at"],"title":"SchoolCategoryResponse","description":"Schema for SchoolCategory response."},"SchoolCreate":{"properties":{"moral_company_name":{"type":"string","minLength":2,"title":"Moral Company Name","description":"Nom de l'etablissement"},"country_primary_residence_code":{"type":"string","maxLength":3,"minLength":2,"title":"Country Primary Residence Code"},"hierarchical_city_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hierarchical City Code"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code"},"public_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Address"},"moral_industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Industry"},"moral_subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Subcategory"},"public_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Phone"},"public_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Email"},"moral_website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Website"}},"type":"object","required":["moral_company_name","country_primary_residence_code"],"title":"SchoolCreate","description":"Schema for creating an EDUCATION MORAL person (school)."},"SchoolYearListResponse":{"properties":{"country_code":{"type":"string","title":"Country Code"},"school_years":{"items":{"$ref":"#/components/schemas/SchoolYearResponse"},"type":"array","title":"School Years"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["country_code","school_years","total_count"],"title":"SchoolYearListResponse","description":"Schema for listing school years."},"SchoolYearResponse":{"properties":{"country_code":{"type":"string","title":"Country Code"},"school_year_code":{"type":"string","title":"School Year Code"},"label_fr":{"type":"string","title":"Label Fr"},"label_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label En"},"start_year":{"type":"integer","title":"Start Year"},"end_year":{"type":"integer","title":"End Year"},"start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"},"is_current":{"type":"boolean","title":"Is Current","default":false},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["country_code","school_year_code","label_fr","start_year","end_year","created_at"],"title":"SchoolYearResponse","description":"Schema for SchoolYear response."},"SeedOrgResponse":{"properties":{"status":{"type":"string","title":"Status"},"person_code":{"type":"string","title":"Person Code"},"person_id":{"type":"string","title":"Person Id"},"datakey":{"type":"string","title":"Datakey"},"moral_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moral Name"}},"type":"object","required":["status","person_code","person_id","datakey"],"title":"SeedOrgResponse"},"SeedRolesRequest":{"properties":{"person_code":{"type":"string","title":"Person Code"},"country_code":{"type":"string","title":"Country Code"},"scope_code":{"type":"string","title":"Scope Code"},"roles":{"items":{"$ref":"#/components/schemas/RoleDefinition"},"type":"array","title":"Roles"}},"type":"object","required":["person_code","country_code","scope_code","roles"],"title":"SeedRolesRequest"},"SeedRolesResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"created":{"type":"integer","title":"Created"},"skipped":{"type":"integer","title":"Skipped"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"}},"type":"object","required":["person_code","created","skipped","errors"],"title":"SeedRolesResponse"},"SelfValidateIdentityResponse":{"properties":{"status":{"type":"string","title":"Status","default":"verified"},"verification_level":{"type":"integer","title":"Verification Level","default":2},"citizen_journey_activated":{"type":"boolean","title":"Citizen Journey Activated","default":true},"validated_by":{"type":"string","title":"Validated By","default":"self (superuser privilege)"}},"type":"object","title":"SelfValidateIdentityResponse","description":"Response after self-validating identity."},"SharedPortfolioView":{"properties":{"share_id":{"type":"string","title":"Share Id"},"portfolio_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Portfolio Html"},"pdf_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf Url"},"verification_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Code"},"is_verified":{"type":"boolean","title":"Is Verified","default":true},"shared_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shared By"},"shared_at":{"type":"string","format":"date-time","title":"Shared At"}},"type":"object","required":["share_id","shared_at"],"title":"SharedPortfolioView","description":"Schema for viewing a shared portfolio."},"SimulationStatusResponse":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"status":{"type":"string","title":"Status"},"total_files":{"type":"integer","title":"Total Files","default":0},"processed_files":{"type":"integer","title":"Processed Files","default":0},"successful":{"type":"integer","title":"Successful","default":0},"failed":{"type":"integer","title":"Failed","default":0},"progress_percent":{"type":"integer","title":"Progress Percent","default":0},"stats":{"additionalProperties":true,"type":"object","title":"Stats","default":{}},"errors":{"items":{},"type":"array","title":"Errors","default":[]},"current_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current File"},"start_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Time"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"}},"type":"object","required":["status"],"title":"SimulationStatusResponse","description":"Response for simulation status."},"SkillBulkCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"skills":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Skills"},"source":{"type":"string","title":"Source","default":"declaration"}},"type":"object","required":["person_code","skills"],"title":"SkillBulkCreate","description":"Schema for bulk creating skills."},"SkillCreate":{"properties":{"person_code":{"type":"string","title":"Person Code"},"skill_name":{"type":"string","title":"Skill Name"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"skill_level":{"type":"string","title":"Skill Level","default":"INTERMEDIATE"},"years_experience":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Experience"},"proficiency_score":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Proficiency Score"},"source":{"type":"string","title":"Source","default":"declaration"}},"type":"object","required":["person_code","skill_name"],"title":"SkillCreate","description":"Schema for creating a skill."},"SkillItem":{"properties":{"skill_name":{"type":"string","title":"Skill Name"},"skill_level":{"type":"string","title":"Skill Level"},"years_experience":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Experience"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},"type":"object","required":["skill_name","skill_level"],"title":"SkillItem","description":"Single skill."},"SkillListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"skills":{"items":{"$ref":"#/components/schemas/SkillResponse"},"type":"array","title":"Skills"},"total_count":{"type":"integer","title":"Total Count"},"by_category":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Category"},"by_level":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Level"}},"type":"object","required":["person_code","skills","total_count"],"title":"SkillListResponse","description":"Schema for listing skills."},"SkillResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"skill_name":{"type":"string","title":"Skill Name"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"skill_level":{"type":"string","title":"Skill Level","default":"INTERMEDIATE"},"years_experience":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Experience"},"proficiency_score":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Proficiency Score"},"source":{"type":"string","title":"Source","default":"declaration"},"skill_id":{"type":"string","format":"uuid","title":"Skill Id"},"country_code":{"type":"string","title":"Country Code"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"endorsed_count":{"type":"integer","title":"Endorsed Count","default":0},"visibility":{"type":"string","title":"Visibility","default":"PUBLIC"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"datakey":{"type":"string","title":"Datakey"}},"type":"object","required":["person_code","skill_name","skill_id","country_code","created_at","datakey"],"title":"SkillResponse","description":"Schema for skill response."},"SkillUpdate":{"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"skill_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skill Level"},"years_experience":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years Experience"},"proficiency_score":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Proficiency Score"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"}},"type":"object","title":"SkillUpdate","description":"Schema for updating a skill - all fields optional."},"SocialBenefitCreate":{"properties":{"benefit_code":{"type":"string","title":"Benefit Code","description":"Benefit code (e.g., RSA, AAH, CMU, APL)"},"benefit_name":{"type":"string","title":"Benefit Name","description":"Benefit name"},"benefit_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benefit Description"},"benefit_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benefit Category","description":"Category: income_support, housing, health, family"},"monthly_amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Monthly Amount"},"currency":{"type":"string","title":"Currency","default":"EUR"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"provider_organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Organization"},"reference_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Number"},"household_composition":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Household Composition"},"children_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Children Count"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code","description":"Person code (set automatically from URL)"}},"type":"object","required":["benefit_code","benefit_name","start_date"],"title":"SocialBenefitCreate","description":"Schema for creating a social benefit."},"SocialBenefitListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"benefits":{"items":{"$ref":"#/components/schemas/SocialBenefitResponse"},"type":"array","title":"Benefits"},"total_count":{"type":"integer","title":"Total Count"},"active_count":{"type":"integer","title":"Active Count","default":0},"total_monthly_amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Monthly Amount"},"by_category":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"By Category"}},"type":"object","required":["person_code","benefits","total_count"],"title":"SocialBenefitListResponse","description":"Schema for list of social benefits."},"SocialBenefitResponse":{"properties":{"benefit_id":{"type":"string","format":"uuid","title":"Benefit Id"},"person_code":{"type":"string","title":"Person Code"},"benefit_code":{"type":"string","title":"Benefit Code"},"benefit_name":{"type":"string","title":"Benefit Name"},"benefit_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benefit Description"},"benefit_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benefit Category"},"is_active":{"type":"boolean","title":"Is Active","default":true},"status":{"type":"string","title":"Status","default":"ACTIVE"},"monthly_amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Monthly Amount"},"annual_amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Annual Amount"},"currency":{"type":"string","title":"Currency","default":"EUR"},"start_date":{"type":"string","format":"date","title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"last_payment_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Payment Date"},"next_payment_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Next Payment Date"},"renewal_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Renewal Date"},"provider_organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Organization"},"reference_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Number"},"household_composition":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Household Composition"},"children_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Children Count"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["benefit_id","person_code","benefit_code","benefit_name","start_date","created_at"],"title":"SocialBenefitResponse","description":"Schema for social benefit response."},"SocialBenefitUpdate":{"properties":{"benefit_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benefit Name"},"benefit_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benefit Description"},"benefit_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benefit Category"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"monthly_amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Monthly Amount"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"last_payment_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Payment Date"},"next_payment_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Next Payment Date"},"renewal_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Renewal Date"},"provider_organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Organization"},"household_composition":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Household Composition"},"children_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Children Count"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"SocialBenefitUpdate","description":"Schema for updating a social benefit."},"SocialBenefitsSummary-Input":{"properties":{"person_code":{"type":"string","title":"Person Code"},"rsa":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rsa"},"aah":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Aah"},"cmu":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cmu"},"apl":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Apl"},"allocations_familiales":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Allocations Familiales"},"prime_activite":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Prime Activite"},"other_benefits":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Other Benefits"},"total_monthly_income":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Monthly Income"}},"type":"object","required":["person_code"],"title":"SocialBenefitsSummary","description":"Summary schema for all social benefits of a person."},"SocialBenefitsSummary-Output":{"properties":{"person_code":{"type":"string","title":"Person Code"},"rsa":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rsa"},"aah":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Aah"},"cmu":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cmu"},"apl":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Apl"},"allocations_familiales":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Allocations Familiales"},"prime_activite":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Prime Activite"},"other_benefits":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Other Benefits"},"total_monthly_income":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Monthly Income"}},"type":"object","required":["person_code"],"title":"SocialBenefitsSummary","description":"Summary schema for all social benefits of a person."},"SubjectListResponse":{"properties":{"subjects":{"items":{"$ref":"#/components/schemas/SubjectResponse"},"type":"array","title":"Subjects"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["subjects","total_count"],"title":"SubjectListResponse","description":"Schema for listing subjects."},"SubjectNormalizationRequest":{"properties":{"input_name":{"type":"string","title":"Input Name"}},"type":"object","required":["input_name"],"title":"SubjectNormalizationRequest","description":"Schema for normalizing a subject name."},"SubjectNormalizationResponse":{"properties":{"input_name":{"type":"string","title":"Input Name"},"subject_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Code"},"subject":{"anyOf":[{"$ref":"#/components/schemas/SubjectResponse"},{"type":"null"}]},"found":{"type":"boolean","title":"Found","default":false}},"type":"object","required":["input_name"],"title":"SubjectNormalizationResponse","description":"Schema for normalized subject response."},"SubjectResponse":{"properties":{"subject_code":{"type":"string","title":"Subject Code"},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"domain":{"type":"string","title":"Domain"},"subdomain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subdomain"},"profile_code":{"type":"string","title":"Profile Code"},"platform_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Platform Codes"},"platform_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Code"},"platform_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Name"},"platform_url_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url Template"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"levels_applicable":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Levels Applicable"},"tracks_applicable":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tracks Applicable"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["subject_code","name_fr","domain","profile_code","created_at"],"title":"SubjectResponse","description":"Schema for Subject response."},"SubmitAmbassadorCandidacyRequest":{"properties":{"motivation":{"type":"string","maxLength":3000,"minLength":100,"title":"Motivation","description":"Motivation text explaining why the candidate wants to become Ambassador Country"},"experience":{"type":"string","maxLength":2000,"minLength":100,"title":"Experience","description":"Experience description relevant to the role"},"availability":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Availability","description":"Weekly availability (e.g., {'monday': true, 'tuesday': false, ...})"},"documents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Documents","description":"List of document URLs or IDs"}},"type":"object","required":["motivation","experience","availability"],"title":"SubmitAmbassadorCandidacyRequest","description":"Request to submit Ambassador Country candidacy."},"SubmitAmbassadorLevelCandidacyRequest":{"properties":{"motivation":{"type":"string","maxLength":3000,"minLength":50,"title":"Motivation","description":"Motivation text"},"experience":{"type":"string","maxLength":2000,"minLength":50,"title":"Experience","description":"Experience description"},"availability":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Availability","description":"Weekly availability"},"documents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Documents","description":"Document URLs"},"zone_name":{"type":"string","title":"Zone Name","description":"Human-readable zone name (e.g., Paris, Île-de-France)"},"region_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Code","description":"Region code (required for region/department)"},"region_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Name","description":"Region name"},"department_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Code","description":"Department code (required for department/city)"},"department_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Name","description":"Department name"},"city_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City Code","description":"City code (required for city)"},"city_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City Name","description":"City name"}},"type":"object","required":["motivation","experience","availability","zone_name"],"title":"SubmitAmbassadorLevelCandidacyRequest","description":"Request to submit Ambassador City/Department/Region candidacy."},"SubscriptionCreate":{"properties":{"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"node_code":{"type":"string","title":"Node Code"},"domain":{"type":"string","title":"Domain"},"role_in_node":{"type":"string","title":"Role In Node"},"subscription_type":{"type":"string","title":"Subscription Type"},"source_phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Phase"},"source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Id"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},"type":"object","required":["country_code","person_code","node_code","domain","role_in_node","subscription_type"],"title":"SubscriptionCreate","description":"POST /system/convergence/subscribe — create a subscription."},"SubscriptionResponse":{"properties":{"subscription_id":{"type":"string","title":"Subscription Id"},"person_code":{"type":"string","title":"Person Code"},"node_code":{"type":"string","title":"Node Code"},"domain":{"type":"string","title":"Domain"},"role_in_node":{"type":"string","title":"Role In Node"},"subscription_type":{"type":"string","title":"Subscription Type"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"},"is_active":{"type":"boolean","title":"Is Active","default":true},"source_phase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Phase"},"metadata":{"additionalProperties":{"type":"string"},"type":"object","title":"Metadata"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"convergence_detected":{"items":{"$ref":"#/components/schemas/ConvergenceMatchResponse"},"type":"array","title":"Convergence Detected"},"already_exists":{"type":"boolean","title":"Already Exists","default":false}},"type":"object","required":["subscription_id","person_code","node_code","domain","role_in_node","subscription_type"],"title":"SubscriptionResponse","description":"Response for a single subscription."},"SuspendAmbassadorRequest":{"properties":{"reason":{"type":"string","title":"Reason","description":"Reason for suspension"},"duration_days":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Duration Days","description":"Suspension duration in days","default":30}},"type":"object","required":["reason"],"title":"SuspendAmbassadorRequest","description":"Request to suspend an Ambassador Country."},"SuspendAmbassadorResponse":{"properties":{"status":{"type":"string","title":"Status","default":"suspended"},"suspended_until":{"type":"string","format":"date-time","title":"Suspended Until"}},"type":"object","required":["suspended_until"],"title":"SuspendAmbassadorResponse","description":"Response after suspending ambassador."},"SyncChange":{"properties":{"field":{"type":"string","title":"Field"},"old_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Value"},"new_value":{"type":"string","title":"New Value"}},"type":"object","required":["field","old_value","new_value"],"title":"SyncChange","description":"A single change made during sync."},"SyncReport":{"properties":{"executed_at":{"type":"string","title":"Executed At"},"duration_seconds":{"type":"number","title":"Duration Seconds"},"mode":{"type":"string","title":"Mode"},"total_checked":{"type":"integer","title":"Total Checked"},"discrepancies_found":{"type":"integer","title":"Discrepancies Found"},"discrepancies_fixed":{"type":"integer","title":"Discrepancies Fixed"},"details":{"items":{"$ref":"#/components/schemas/SyncReportItem"},"type":"array","title":"Details"},"errors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Errors"}},"type":"object","required":["executed_at","duration_seconds","mode","total_checked","discrepancies_found","discrepancies_fixed","details","errors"],"title":"SyncReport","description":"Report after manual sync operation."},"SyncReportItem":{"properties":{"person_code":{"type":"string","title":"Person Code"},"identity_user_id":{"type":"string","title":"Identity User Id"},"discrepancies":{"items":{"$ref":"#/components/schemas/SyncChange"},"type":"array","title":"Discrepancies"},"action":{"type":"string","title":"Action"}},"type":"object","required":["person_code","identity_user_id","discrepancies","action"],"title":"SyncReportItem","description":"Report item for a single person sync."},"SyncResponse":{"properties":{"status":{"type":"string","title":"Status"},"person_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Code"},"changes_applied":{"items":{"$ref":"#/components/schemas/SyncChange"},"type":"array","title":"Changes Applied","default":[]},"message":{"type":"string","title":"Message"}},"type":"object","required":["status","message"],"title":"SyncResponse","description":"Response after sync operation."},"SystemAutoGrantCitizenRequest":{"properties":{"person_code":{"type":"string","title":"Person Code","description":"Person code"},"country_code":{"type":"string","title":"Country Code","description":"Country code"},"verification_level":{"type":"integer","minimum":2.0,"title":"Verification Level","description":"Verification level (must be >= 2)"}},"type":"object","required":["person_code","country_code","verification_level"],"title":"SystemAutoGrantCitizenRequest","description":"Request for system auto-grant of citizen journey."},"SystemAutoGrantProjectAmbassadorRequest":{"properties":{"person_code":{"type":"string","title":"Person Code","description":"Person code"},"country_code":{"type":"string","title":"Country Code","description":"Country code"},"proof_data":{"additionalProperties":true,"type":"object","title":"Proof Data","description":"All 27 proof field values"}},"type":"object","required":["person_code","country_code","proof_data"],"title":"SystemAutoGrantProjectAmbassadorRequest","description":"Request for system auto-grant of project_ambassador journey."},"TechnologyCostsResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"total_monthly_cost":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Total Monthly Cost"},"total_annual_cost":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Total Annual Cost"},"cost_currency":{"type":"string","title":"Cost Currency"},"by_category":{"additionalProperties":true,"type":"object","title":"By Category"},"by_platform":{"additionalProperties":true,"type":"object","title":"By Platform"}},"type":"object","required":["person_code","total_monthly_cost","total_annual_cost","cost_currency","by_category","by_platform"],"title":"TechnologyCostsResponse","description":"Summary of technology costs."},"TechnologyStackCreate":{"properties":{"platform_name":{"type":"string","title":"Platform Name","description":"Name of the platform"},"platform_category":{"type":"string","title":"Platform Category","description":"Category from PLATFORM_CATEGORIES"},"platform_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Type"},"platform_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Version"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"primary_use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Use Case"},"processes_supported":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Processes Supported","description":"process_codes supported"},"user_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Count"},"usage_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Frequency"},"cost_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Model"},"monthly_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Monthly Cost"},"annual_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Annual Cost"},"cost_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Currency","default":"XAF"},"satisfaction_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Satisfaction Score"},"performance_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Performance Score"},"ease_of_use_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Ease Of Use Score"},"issues":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Issues"},"missing_features":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Missing Features"},"integrated_with":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Integrated With"},"integration_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Quality"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"ACTIVE"},"replacement_planned":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replacement Planned","default":false},"replacement_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replacement Target"},"adoption_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Adoption Date"},"contract_end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End Date"}},"type":"object","required":["platform_name","platform_category"],"title":"TechnologyStackCreate","description":"Schema for adding a technology to the stack."},"TechnologyStackListResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"technologies":{"items":{"$ref":"#/components/schemas/TechnologyStackResponse"},"type":"array","title":"Technologies"},"total_count":{"type":"integer","title":"Total Count"},"total_monthly_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Monthly Cost"},"total_annual_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Annual Cost"},"by_category":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Category"},"by_status":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"By Status"}},"type":"object","required":["person_code","technologies","total_count"],"title":"TechnologyStackListResponse","description":"List response for technology stack."},"TechnologyStackResponse":{"properties":{"tech_id":{"type":"string","format":"uuid","title":"Tech Id"},"person_code":{"type":"string","title":"Person Code"},"platform_name":{"type":"string","title":"Platform Name"},"platform_category":{"type":"string","title":"Platform Category"},"platform_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Type"},"platform_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Version"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"primary_use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Use Case"},"processes_supported":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Processes Supported"},"user_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Count"},"usage_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Frequency"},"cost_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Model"},"monthly_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Monthly Cost"},"annual_cost":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Annual Cost"},"cost_currency":{"type":"string","title":"Cost Currency","default":"XAF"},"satisfaction_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Satisfaction Score"},"performance_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Performance Score"},"ease_of_use_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ease Of Use Score"},"average_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Score"},"issues":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Issues"},"missing_features":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Missing Features"},"integrated_with":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Integrated With"},"integration_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Quality"},"status":{"type":"string","title":"Status","default":"ACTIVE"},"replacement_planned":{"type":"boolean","title":"Replacement Planned","default":false},"replacement_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replacement Target"},"adoption_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Adoption Date"},"contract_end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End Date"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["tech_id","person_code","platform_name","platform_category","created_at"],"title":"TechnologyStackResponse","description":"Response schema for technology stack entry."},"TechnologyStackUpdate":{"properties":{"platform_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Name"},"platform_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Category"},"platform_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Type"},"platform_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Version"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url"},"primary_use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Use Case"},"processes_supported":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Processes Supported"},"user_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Count"},"usage_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Frequency"},"cost_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Model"},"monthly_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Monthly Cost"},"annual_cost":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Annual Cost"},"cost_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Currency"},"satisfaction_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Satisfaction Score"},"performance_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Performance Score"},"ease_of_use_score":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Ease Of Use Score"},"issues":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Issues"},"missing_features":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Missing Features"},"integrated_with":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Integrated With"},"integration_quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Quality"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"replacement_planned":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Replacement Planned"},"replacement_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replacement Target"},"contract_end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End Date"}},"type":"object","title":"TechnologyStackUpdate","description":"Schema for updating a technology entry."},"TimelineEntry":{"properties":{"education_id":{"type":"string","format":"uuid","title":"Education Id"},"education_code":{"type":"string","title":"Education Code"},"school_year_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Year Code"},"school_year_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"School Year Label"},"start_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Year"},"institution_name":{"type":"string","title":"Institution Name"},"institution_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Institution Id"},"education_level_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Code"},"education_level_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Level Name"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"track_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Code"},"track_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Name"},"subjects":{"items":{"$ref":"#/components/schemas/TimelineSubject"},"type":"array","title":"Subjects","default":[]},"is_current":{"type":"boolean","title":"Is Current","default":false},"is_verified":{"type":"boolean","title":"Is Verified","default":false}},"type":"object","required":["education_id","education_code","institution_name"],"title":"TimelineEntry","description":"A single year entry in the education timeline."},"TimelineGap":{"properties":{"school_year_code":{"type":"string","title":"School Year Code"},"label":{"type":"string","title":"Label"},"start_year":{"type":"integer","title":"Start Year"}},"type":"object","required":["school_year_code","label","start_year"],"title":"TimelineGap","description":"A gap (missing year) in the timeline."},"TimelineSubject":{"properties":{"subject_code":{"type":"string","title":"Subject Code"},"name_fr":{"type":"string","title":"Name Fr"},"is_major":{"type":"boolean","title":"Is Major","default":false}},"type":"object","required":["subject_code","name_fr"],"title":"TimelineSubject","description":"Subject within a timeline entry."},"TrackListResponse":{"properties":{"tracks":{"items":{"$ref":"#/components/schemas/TrackResponse"},"type":"array","title":"Tracks"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["tracks","total_count"],"title":"TrackListResponse","description":"Schema for listing tracks."},"TrackResponse":{"properties":{"track_code":{"type":"string","title":"Track Code"},"name_fr":{"type":"string","title":"Name Fr"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"levels_applicable":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Levels Applicable"},"typical_subjects":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Typical Subjects"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["track_code","name_fr","created_at"],"title":"TrackResponse","description":"Schema for Track response."},"TriggerMatchingRequest":{"properties":{"mode":{"type":"string","title":"Mode","description":"Mode: 'all' (all profiles), 'specific' (selected profiles), 'new_persons'","default":"all"},"profil_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Profil Codes","description":"Specific profile codes if mode='specific'"},"person_filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Person Filter","description":"Optional filter on persons to scan"},"options":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Options","description":"Job options"}},"type":"object","title":"TriggerMatchingRequest","description":"Request to trigger a matching job.","example":{"mode":"all","options":{"batch_size":100,"dry_run":false},"person_filter":{"country_code":"FR","person_type":"HUMAN"}}},"TutoringEmancipationRequest":{"properties":{"delegation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delegation Id","description":"Delegation UUID from Identity"},"beneficiary_identity_user_id":{"type":"string","format":"uuid","title":"Beneficiary Identity User Id","description":"Beneficiary Identity user UUID"},"ambassador_identity_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Ambassador Identity User Id","description":"Tutor Identity user UUID"},"actor_identity_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Actor Identity User Id","description":"Actor Identity user UUID"},"reason":{"type":"string","title":"Reason","description":"Business reason for emancipation","default":""},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At","description":"UTC timestamp of emancipation"}},"type":"object","required":["beneficiary_identity_user_id"],"title":"TutoringEmancipationRequest","description":"Service payload used by Identity to complete tutoring emancipation."},"TutoringEmancipationResponse":{"properties":{"beneficiary_person_code":{"type":"string","title":"Beneficiary Person Code"},"assisted_profile_found":{"type":"boolean","title":"Assisted Profile Found"},"assisted_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assisted Status"},"closed_connections_count":{"type":"integer","title":"Closed Connections Count"},"message":{"type":"string","title":"Message"}},"type":"object","required":["beneficiary_person_code","assisted_profile_found","closed_connections_count","message"],"title":"TutoringEmancipationResponse"},"UnsubscribeRequest":{"properties":{"country_code":{"type":"string","title":"Country Code"},"person_code":{"type":"string","title":"Person Code"},"node_code":{"type":"string","title":"Node Code"}},"type":"object","required":["country_code","person_code","node_code"],"title":"UnsubscribeRequest","description":"POST /system/convergence/unsubscribe — close a subscription."},"ValidateIdentityS2SRequest":{"properties":{"person_code":{"type":"string","title":"Person Code","description":"Person code to validate"},"country_code":{"type":"string","title":"Country Code","description":"Country code","default":"FR"},"verification_level":{"type":"integer","maximum":5.0,"minimum":0.0,"title":"Verification Level","description":"Target verification level (0-5)"},"validation_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Notes","description":"Notes about the validation"}},"type":"object","required":["person_code","verification_level"],"title":"ValidateIdentityS2SRequest","description":"Request to validate identity via service-to-service.\n\nUsed for initial bootstrap when no Platform Master exists yet."},"ValidateIdentityS2SResponse":{"properties":{"person_code":{"type":"string","title":"Person Code"},"previous_level":{"type":"integer","title":"Previous Level"},"new_level":{"type":"integer","title":"New Level"},"citizen_journey_activated":{"type":"boolean","title":"Citizen Journey Activated"},"message":{"type":"string","title":"Message"}},"type":"object","required":["person_code","previous_level","new_level","citizen_journey_activated","message"],"title":"ValidateIdentityS2SResponse","description":"Response after validating identity."},"ValidateTargetIdentityRequest":{"properties":{"target_person_code":{"type":"string","title":"Target Person Code","description":"Person code of the target to validate"},"country_code":{"type":"string","title":"Country Code","description":"Country code for the validation"},"verification_level":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Verification Level","description":"Verification level to grant (default 2)","default":2},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Reason for override validation"}},"type":"object","required":["target_person_code","country_code"],"title":"ValidateTargetIdentityRequest","description":"Request to validate another person's identity."},"ValidateTargetIdentityResponse":{"properties":{"status":{"type":"string","title":"Status","default":"verified"},"target_person_code":{"type":"string","title":"Target Person Code"},"verification_level":{"type":"integer","title":"Verification Level"},"citizen_journey_activated":{"type":"boolean","title":"Citizen Journey Activated"},"validated_by":{"type":"string","title":"Validated By"}},"type":"object","required":["target_person_code","verification_level","citizen_journey_activated","validated_by"],"title":"ValidateTargetIdentityResponse","description":"Response after validating another person's identity."},"ValidationCreate":{"properties":{"validated":{"type":"boolean","title":"Validated","default":true},"comment":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Comment"},"score":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Score"},"skills_validated":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skills Validated"}},"type":"object","title":"ValidationCreate","description":"Schema for mission validation."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationStatus":{"properties":{"validated":{"type":"boolean","title":"Validated"},"validator_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validator Name"},"validation_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Validation Date"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score"}},"type":"object","required":["validated"],"title":"ValidationStatus","description":"Schema for validation status."},"ValidationTarget":{"properties":{"person_code":{"type":"string","title":"Person Code"},"person_type":{"type":"string","title":"Person Type"},"name":{"type":"string","title":"Name"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"vote_counts":{"$ref":"#/components/schemas/VoteCounts"},"threshold":{"type":"integer","title":"Threshold","default":5}},"type":"object","required":["person_code","person_type","name","created_at","vote_counts"],"title":"ValidationTarget","description":"Schema for entity pending validation."},"ValidatorsListResponse":{"properties":{"target_person_code":{"type":"string","title":"Target Person Code"},"validators":{"items":{"$ref":"#/components/schemas/VoterInfo"},"type":"array","title":"Validators"},"vote_counts":{"$ref":"#/components/schemas/VoteCounts"},"is_validated":{"type":"boolean","title":"Is Validated","default":false},"threshold":{"type":"integer","title":"Threshold","default":5}},"type":"object","required":["target_person_code","validators","vote_counts"],"title":"ValidatorsListResponse","description":"Schema for listing validators of an entity."},"VerificationStep":{"properties":{"step":{"type":"string","title":"Step"},"label":{"type":"string","title":"Label"},"completed":{"type":"boolean","title":"Completed"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["step","label","completed"],"title":"VerificationStep","description":"Etape de verification biometrique."},"VersionInfo":{"properties":{"version":{"type":"string","title":"Version"},"api":{"type":"string","title":"Api"},"commit":{"type":"string","title":"Commit"},"build_date":{"type":"string","title":"Build Date"}},"type":"object","required":["version","api","commit","build_date"],"title":"VersionInfo"},"VoteCounts":{"properties":{"YES":{"type":"integer","title":"Yes","default":0},"NO":{"type":"integer","title":"No","default":0},"ABSTENTION":{"type":"integer","title":"Abstention","default":0},"total":{"type":"integer","title":"Total","default":0}},"type":"object","title":"VoteCounts","description":"Schema for vote counts."},"VoteCreate":{"properties":{"vote":{"type":"string","pattern":"^(YES|NO|ABSTENTION)$","title":"Vote"},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"},"confidence_level":{"anyOf":[{"type":"string","pattern":"^(HIGH|MEDIUM|LOW)$"},{"type":"null"}],"title":"Confidence Level","default":"MEDIUM"}},"type":"object","required":["vote"],"title":"VoteCreate","description":"Schema for creating a vote."},"VoteResponse":{"properties":{"vote_id":{"type":"string","format":"uuid","title":"Vote Id"},"target_person_code":{"type":"string","title":"Target Person Code"},"voter_person_code":{"type":"string","title":"Voter Person Code"},"voter_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voter Display Name"},"vote":{"type":"string","title":"Vote"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"confidence_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence Level"},"voted_at":{"type":"string","format":"date-time","title":"Voted At"}},"type":"object","required":["vote_id","target_person_code","voter_person_code","vote","voted_at"],"title":"VoteResponse","description":"Schema for vote response."},"VoterInfo":{"properties":{"voter_person_code":{"type":"string","title":"Voter Person Code"},"voter_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voter Display Name"},"vote":{"type":"string","title":"Vote"},"voted_at":{"type":"string","format":"date-time","title":"Voted At"}},"type":"object","required":["voter_person_code","vote","voted_at"],"title":"VoterInfo","description":"Schema for voter info in list."}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}