{"openapi":"3.1.0","info":{"title":"PromptsDirectory API","description":"API REST pour centraliser et gérer les prompts, scripts et configurations avec intégration AI RAG. Documentation structurée (endpoints, auth, rate limit) : **GET /api/v1/docs/api**. Interface docs complète dans l'app frontend : **/docs** (onglet API Documentation).","version":"1.0.0"},"paths":{"/api/v1/rate-limit":{"get":{"tags":["system"],"summary":"Rate limit status","description":"Retourne l'état actuel des limites de taux pour le client (IP).\nCet endpoint n'est pas soumis au rate limiting.","operationId":"rate_limit_status_api_v1_rate_limit_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/observability/prometheus":{"get":{"tags":["system"],"summary":"Prometheus scrape (alias monitoring stack)","description":"Endpoint au format Prometheus (texte). Exposé seulement si ENABLE_METRICS=true.\nProtégé par Bearer METRICS_TOKEN lorsque le secret est défini.","operationId":"prometheus_metrics_observability_prometheus_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitoring/metrics":{"get":{"tags":["system"],"summary":"Prometheus metrics","description":"Endpoint au format Prometheus (texte). Exposé seulement si ENABLE_METRICS=true.\nProtégé par Bearer METRICS_TOKEN lorsque le secret est défini.","operationId":"prometheus_metrics_api_monitoring_metrics_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/metrics":{"get":{"tags":["system"],"summary":"Prometheus metrics (legacy path)","description":"Endpoint au format Prometheus (texte). Exposé seulement si ENABLE_METRICS=true.\nProtégé par Bearer METRICS_TOKEN lorsque le secret est défini.","operationId":"prometheus_metrics_metrics_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/live":{"get":{"tags":["system"],"summary":"Liveness alias (Cloud Run — /healthz bloqué côté GFE)","description":"Sonde légère : le process répond (Cloud Run liveness).","operationId":"healthz_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/healthz":{"get":{"tags":["system"],"summary":"Liveness (process only)","description":"Sonde légère : le process répond (Cloud Run liveness).","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["system"],"summary":"Health Check","description":"Santé process + DB.\nSi DATABASE_URL est configurée et inaccessible → 503 afin de ne jamais\nrouter le trafic vers une instance incapable de servir les données persistées.","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ready":{"get":{"tags":["system"],"summary":"Readiness (database + catalogue)","description":"Sonde utilisée par make deploy-db / Cloud Run — ne révèle pas le DSN.","operationId":"ready_check_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health":{"get":{"tags":["system"],"summary":"Health Check (API path)","description":"Alias aligné sur /health (inclut le ping DB).","operationId":"api_health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/observability":{"get":{"tags":["system"],"summary":"Observability endpoints info","description":"Décrit les endpoints d'observabilité : métriques, santé, tracing (Langfuse-ready).","operationId":"observability_info_api_observability_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api":{"get":{"tags":["system"],"summary":"Redirection de /api vers /","description":"Redirige l'ancien chemin `/api` vers la racine `/`.","operationId":"redirect_api_to_root_api_get","responses":{"301":{"description":"Successful Response"}}}},"/api/v1/prompts":{"get":{"tags":["prompts","prompts"],"summary":"List Prompts","description":"Liste publique : contenus indexés depuis data_prompts_knowledge/ (même jeu que /knowledge).\nLa base en mémoire prompts_db reste utilisée pour /mine et le CRUD utilisateur.","operationId":"list_prompts_api_v1_prompts_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Query de recherche","default":"","title":"Q"},"description":"Query de recherche"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par catégorie","title":"Category"},"description":"Filtrer par catégorie"},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par type: prompt, rule, mcp, skill","title":"Kind"},"description":"Filtrer par type: prompt, rule, mcp, skill"},{"name":"author","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par auteur (username)","title":"Author"},"description":"Filtrer par auteur (username)"},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string","description":"Trier par: trending, rating, newest, popular, favorites","default":"trending","title":"Sortby"},"description":"Trier par: trending, rating, newest, popular, favorites"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":20,"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/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["prompts","prompts"],"summary":"Create Prompt","description":"Créer un nouvel élément (prompt, règle Cursor, MCP, skill).","operationId":"create_prompt_api_v1_prompts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/trending":{"get":{"tags":["prompts","prompts"],"summary":"Get Trending Prompts","description":"Contenus mis en avant depuis data_prompts_knowledge/ (tri par date de fichier).","operationId":"get_trending_prompts_api_v1_prompts_trending_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PromptResponse"},"title":"Response Get Trending Prompts Api V1 Prompts Trending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/category/{category}":{"get":{"tags":["prompts","prompts"],"summary":"Get Prompts By Category","description":"Contenus data_prompts_knowledge/ pour une catégorie (dossier racine).","operationId":"get_prompts_by_category_api_v1_prompts_category__category__get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"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":{"type":"array","items":{"$ref":"#/components/schemas/PromptResponse"},"title":"Response Get Prompts By Category Api V1 Prompts Category  Category  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/knowledge/categories":{"get":{"tags":["prompts","prompts"],"summary":"List Knowledge Categories","description":"Comptages par dossier racine sous data_prompts_knowledge/.","operationId":"list_knowledge_categories_api_v1_prompts_knowledge_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Knowledge Categories Api V1 Prompts Knowledge Categories Get"}}}}}}},"/api/v1/prompts/bootstrap":{"get":{"tags":["prompts","prompts"],"summary":"Get Catalog Bootstrap","description":"Charge en un aller-retour la liste et les métadonnées du catalogue.\n\nCet endpoint est destiné au premier rendu et aux changements de filtre de la\nsidebar. Il évite au navigateur d'attendre quatre requêtes indépendantes.","operationId":"get_catalog_bootstrap_api_v1_prompts_bootstrap_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Recherche titre / description / tags","default":"","title":"Q"},"description":"Recherche titre / description / tags"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"prompt, rule, mcp, skill","title":"Kind"},"description":"prompt, rule, mcp, skill"},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string","default":"trending","title":"Sortby"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":36,"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":{"type":"object","additionalProperties":true,"title":"Response Get Catalog Bootstrap Api V1 Prompts Bootstrap Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/knowledge/reload":{"post":{"tags":["prompts","prompts"],"summary":"Reload Knowledge Index","description":"Recharge l’index depuis le disque (invalide le cache en mémoire).\nAutorisé si : utilisateur JWT **admin**, ou en-tête **X-Knowledge-Reload-Secret**\négal à **KNOWLEDGE_RELOAD_SECRET** (défini dans la config, ex. CI/CD).","operationId":"reload_knowledge_index_api_v1_prompts_knowledge_reload_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-Knowledge-Reload-Secret","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Knowledge-Reload-Secret"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reload Knowledge Index Api V1 Prompts Knowledge Reload Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/knowledge":{"get":{"tags":["prompts","prompts"],"summary":"List Knowledge Prompts","description":"Liste des contenus issus de data_prompts_knowledge/ (.md, .mdc, .txt).\nCatégories = noms des sous-dossiers racine (STREAMLIT, CURSOR, etc.).","operationId":"list_knowledge_prompts_api_v1_prompts_knowledge_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Query de recherche","default":"","title":"Q"},"description":"Query de recherche"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par dossier (catégorie)","title":"Category"},"description":"Filtrer par dossier (catégorie)"},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par type: prompt, rule, mcp, skill","title":"Kind"},"description":"Filtrer par type: prompt, rule, mcp, skill"},{"name":"author","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par auteur (username ou slug knowledge_base pour la base indexée)","title":"Author"},"description":"Filtrer par auteur (username ou slug knowledge_base pour la base indexée)"},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string","description":"Trier par: trending, rating, newest, popular, favorites","default":"trending","title":"Sortby"},"description":"Trier par: trending, rating, newest, popular, favorites"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/facets":{"get":{"tags":["prompts","prompts"],"summary":"Get Catalog Facets","description":"Comptages kinds / catégories / tags pour les filtres du catalogue.","operationId":"get_catalog_facets_api_v1_prompts_facets_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Recherche titre / description / tags","default":"","title":"Q"},"description":"Recherche titre / description / tags"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"prompt, rule, mcp, skill","title":"Kind"},"description":"prompt, rule, mcp, skill"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Catalog Facets Api V1 Prompts Facets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/tags":{"get":{"tags":["prompts","prompts"],"summary":"List Catalog Tags","description":"Tags du catalogue knowledge, avec occurrences.","operationId":"list_catalog_tags_api_v1_prompts_tags_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Catalog Tags Api V1 Prompts Tags Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/random":{"get":{"tags":["prompts","prompts"],"summary":"Get Random Prompt","description":"Un item catalogue au hasard (filtres optionnels).","operationId":"get_random_prompt_api_v1_prompts_random_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/summary":{"get":{"tags":["prompts","prompts"],"summary":"Get Catalog Summary","description":"Totaux du catalogue public (kinds, catégories, tendance).","operationId":"get_catalog_summary_api_v1_prompts_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogSummaryResponse"}}}}}}},"/api/v1/prompts/recent":{"get":{"tags":["prompts","prompts"],"summary":"Get Recent Prompts","description":"Derniers items du catalogue (tri par date de fichier / createdAt).","operationId":"get_recent_prompts_api_v1_prompts_recent_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"prompt, rule, mcp, skill","title":"Kind"},"description":"prompt, rule, mcp, skill"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":40,"minimum":1,"default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/daily":{"get":{"tags":["prompts","prompts"],"summary":"Get Daily Prompt","description":"Sélection déterministe du jour (UTC), optionnellement filtrée par type.","operationId":"get_daily_prompt_api_v1_prompts_daily_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"prompt, rule, mcp, skill","title":"Kind"},"description":"prompt, rule, mcp, skill"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptDailyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/preview":{"post":{"tags":["prompts","prompts"],"summary":"Preview Prompt","description":"Analyse un brouillon : mots, tokens, titres markdown, tags suggérés.","operationId":"preview_prompt_api_v1_prompts_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptPreviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptPreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/mine":{"get":{"tags":["prompts","prompts"],"summary":"List My Prompts","description":"Récupérer la bibliothèque personnelle de l'utilisateur (prompts, rules, MCP, skills).","operationId":"list_my_prompts_api_v1_prompts_mine_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par type: prompt, rule, mcp, skill","title":"Kind"},"description":"Filtrer par type: prompt, rule, mcp, skill"},{"name":"visibility","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrer par visibilité: private | public | unlisted","title":"Visibility"},"description":"Filtrer par visibilité: private | public | unlisted"},{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Recherche","default":"","title":"Q"},"description":"Recherche"},{"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/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/published":{"get":{"tags":["prompts","prompts"],"summary":"List Published Prompts","description":"Feed des publications utilisateur (visibility=public) — hors knowledge kb_*.","operationId":"list_published_prompts_api_v1_prompts_published_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"prompt, rule, mcp, skill","title":"Kind"},"description":"prompt, rule, mcp, skill"},{"name":"author","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string","default":"newest","title":"Sortby"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"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/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/admin/library":{"get":{"tags":["prompts","prompts"],"summary":"Admin List All Library","description":"Admin plateforme : tous les contenus bibliothèque (public + private).","operationId":"admin_list_all_library_api_v1_prompts_admin_library_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"visibility","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"private | public | unlisted","title":"Visibility"},"description":"private | public | unlisted"},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"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":{"$ref":"#/components/schemas/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/authors":{"get":{"tags":["prompts","prompts"],"summary":"Get Catalog Authors","description":"Leaderboard community : auteurs + stats (favoris reçus, score, rang).","operationId":"get_catalog_authors_api_v1_prompts_authors_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":40,"title":"Limit"}},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string","description":"reputation | publications | favorites | rating | trending","default":"reputation","title":"Sortby"},"description":"reputation | publications | favorites | rating | trending"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"description":"Recherche auteur / pseudo","title":"Q"},"description":"Recherche auteur / pseudo"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"all | week | month — fenêtre sur updatedAt/createdAt des items","default":"all","title":"Period"},"description":"all | week | month — fenêtre sur updatedAt/createdAt des items"},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"prompt | rule | mcp | skill — filtre type de contenu","title":"Kind"},"description":"prompt | rule | mcp | skill — filtre type de contenu"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAuthorsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/lookup":{"get":{"tags":["prompts","prompts"],"summary":"Lookup Prompts","description":"Charge plusieurs items catalogue par id (ordre conservé ; respecte la visibilité).","operationId":"lookup_prompts_api_v1_prompts_lookup_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string","description":"Identifiants séparés par des virgules","title":"Ids"},"description":"Identifiants séparés par des virgules"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/compare":{"post":{"tags":["prompts","prompts"],"summary":"Compare Catalog Prompts","description":"Compare deux items (tags communs, métriques, similarité).","operationId":"compare_catalog_prompts_api_v1_prompts_compare_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptCompareRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptCompareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/prompts/export-bundle":{"post":{"tags":["prompts","prompts"],"summary":"Export Prompt Bundle","description":"Export groupé markdown ou JSON (jusqu’à 25 items).","operationId":"export_prompt_bundle_api_v1_prompts_export_bundle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptExportBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptExportBundleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/mine/summary":{"get":{"tags":["prompts","prompts"],"summary":"Get My Library Summary","description":"Comptages de la bibliothèque personnelle par type et visibilité.","operationId":"get_my_library_summary_api_v1_prompts_mine_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibrarySummaryResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/prompts/most-favorited":{"get":{"tags":["prompts","prompts"],"summary":"List Most Favorited Prompts","description":"Top items par nombre de favoris reçus (leaderboard catalogue).","operationId":"list_most_favorited_prompts_api_v1_prompts_most_favorited_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":12,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/top-rated":{"get":{"tags":["prompts","prompts"],"summary":"List Top Rated Prompts","description":"Top items par moyenne de notes utilisateurs (leaderboard).","operationId":"list_top_rated_prompts_api_v1_prompts_top_rated_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":12,"title":"Limit"}},{"name":"min_count","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":1,"title":"Min Count"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/me/ratings":{"get":{"tags":["prompts","prompts"],"summary":"List My Prompt Ratings","description":"Notes catalogue posées par le compte courant (+ items résolus).","operationId":"list_my_prompt_ratings_api_v1_prompts_me_ratings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyRatingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/related":{"get":{"tags":["prompts","prompts"],"summary":"Get Related Prompts","description":"Prompts voisins (même catégorie / tags / type).","operationId":"get_related_prompts_api_v1_prompts__prompt_id__related_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":6,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/detail-bundle":{"get":{"tags":["prompts","prompts"],"summary":"Get Prompt Detail Bundle","description":"Regroupe item, related, stats et neighbors pour ouvrir une fiche en un seul aller-retour.","operationId":"get_prompt_detail_bundle_api_v1_prompts__prompt_id__detail_bundle_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}},{"name":"related_limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":4,"title":"Related Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptDetailBundleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/export":{"get":{"tags":["prompts","prompts"],"summary":"Export Prompt","description":"Export markdown ou JSON d’un item catalogue.","operationId":"export_prompt_api_v1_prompts__prompt_id__export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(markdown|json|zip)$","default":"markdown","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptExportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/share":{"get":{"tags":["prompts","prompts"],"summary":"Share Prompt","description":"Texte + chemin de partage pour un item catalogue.","operationId":"share_prompt_api_v1_prompts__prompt_id__share_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptShareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/stats":{"get":{"tags":["prompts","prompts"],"summary":"Get Prompt Stats","description":"Métriques de contenu + engagement (mots, tokens, note, uses, favoris).","operationId":"get_prompt_stats_api_v1_prompts__prompt_id__stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/report":{"post":{"tags":["prompts","prompts"],"summary":"Report Prompt","description":"Signaler un item catalogue (modération community).","operationId":"report_prompt_api_v1_prompts__prompt_id__report_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptReportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptReportOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/neighbors":{"get":{"tags":["prompts","prompts"],"summary":"Get Prompt Neighbors","description":"Item précédent / suivant dans le catalogue knowledge.","operationId":"get_prompt_neighbors_api_v1_prompts__prompt_id__neighbors_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptNeighborsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/duplicate":{"post":{"tags":["prompts","prompts"],"summary":"Duplicate Prompt","description":"Copie un item catalogue (ou personnel) dans la bibliothèque de l’utilisateur.","operationId":"duplicate_prompt_api_v1_prompts__prompt_id__duplicate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/visibility":{"patch":{"tags":["prompts","prompts"],"summary":"Set Prompt Visibility","description":"Publier (public) ou privatiser un élément de bibliothèque.","operationId":"set_prompt_visibility_api_v1_prompts__prompt_id__visibility_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisibilityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/publish":{"post":{"tags":["prompts","prompts"],"summary":"Publish Prompt","description":"Raccourci : visibility=public (visible catalogue plateforme).","operationId":"publish_prompt_api_v1_prompts__prompt_id__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/unpublish":{"post":{"tags":["prompts","prompts"],"summary":"Unpublish Prompt","description":"Raccourci : visibility=private (owner + admins uniquement).","operationId":"unpublish_prompt_api_v1_prompts__prompt_id__unpublish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}":{"get":{"tags":["prompts","prompts"],"summary":"Get Prompt","description":"Récupérer un prompt spécifique (privé = owner ou admin uniquement).","operationId":"get_prompt_api_v1_prompts__prompt_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["prompts","prompts"],"summary":"Update Prompt","description":"Mettre à jour un prompt.","operationId":"update_prompt_api_v1_prompts__prompt_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["prompts","prompts"],"summary":"Delete Prompt","description":"Supprimer un prompt.","operationId":"delete_prompt_api_v1_prompts__prompt_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/rate":{"post":{"tags":["prompts","prompts"],"summary":"Rate Prompt","description":"Noter un prompt (1–5). Une note par utilisateur ; mise à jour si déjà noté.","operationId":"rate_prompt_api_v1_prompts__prompt_id__rate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["prompts","prompts"],"summary":"Unrate Prompt","description":"Retirer sa note sur un prompt.","operationId":"unrate_prompt_api_v1_prompts__prompt_id__rate_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/rating-breakdown":{"get":{"tags":["prompts","prompts"],"summary":"Get Prompt Rating Breakdown","description":"Répartition des notes 1–5 + moyenne pour un item.","operationId":"get_prompt_rating_breakdown_api_v1_prompts__prompt_id__rating_breakdown_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingBreakdownResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/{prompt_id}/usage":{"post":{"tags":["prompts","prompts"],"summary":"Record Usage","description":"Enregistrer une utilisation de prompt.","operationId":"record_usage_api_v1_prompts__prompt_id__usage_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prompts/search/suggestions":{"get":{"tags":["prompts","prompts"],"summary":"Get Search Suggestions","description":"Suggestions depuis data_prompts_knowledge/ (titres, tags, catégories).","operationId":"get_search_suggestions_api_v1_prompts_search_suggestions_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response Get Search Suggestions Api V1 Prompts Search Suggestions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups":{"get":{"tags":["groups","groups"],"summary":"List My Groups","operationId":"list_my_groups_api_v1_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["groups","groups"],"summary":"Create Group","operationId":"create_group_api_v1_groups_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/groups/{group_id}":{"get":{"tags":["groups","groups"],"summary":"Get Group","operationId":"get_group_api_v1_groups__group_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["groups","groups"],"summary":"Update Group","operationId":"update_group_api_v1_groups__group_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["groups","groups"],"summary":"Delete Group","operationId":"delete_group_api_v1_groups__group_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Group Api V1 Groups  Group Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/duplicate":{"post":{"tags":["groups","groups"],"summary":"Duplicate Group","operationId":"duplicate_group_api_v1_groups__group_id__duplicate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/items":{"post":{"tags":["groups","groups"],"summary":"Add Group Item","operationId":"add_group_item_api_v1_groups__group_id__items_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupAddItem"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/items/{resource_id}":{"delete":{"tags":["groups","groups"],"summary":"Remove Group Item","operationId":"remove_group_item_api_v1_groups__group_id__items__resource_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}},{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/groups/{group_id}/reorder":{"put":{"tags":["groups","groups"],"summary":"Reorder Group Items","operationId":"reorder_group_items_api_v1_groups__group_id__reorder_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupReorder"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceGroupOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/ask":{"post":{"tags":["Chat"],"summary":"Ask Question","description":"Ask the RAG chatbot a question. Supports filters, provider, temperature (production RAG format).\nReturns answer, citations, confidence, sources, and observability fields (model_used, latency_ms).\nRéservé super_admin ; rate limit IP (middleware) + user + quota tokens plateforme/user.","operationId":"ask_question_api_v1_chat_ask_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat/upload":{"post":{"tags":["Chat"],"summary":"Upload Document","description":"Upload and index a document for RAG. Supports .txt, .md, .rules.\nRéservé super_admin.","operationId":"upload_document_api_v1_chat_upload_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},{"name":"section","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_document_api_v1_chat_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Upload Document Api V1 Chat Upload Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chat/upload-batch":{"post":{"tags":["Chat"],"summary":"Upload Batch Documents","description":"Upload and index multiple documents in one request. Réservé super_admin.","operationId":"upload_batch_documents_api_v1_chat_upload_batch_post","requestBody":{"content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Documents"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Upload Batch Documents Api V1 Chat Upload Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat/health":{"get":{"tags":["Chat"],"summary":"Health Check","description":"RAG service health.","operationId":"health_check_api_v1_chat_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Check Api V1 Chat Health Get"}}}}}}},"/api/v1/chat/info":{"get":{"tags":["Chat"],"summary":"Get Info","description":"Service and endpoint info.","operationId":"get_info_api_v1_chat_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Info Api V1 Chat Info Get"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["authentication","auth"],"summary":"Login","description":"Issue an API JWT.\n\n- Development/test with ALLOW_INSECURE_AUTH_LOGIN: mint from body (legacy / local).\n- Staging/production: require a valid Clerk Bearer token; identity comes from `sub`.","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/register":{"post":{"tags":["authentication","auth"],"summary":"Register","description":"Register and return JWT — same security rules as /login.","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/refresh":{"post":{"tags":["authentication","auth"],"summary":"Refresh Token","description":"Issue a new JWT for the current user.","operationId":"refresh_token_api_v1_auth_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/me":{"get":{"tags":["authentication","auth"],"summary":"Get Current User Info","description":"Return current user profile (same shape as GET /users/profile).","operationId":"get_current_user_info_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/logout":{"post":{"tags":["authentication","auth"],"summary":"Logout","description":"Logout (client must discard token).","operationId":"logout_api_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Logout Api V1 Auth Logout Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sessions/policy":{"get":{"tags":["sessions","sessions"],"summary":"Session Policy","operationId":"session_policy_api_v1_sessions_policy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppSessionPolicyResponse"}}}}}}},"/api/v1/sessions/bootstrap":{"post":{"tags":["sessions","sessions"],"summary":"Bootstrap","operationId":"bootstrap_api_v1_sessions_bootstrap_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppSessionBootstrapResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sessions/heartbeat":{"post":{"tags":["sessions","sessions"],"summary":"Heartbeat","operationId":"heartbeat_api_v1_sessions_heartbeat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppSessionOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sessions/me":{"get":{"tags":["sessions","sessions"],"summary":"Me","operationId":"me_api_v1_sessions_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AppSessionOut"},{"type":"null"}],"title":"Response Me Api V1 Sessions Me Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sessions":{"get":{"tags":["sessions","sessions"],"summary":"List Sessions","operationId":"list_sessions_api_v1_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppSessionListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/sessions/{sid}":{"delete":{"tags":["sessions","sessions"],"summary":"Revoke One","operationId":"revoke_one_api_v1_sessions__sid__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sessions/revoke-all":{"post":{"tags":["sessions","sessions"],"summary":"Revoke All","operationId":"revoke_all_api_v1_sessions_revoke_all_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Revoke All Api V1 Sessions Revoke All Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/stats/landing":{"get":{"tags":["stats","stats"],"summary":"Get Landing Content","description":"Contenu éditorial de la page d’accueil (pills, FAQ, témoignages, partenaires)\nlu depuis data_prompts_knowledge/_platform/landing.json.","operationId":"get_landing_content_api_v1_stats_landing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LandingContentResponse"}}}}}}},"/api/v1/stats/features":{"get":{"tags":["stats","stats"],"summary":"Get Feature Flags","description":"Flags produit publics (Hub / Marketplace / Enterprise) — cache court.","operationId":"get_feature_flags_api_v1_stats_features_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagsResponse"}}}}}}},"/api/v1/stats":{"get":{"tags":["stats","stats"],"summary":"Get Platform Stats","description":"Stats plateforme dynamiques (Postgres users + catalogue + notes community).","operationId":"get_platform_stats_api_v1_stats_get","parameters":[{"name":"periodDays","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Fenêtre de tendance (jours)","default":30,"title":"Perioddays"},"description":"Fenêtre de tendance (jours)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stats/health":{"get":{"tags":["stats","stats"],"summary":"Health Check","description":"Vérifier l'état de santé de l'endpoint des stats","operationId":"health_check_api_v1_stats_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Check Api V1 Stats Health Get"}}}}}}},"/api/v1/billing/plans":{"get":{"tags":["billing","billing"],"summary":"List Billing Plans","description":"Catalogue tarifaire public, cacheable et sans secret prestataire.","operationId":"list_billing_plans_api_v1_billing_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCatalogResponse"}}}}}}},"/api/v1/billing/plans/{plan_id}":{"get":{"tags":["billing","billing"],"summary":"Get Billing Plan","operationId":"get_billing_plan_api_v1_billing_plans__plan_id__get","parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlan"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/entitlements":{"get":{"tags":["billing","billing"],"summary":"Read Current Entitlements","description":"Droits effectifs. Tant que le checkout est inactif, le plan reste Free.","operationId":"read_current_entitlements_api_v1_billing_entitlements_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentEntitlementsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/billing/waitlist":{"post":{"tags":["billing","billing"],"summary":"Create Waitlist Entry","description":"Inscription idempotente à la liste d'attente Pro ou Premium.","operationId":"create_waitlist_entry_api_v1_billing_waitlist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingWaitlistJoinRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingWaitlistResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/web-vitals":{"post":{"tags":["web-vitals","web-vitals"],"summary":"Report Web Vital","description":"Enregistre un point Core Web Vitals (LCP/INP/CLS/FCP/TTFB) émis par le navigateur.","operationId":"report_web_vital_api_v1_web_vitals_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebVitalPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebVitalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/contact":{"post":{"tags":["contact","contact"],"summary":"Submit Contact","description":"Reçoit un message de contact (honeypot silencieux + log structuré).","operationId":"submit_contact_api_v1_contact_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/docs/api":{"get":{"tags":["documentation","documentation"],"summary":"Get Api Documentation","description":"Documentation structurée de l'API pour la page frontend /docs.\nAlignée avec les routes réelles du backend (FastAPI).","operationId":"get_api_documentation_api_v1_docs_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Api Documentation Api V1 Docs Api Get"}}}}}}},"/api/v1/docs/integration-guide":{"get":{"tags":["documentation","documentation"],"summary":"Get Integration Guide","description":"Guide complet pour intégrer l'API","operationId":"get_integration_guide_api_v1_docs_integration_guide_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Integration Guide Api V1 Docs Integration Guide Get"}}}}}}},"/api/v1/docs/best-practices":{"get":{"tags":["documentation","documentation"],"summary":"Get Best Practices","description":"Récupérer les bonnes pratiques de développement","operationId":"get_best_practices_api_v1_docs_best_practices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Best Practices Api V1 Docs Best Practices Get"}}}}}}},"/api/v1/content/rules":{"get":{"tags":["content","content"],"summary":"Get All Rules","description":"Get all rules across all categories","operationId":"get_all_rules_api_v1_content_rules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get All Rules Api V1 Content Rules Get"}}}}}}},"/api/v1/content/rules/{category}":{"get":{"tags":["content","content"],"summary":"Get Rules By Category","description":"Get all rules for a specific category","operationId":"get_rules_by_category_api_v1_content_rules__category__get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentIndexResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/rules/{category}/{rule_id}":{"get":{"tags":["content","content"],"summary":"Get Rule Detail","description":"Get detailed view of a specific rule","operationId":"get_rule_detail_api_v1_content_rules__category___rule_id__get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/prompts":{"get":{"tags":["content","content"],"summary":"Get All Prompts","description":"Get all prompts across all categories","operationId":"get_all_prompts_api_v1_content_prompts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get All Prompts Api V1 Content Prompts Get"}}}}}}},"/api/v1/content/prompts/{category}":{"get":{"tags":["content","content"],"summary":"Get Prompts By Category","description":"Get all prompts for a specific category","operationId":"get_prompts_by_category_api_v1_content_prompts__category__get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentIndexResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/prompts/{category}/{prompt_id}":{"get":{"tags":["content","content"],"summary":"Get Prompt Detail","description":"Get detailed view of a specific prompt","operationId":"get_prompt_detail_api_v1_content_prompts__category___prompt_id__get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/catalog":{"get":{"tags":["content","content"],"summary":"Get Catalog","description":"Get the complete content catalog","operationId":"get_catalog_api_v1_content_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Catalog Api V1 Content Catalog Get"}}}}}}},"/api/v1/content/catalog/featured":{"get":{"tags":["content","content"],"summary":"Get Featured Content","description":"Get featured content items","operationId":"get_featured_content_api_v1_content_catalog_featured_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/content/catalog/trending":{"get":{"tags":["content","content"],"summary":"Get Trending Content","description":"Get trending/most viewed content","operationId":"get_trending_content_api_v1_content_catalog_trending_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"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/content/search":{"get":{"tags":["content","content"],"summary":"Search Content","description":"Search across all content with optional filters","operationId":"search_content_api_v1_content_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":100,"title":"Q"}},{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(rules|prompts)$"},{"type":"null"}],"title":"Content Type"}},{"name":"difficulty","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(beginner|intermediate|advanced)$"},{"type":"null"}],"title":"Difficulty"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/tags":{"get":{"tags":["content","content"],"summary":"Get All Tags","description":"Get all available tags with their usage count","operationId":"get_all_tags_api_v1_content_tags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/content/categories":{"get":{"tags":["content","content"],"summary":"Get All Categories","description":"Get all available categories","operationId":"get_all_categories_api_v1_content_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/content/stats":{"get":{"tags":["content","content"],"summary":"Get Content Statistics","description":"Get statistics about content library","operationId":"get_content_statistics_api_v1_content_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/content/health":{"get":{"tags":["content","content"],"summary":"Content Api Health","description":"Health check for content API","operationId":"content_api_health_api_v1_content_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/users/profile":{"get":{"tags":["users","users"],"summary":"Get User Profile","description":"Récupérer le profil utilisateur.","operationId":"get_user_profile_api_v1_users_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/preferences":{"put":{"tags":["users","users"],"summary":"Update Preferences","description":"Mettre à jour les préférences utilisateur.","operationId":"update_preferences_api_v1_users_preferences_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPreferencesUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/community/me":{"get":{"tags":["users","users"],"summary":"Get My Community Profile","description":"Profil community du compte connecté (pseudo, bio, rang, complétion).","operationId":"get_my_community_profile_api_v1_users_community_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityProfileOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/community/me/rank":{"get":{"tags":["users","users"],"summary":"Get My Community Rank Endpoint","description":"Position du compte sur le leaderboard réputation.","operationId":"get_my_community_rank_endpoint_api_v1_users_community_me_rank_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyCommunityRank"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/community/me/following":{"get":{"tags":["users","users"],"summary":"Get My Following","description":"Auteurs suivis par le compte connecté.","operationId":"get_my_following_api_v1_users_community_me_following_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowingListOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/community/me/feed":{"get":{"tags":["users","users"],"summary":"Get My Following Feed","description":"Fil d’activité agrégé des auteurs suivis.","operationId":"get_my_following_feed_api_v1_users_community_me_feed_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowingFeedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/community/recommendations":{"get":{"tags":["users","users"],"summary":"Get Community Recommendations","description":"Auteurs à découvrir (hors soi / déjà suivis / Knowledge Base).","operationId":"get_community_recommendations_api_v1_users_community_recommendations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/community/stats":{"get":{"tags":["users","users"],"summary":"Get Community Board Stats","description":"Compteurs globaux du community board.","operationId":"get_community_board_stats_api_v1_users_community_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityBoardStats"}}}}}}},"/api/v1/users/community/profile":{"put":{"tags":["users","users"],"summary":"Update Community Profile","description":"Choisir un pseudo / bio / avatar affichés sur le community board.","operationId":"update_community_profile_api_v1_users_community_profile_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityProfileUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityProfileOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/community/sso":{"put":{"tags":["users","users"],"summary":"Sync Community Sso","description":"Synchronise nom + photo du compte SSO (Google…) — repli si aucun avatar choisi.","operationId":"sync_community_sso_api_v1_users_community_sso_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SsoIdentity"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityProfileOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/community/{author}/activity":{"get":{"tags":["users","users"],"summary":"Get Author Activity","description":"Timeline d’activité publique d’un auteur.","operationId":"get_author_activity_api_v1_users_community__author__activity_get","parameters":[{"name":"author","in":"path","required":true,"schema":{"type":"string","title":"Author"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorActivityOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/community/{author}/followers":{"get":{"tags":["users","users"],"summary":"Get Author Followers","description":"Liste des abonnés d’un auteur community.","operationId":"get_author_followers_api_v1_users_community__author__followers_get","parameters":[{"name":"author","in":"path","required":true,"schema":{"type":"string","title":"Author"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowersListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/community/{author}/badges":{"get":{"tags":["users","users"],"summary":"Get Author Badges","description":"Badges calculés à partir des stats community.","operationId":"get_author_badges_api_v1_users_community__author__badges_get","parameters":[{"name":"author","in":"path","required":true,"schema":{"type":"string","title":"Author"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CommunityBadge"},"title":"Response Get Author Badges Api V1 Users Community  Author  Badges Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/community/{author}/follow":{"post":{"tags":["users","users"],"summary":"Follow Community Author","description":"Suivre un auteur du community board.","operationId":"follow_community_author_api_v1_users_community__author__follow_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"author","in":"path","required":true,"schema":{"type":"string","title":"Author"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["users","users"],"summary":"Unfollow Community Author","description":"Ne plus suivre un auteur.","operationId":"unfollow_community_author_api_v1_users_community__author__follow_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"author","in":"path","required":true,"schema":{"type":"string","title":"Author"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/community/{author}":{"get":{"tags":["users","users"],"summary":"Get Author Community","description":"Carte community publique d’un auteur (stats + rang + ma note + badges).","operationId":"get_author_community_api_v1_users_community__author__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"author","in":"path","required":true,"schema":{"type":"string","title":"Author"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorCommunityCard"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/community/{author}/rate":{"post":{"tags":["users","users"],"summary":"Rate Community Author","description":"Noter un auteur du community board (1–5).","operationId":"rate_community_author_api_v1_users_community__author__rate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"author","in":"path","required":true,"schema":{"type":"string","title":"Author"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorRateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorRateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/favorites/ids":{"get":{"tags":["users","users"],"summary":"Get Favorite Ids","description":"Identifiants des favoris du compte connecté.","operationId":"get_favorite_ids_api_v1_users_favorites_ids_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Favorite Ids Api V1 Users Favorites Ids Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/activity":{"get":{"tags":["users","users"],"summary":"Get User Activity","description":"Comptages favoris, historique et bibliothèque personnelle.","operationId":"get_user_activity_api_v1_users_activity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserActivityResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/favorites/batch":{"post":{"tags":["users","users"],"summary":"Batch Favorites","description":"Ajoute ou retire plusieurs favoris en une requête (compte courant).","operationId":"batch_favorites_api_v1_users_favorites_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FavoritesBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FavoritesBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/favorites":{"get":{"tags":["users","users"],"summary":"Get Favorite Prompts","description":"Favoris du compte connecté (prompts catalogue + bibliothèque).","operationId":"get_favorite_prompts_api_v1_users_favorites_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PromptResponse"},"type":"array","title":"Response Get Favorite Prompts Api V1 Users Favorites Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/favorites/{prompt_id}":{"post":{"tags":["users","users"],"summary":"Add To Favorites","description":"Ajouter un prompt aux favoris du compte connecté.","operationId":"add_to_favorites_api_v1_users_favorites__prompt_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["users","users"],"summary":"Remove From Favorites","description":"Retirer un prompt des favoris du compte connecté.","operationId":"remove_from_favorites_api_v1_users_favorites__prompt_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/recently-viewed":{"get":{"tags":["users","users"],"summary":"Get Recently Viewed","description":"Derniers prompts ouverts (plus récent d’abord) — persistés par compte.","operationId":"get_recently_viewed_api_v1_users_recently_viewed_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PromptResponse"},"type":"array","title":"Response Get Recently Viewed Api V1 Users Recently Viewed Get"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["users","users"],"summary":"Clear Recently Viewed","description":"Vide l’historique de consultation du compte.","operationId":"clear_recently_viewed_api_v1_users_recently_viewed_delete","responses":{"204":{"description":"Successful Response"}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/recently-viewed/{prompt_id}":{"post":{"tags":["users","users"],"summary":"Record Recently Viewed","description":"Enregistre une consultation dans l’historique court du compte.","operationId":"record_recently_viewed_api_v1_users_recently_viewed__prompt_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/access":{"get":{"tags":["admin","admin"],"summary":"Admin Access","description":"Sonde nav : 200 même sans jeton (allowed=false), sans événement 401.","operationId":"admin_access_api_v1_admin_access_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAccessOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/me":{"get":{"tags":["admin","admin"],"summary":"Admin Me","operationId":"admin_me_api_v1_admin_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminMeOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/dashboard":{"get":{"tags":["admin","admin"],"summary":"Admin Dashboard","operationId":"admin_dashboard_api_v1_admin_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/users":{"get":{"tags":["admin","admin"],"summary":"Admin Users","operationId":"admin_users_api_v1_admin_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Search"}},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Role"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Status"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","pattern":"^(created_at|email|status|last_login_at)$","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_UserOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/roles":{"get":{"tags":["admin","admin"],"summary":"Admin Roles","operationId":"admin_roles_api_v1_admin_roles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RoleOut"},"type":"array","title":"Response Admin Roles Api V1 Admin Roles Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/content/tables":{"get":{"tags":["admin","admin"],"summary":"Admin Content Tables","operationId":"admin_content_tables_api_v1_admin_content_tables_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentTablesOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/content":{"get":{"tags":["admin","admin"],"summary":"Admin Content List","operationId":"admin_content_list_api_v1_admin_content_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Kind"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200,"default":"","title":"Q"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"include_content","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Content"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","pattern":"^(title|kind|category|updated_at|created_at|id)$","default":"updated_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Sort Order"}},{"name":"trending","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trending"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Category"}},{"name":"visibility","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(private|public)$"},{"type":"null"}],"title":"Visibility"}},{"name":"publication_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(draft|published|archived)$"},{"type":"null"}],"title":"Publication Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_CatalogContentItemOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin","admin"],"summary":"Admin Content Create","operationId":"admin_content_create_api_v1_admin_content_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/content/bulk":{"patch":{"tags":["admin","admin"],"summary":"Admin Content Bulk Update","operationId":"admin_content_bulk_update_api_v1_admin_content_bulk_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentBulkUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentBulkUpdateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/content/{item_id}":{"get":{"tags":["admin","admin"],"summary":"Admin Content Get","operationId":"admin_content_get_api_v1_admin_content__item_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["admin","admin"],"summary":"Admin Content Update","operationId":"admin_content_update_api_v1_admin_content__item_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin","admin"],"summary":"Admin Content Delete","operationId":"admin_content_delete_api_v1_admin_content__item_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/content/{item_id}/versions":{"get":{"tags":["admin","admin"],"summary":"Admin Content Versions","operationId":"admin_content_versions_api_v1_admin_content__item_id__versions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalogContentVersionOut"},"title":"Response Admin Content Versions Api V1 Admin Content  Item Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/content/{item_id}/versions/{version}/restore":{"post":{"tags":["admin","admin"],"summary":"Admin Content Version Restore","operationId":"admin_content_version_restore_api_v1_admin_content__item_id__versions__version__restore_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContentItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/overview":{"get":{"tags":["data-explorer"],"summary":"Data Overview","operationId":"data_overview_api_v1_data_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Data Overview Api V1 Data Overview Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/data/schemas":{"get":{"tags":["data-explorer"],"summary":"Data Schemas","operationId":"data_schemas_api_v1_data_schemas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Data Schemas Api V1 Data Schemas Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/data/tables":{"get":{"tags":["data-explorer"],"summary":"Data Tables","operationId":"data_tables_api_v1_data_tables_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schema","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Schema"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Data Tables Api V1 Data Tables Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/tables/{schema}/{table}":{"get":{"tags":["data-explorer"],"summary":"Data Table","operationId":"data_table_api_v1_data_tables__schema___table__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schema","in":"path","required":true,"schema":{"type":"string","title":"Schema"}},{"name":"table","in":"path","required":true,"schema":{"type":"string","title":"Table"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Data Table Api V1 Data Tables  Schema   Table  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/tables/{schema}/{table}/columns":{"get":{"tags":["data-explorer"],"summary":"Data Columns","operationId":"data_columns_api_v1_data_tables__schema___table__columns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schema","in":"path","required":true,"schema":{"type":"string","title":"Schema"}},{"name":"table","in":"path","required":true,"schema":{"type":"string","title":"Table"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Data Columns Api V1 Data Tables  Schema   Table  Columns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/tables/{schema}/{table}/preview":{"get":{"tags":["data-explorer"],"summary":"Data Preview","operationId":"data_preview_api_v1_data_tables__schema___table__preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schema","in":"path","required":true,"schema":{"type":"string","title":"Schema"}},{"name":"table","in":"path","required":true,"schema":{"type":"string","title":"Table"}},{"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":{"type":"object","additionalProperties":true,"title":"Response Data Preview Api V1 Data Tables  Schema   Table  Preview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/tables/{schema}/{table}/profile":{"get":{"tags":["data-explorer"],"summary":"Data Profile","operationId":"data_profile_api_v1_data_tables__schema___table__profile_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schema","in":"path","required":true,"schema":{"type":"string","title":"Schema"}},{"name":"table","in":"path","required":true,"schema":{"type":"string","title":"Table"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Data Profile Api V1 Data Tables  Schema   Table  Profile Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/tables/{schema}/{table}/relationships":{"get":{"tags":["data-explorer"],"summary":"Data Table Relationships","operationId":"data_table_relationships_api_v1_data_tables__schema___table__relationships_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schema","in":"path","required":true,"schema":{"type":"string","title":"Schema"}},{"name":"table","in":"path","required":true,"schema":{"type":"string","title":"Table"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Data Table Relationships Api V1 Data Tables  Schema   Table  Relationships Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/relationships":{"get":{"tags":["data-explorer"],"summary":"Data Relationships","operationId":"data_relationships_api_v1_data_relationships_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Data Relationships Api V1 Data Relationships Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/data/quality":{"get":{"tags":["data-explorer"],"summary":"Data Quality","operationId":"data_quality_api_v1_data_quality_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Data Quality Api V1 Data Quality Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/data/erd":{"get":{"tags":["data-explorer"],"summary":"Data Erd","operationId":"data_erd_api_v1_data_erd_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"schema","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Schema"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Data Erd Api V1 Data Erd Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/star-schemas":{"get":{"tags":["data-explorer"],"summary":"Data Star Schemas","operationId":"data_star_schemas_api_v1_data_star_schemas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Data Star Schemas Api V1 Data Star Schemas Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/data/query":{"post":{"tags":["data-explorer"],"summary":"Data Query","operationId":"data_query_api_v1_data_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Data Query Api V1 Data Query Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/data/refresh":{"post":{"tags":["data-explorer"],"summary":"Data Refresh","operationId":"data_refresh_api_v1_data_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Data Refresh Api V1 Data Refresh Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/dev/db/access":{"get":{"tags":["dev-db"],"summary":"Db Explorer Access","operationId":"db_explorer_access_api_v1_dev_db_access_get","parameters":[{"name":"X-Internal-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Internal-Api-Key"}},{"name":"X-Observability-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Observability-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/dev/db/summary":{"get":{"tags":["dev-db"],"summary":"Db Summary","operationId":"db_summary_api_v1_dev_db_summary_get","parameters":[{"name":"X-Internal-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Internal-Api-Key"}},{"name":"X-Observability-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Observability-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/dev/db/monitoring":{"get":{"tags":["dev-db"],"summary":"Db Monitoring","operationId":"db_monitoring_api_v1_dev_db_monitoring_get","parameters":[{"name":"X-Internal-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Internal-Api-Key"}},{"name":"X-Observability-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Observability-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/dev/db/tables":{"get":{"tags":["dev-db"],"summary":"List Tables","operationId":"list_tables_api_v1_dev_db_tables_get","parameters":[{"name":"X-Internal-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Internal-Api-Key"}},{"name":"X-Observability-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Observability-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/dev/db/tables/{table_name}":{"get":{"tags":["dev-db"],"summary":"Read Table","operationId":"read_table_api_v1_dev_db_tables__table_name__get","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","title":"Table Name"}},{"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"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"}},{"name":"order_dir","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"asc","title":"Order Dir"}},{"name":"X-Internal-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Internal-Api-Key"}},{"name":"X-Observability-Api-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Observability-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/docs/upload":{"post":{"tags":["docs"],"summary":"Docs Upload","description":"Upload and index a single document (synchronous). Requires authentication.","operationId":"docs_upload_api_v1_docs_upload_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},{"name":"section","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_docs_upload_api_v1_docs_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Docs Upload Api V1 Docs Upload Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/docs/upload-multiple":{"post":{"tags":["docs"],"summary":"Docs Upload Multiple","description":"Upload and index multiple documents in one request. Requires authentication.","operationId":"docs_upload_multiple_api_v1_docs_upload_multiple_post","requestBody":{"content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Documents"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Docs Upload Multiple Api V1 Docs Upload Multiple Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/docs/ingest":{"post":{"tags":["docs"],"summary":"Docs Ingest","description":"Async ingestion: returns job_id immediately; poll GET /api/v1/jobs/{job_id} for status.\nRequires authentication.","operationId":"docs_ingest_api_v1_docs_ingest_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},{"name":"section","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_docs_ingest_api_v1_docs_ingest_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Docs Ingest Api V1 Docs Ingest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_id}":{"get":{"tags":["jobs"],"summary":"Get Job Status","description":"Poll ingestion job status. Auth + ownership (anti-IDOR).","operationId":"get_job_status_api_v1_jobs__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Job Status Api V1 Jobs  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"tags":["pages","pages"],"summary":"Page d'accueil (Landing)","operationId":"home__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/landing":{"get":{"tags":["pages","pages"],"summary":"Landing (alias)","operationId":"landing_landing_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard":{"get":{"tags":["pages","pages"],"summary":"Dashboard (redirige vers /)","operationId":"dashboard_dashboard_get","responses":{"301":{"description":"Successful Response"}}}},"/monitoring":{"get":{"tags":["pages","pages"],"summary":"Monitoring","operationId":"monitoring_monitoring_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dev/db":{"get":{"tags":["pages","pages"],"summary":"Explorateur DB","operationId":"db_explorer_dev_db_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/info":{"get":{"tags":["pages","pages"],"summary":"Informations sur l'API","operationId":"api_info_api_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AdminAccessOut":{"properties":{"allowed":{"type":"boolean","title":"Allowed"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"}},"type":"object","required":["allowed"],"title":"AdminAccessOut","description":"Sonde légère pour la nav — pas d’événement ACCESS_DENIED si non autorisé."},"AdminMeOut":{"properties":{"user":{"$ref":"#/components/schemas/UserOut"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"},"impersonation_enabled":{"type":"boolean","title":"Impersonation Enabled"}},"type":"object","required":["user","permissions","impersonation_enabled"],"title":"AdminMeOut"},"AppSessionBootstrapResponse":{"properties":{"session":{"$ref":"#/components/schemas/AppSessionOut"},"warning_seconds":{"type":"integer","minimum":1.0,"title":"Warning Seconds"}},"type":"object","required":["session","warning_seconds"],"title":"AppSessionBootstrapResponse"},"AppSessionListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AppSessionOut"},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["data","total"],"title":"AppSessionListResponse"},"AppSessionOut":{"properties":{"sid":{"type":"string","title":"Sid"},"user_id":{"type":"string","title":"User Id"},"ua":{"type":"string","title":"Ua","default":""},"ip":{"type":"string","title":"Ip","default":""},"created_at":{"type":"integer","title":"Created At"},"last_seen":{"type":"integer","title":"Last Seen"},"absolute_exp":{"type":"integer","title":"Absolute Exp"},"idle_seconds":{"type":"integer","minimum":1.0,"title":"Idle Seconds"},"absolute_seconds":{"type":"integer","minimum":1.0,"title":"Absolute Seconds"},"seconds_until_idle":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seconds Until Idle"},"seconds_until_absolute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seconds Until Absolute"}},"type":"object","required":["sid","user_id","created_at","last_seen","absolute_exp","idle_seconds","absolute_seconds"],"title":"AppSessionOut"},"AppSessionPolicyResponse":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"idle_seconds":{"type":"integer","title":"Idle Seconds"},"absolute_seconds":{"type":"integer","title":"Absolute Seconds"},"warning_seconds":{"type":"integer","title":"Warning Seconds"},"max_per_user":{"type":"integer","title":"Max Per User"}},"type":"object","required":["enabled","idle_seconds","absolute_seconds","warning_seconds","max_per_user"],"title":"AppSessionPolicyResponse"},"AuthorActivityEvent":{"properties":{"type":{"type":"string","title":"Type"},"at":{"type":"string","title":"At","default":""},"title":{"type":"string","title":"Title"},"itemId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Itemid"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"meta":{"additionalProperties":true,"type":"object","title":"Meta"}},"type":"object","required":["type","title"],"title":"AuthorActivityEvent"},"AuthorActivityOut":{"properties":{"author":{"type":"string","title":"Author"},"events":{"items":{"$ref":"#/components/schemas/AuthorActivityEvent"},"type":"array","title":"Events"}},"type":"object","required":["author"],"title":"AuthorActivityOut"},"AuthorCommunityCard":{"properties":{"author":{"type":"string","title":"Author"},"pseudo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pseudo"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"},"count":{"type":"integer","title":"Count","default":0},"trending":{"type":"integer","title":"Trending","default":0},"kinds":{"additionalProperties":true,"type":"object","title":"Kinds"},"avgRating":{"type":"number","title":"Avgrating","default":0.0},"totalUses":{"type":"integer","title":"Totaluses","default":0},"favoritesReceived":{"type":"integer","title":"Favoritesreceived","default":0},"communityRating":{"type":"number","title":"Communityrating","default":0.0},"communityRatingCount":{"type":"integer","title":"Communityratingcount","default":0},"score":{"type":"number","title":"Score","default":0.0},"rank":{"type":"integer","title":"Rank","default":0},"myRating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Myrating"},"isFollowing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isfollowing"},"followersCount":{"type":"integer","title":"Followerscount","default":0},"badges":{"items":{"$ref":"#/components/schemas/CommunityBadge"},"type":"array","title":"Badges"},"completeness":{"anyOf":[{"$ref":"#/components/schemas/ProfileCompleteness"},{"type":"null"}]}},"type":"object","required":["author"],"title":"AuthorCommunityCard"},"AuthorRateOut":{"properties":{"author":{"type":"string","title":"Author"},"myRating":{"type":"integer","title":"Myrating"},"avg":{"type":"number","title":"Avg"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["author","myRating","avg","count"],"title":"AuthorRateOut"},"AuthorRateRequest":{"properties":{"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating"}},"type":"object","required":["rating"],"title":"AuthorRateRequest"},"BillingCatalogResponse":{"properties":{"version":{"type":"string","title":"Version"},"billingEnabled":{"type":"boolean","title":"Billingenabled"},"annualDiscountPercent":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Annualdiscountpercent"},"plans":{"items":{"$ref":"#/components/schemas/BillingPlan"},"type":"array","title":"Plans"}},"type":"object","required":["version","billingEnabled","annualDiscountPercent","plans"],"title":"BillingCatalogResponse"},"BillingPlan":{"properties":{"id":{"type":"string","enum":["free","pro","premium"],"title":"Id"},"monthlyPriceCents":{"type":"integer","minimum":0.0,"title":"Monthlypricecents"},"annualPriceCents":{"type":"integer","minimum":0.0,"title":"Annualpricecents"},"currency":{"type":"string","const":"EUR","title":"Currency","default":"EUR"},"available":{"type":"boolean","title":"Available"},"highlighted":{"type":"boolean","title":"Highlighted","default":false},"entitlements":{"$ref":"#/components/schemas/PlanEntitlements"}},"type":"object","required":["id","monthlyPriceCents","annualPriceCents","available","entitlements"],"title":"BillingPlan"},"BillingWaitlistJoinRequest":{"properties":{"planId":{"type":"string","enum":["free","pro","premium"],"title":"Planid"},"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"locale":{"type":"string","maxLength":8,"minLength":2,"title":"Locale","default":"fr"},"source":{"type":"string","maxLength":64,"minLength":2,"title":"Source","default":"pricing_page"}},"type":"object","required":["planId","email"],"title":"BillingWaitlistJoinRequest"},"BillingWaitlistResponse":{"properties":{"joined":{"type":"boolean","title":"Joined","default":true},"created":{"type":"boolean","title":"Created"},"planId":{"type":"string","enum":["free","pro","premium"],"title":"Planid"},"emailMasked":{"type":"string","title":"Emailmasked"}},"type":"object","required":["created","planId","emailMasked"],"title":"BillingWaitlistResponse"},"Body_docs_ingest_api_v1_docs_ingest_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_docs_ingest_api_v1_docs_ingest_post"},"Body_docs_upload_api_v1_docs_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_docs_upload_api_v1_docs_upload_post"},"Body_upload_document_api_v1_chat_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_document_api_v1_chat_upload_post"},"CatalogAuthorRow":{"properties":{"author":{"type":"string","title":"Author"},"count":{"type":"integer","title":"Count"},"trending":{"type":"integer","title":"Trending"},"kinds":{"additionalProperties":true,"type":"object","title":"Kinds"},"pseudo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pseudo"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"},"avgRating":{"type":"number","title":"Avgrating","default":0.0},"totalUses":{"type":"integer","title":"Totaluses","default":0},"favoritesReceived":{"type":"integer","title":"Favoritesreceived","default":0},"communityRating":{"type":"number","title":"Communityrating","default":0.0},"communityRatingCount":{"type":"integer","title":"Communityratingcount","default":0},"score":{"type":"number","title":"Score","default":0.0},"rank":{"type":"integer","title":"Rank","default":0},"completeness":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Completeness"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"},"kindFilter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kindfilter"}},"type":"object","required":["author","count","trending","kinds"],"title":"CatalogAuthorRow"},"CatalogAuthorsResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"data":{"items":{"$ref":"#/components/schemas/CatalogAuthorRow"},"type":"array","title":"Data"}},"type":"object","required":["success","data"],"title":"CatalogAuthorsResponse"},"CatalogContentBulkUpdate":{"properties":{"ids":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Ids"},"visibility":{"anyOf":[{"type":"string","pattern":"^(private|public)$"},{"type":"null"}],"title":"Visibility"},"publicationStatus":{"anyOf":[{"type":"string","pattern":"^(draft|published|archived)$"},{"type":"null"}],"title":"Publicationstatus"},"isTrending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Istrending"},"reason":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Reason"}},"type":"object","required":["ids"],"title":"CatalogContentBulkUpdate"},"CatalogContentBulkUpdateOut":{"properties":{"updated":{"items":{"type":"string"},"type":"array","title":"Updated"},"notFound":{"items":{"type":"string"},"type":"array","title":"Notfound"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["updated","notFound","count"],"title":"CatalogContentBulkUpdateOut"},"CatalogContentCreate":{"properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":500,"minLength":1,"title":"Description"},"content":{"type":"string","minLength":1,"title":"Content"},"category":{"type":"string","maxLength":120,"minLength":1,"title":"Category"},"kind":{"type":"string","title":"Kind","default":"prompt"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"isTrending":{"type":"boolean","title":"Istrending","default":false},"visibility":{"type":"string","pattern":"^(private|public)$","title":"Visibility","default":"private"},"publicationStatus":{"type":"string","pattern":"^(draft|published|archived)$","title":"Publicationstatus","default":"draft"}},"type":"object","required":["title","description","content","category"],"title":"CatalogContentCreate"},"CatalogContentItemOut":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"content":{"type":"string","title":"Content","default":""},"category":{"type":"string","title":"Category"},"kind":{"type":"string","title":"Kind","default":"prompt"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"author":{"type":"string","title":"Author","default":"admin"},"rating":{"type":"number","title":"Rating","default":4.5},"usageCount":{"type":"integer","title":"Usagecount","default":0},"isTrending":{"type":"boolean","title":"Istrending","default":false},"visibility":{"type":"string","title":"Visibility","default":"public"},"publicationStatus":{"type":"string","title":"Publicationstatus","default":"published"},"createdAt":{"type":"string","title":"Createdat","default":""},"updatedAt":{"type":"string","title":"Updatedat","default":""},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"type":"object","required":["id","title","description","category"],"title":"CatalogContentItemOut"},"CatalogContentTablesOut":{"properties":{"total":{"type":"integer","title":"Total"},"kinds":{"additionalProperties":{"type":"integer"},"type":"object","title":"Kinds"},"visibility":{"additionalProperties":{"type":"integer"},"type":"object","title":"Visibility"},"featured":{"type":"integer","title":"Featured"},"categories":{"additionalProperties":{"type":"integer"},"type":"object","title":"Categories"},"publicationStatuses":{"additionalProperties":{"type":"integer"},"type":"object","title":"Publicationstatuses"}},"type":"object","required":["total","kinds","visibility","featured","categories","publicationStatuses"],"title":"CatalogContentTablesOut"},"CatalogContentUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Description"},"content":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Content"},"category":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Category"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"isTrending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Istrending"},"visibility":{"anyOf":[{"type":"string","pattern":"^(private|public)$"},{"type":"null"}],"title":"Visibility"},"publicationStatus":{"anyOf":[{"type":"string","pattern":"^(draft|published|archived)$"},{"type":"null"}],"title":"Publicationstatus"}},"type":"object","title":"CatalogContentUpdate"},"CatalogContentVersionOut":{"properties":{"version":{"type":"integer","title":"Version"},"savedAt":{"type":"string","title":"Savedat"},"reason":{"type":"string","title":"Reason"},"title":{"type":"string","title":"Title"},"visibility":{"type":"string","title":"Visibility"},"publicationStatus":{"type":"string","title":"Publicationstatus"}},"type":"object","required":["version","savedAt","reason","title","visibility","publicationStatus"],"title":"CatalogContentVersionOut"},"CatalogPageCopy":{"properties":{"badge":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Badge"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle","description":"Après le compteur (« · »). Si absent : i18n + code data_prompts_knowledge."}},"type":"object","title":"CatalogPageCopy"},"CatalogSummaryData":{"properties":{"total":{"type":"integer","title":"Total"},"kinds":{"additionalProperties":true,"type":"object","title":"Kinds"},"categories":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Categories"},"tags":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Tags"},"trending":{"type":"integer","title":"Trending"},"authors":{"type":"integer","title":"Authors"}},"type":"object","required":["total","kinds","categories","tags","trending","authors"],"title":"CatalogSummaryData"},"CatalogSummaryResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"data":{"$ref":"#/components/schemas/CatalogSummaryData"}},"type":"object","required":["success","data"],"title":"CatalogSummaryResponse"},"ChatFilters":{"properties":{"doc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Id"},"date_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date After"},"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},"type":"object","title":"ChatFilters","description":"Filtres pour le retrieval (metadata filtering)."},"ChatRequest":{"properties":{"question":{"type":"string","maxLength":4000,"minLength":1,"title":"Question"},"filters":{"anyOf":[{"$ref":"#/components/schemas/ChatFilters"},{"type":"null"}]},"provider":{"anyOf":[{"$ref":"#/components/schemas/LLMProvider"},{"type":"null"}]},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["question"],"title":"ChatRequest","description":"Requête de chat (production-grade format).\nAligné avec: question, filters, provider, temperature."},"ChatResponse":{"properties":{"answer":{"type":"string","title":"Answer"},"citations":{"items":{"type":"string"},"type":"array","title":"Citations"},"confidence":{"$ref":"#/components/schemas/ConfidenceLevel"},"sources":{"items":{"$ref":"#/components/schemas/Citation"},"type":"array","title":"Sources","default":[]},"conversation_id":{"type":"string","title":"Conversation Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model"},"tokens_input":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens Input"},"tokens_output":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens Output"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"fallback_triggered":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fallback Triggered"}},"type":"object","required":["answer","citations","confidence","conversation_id"],"title":"ChatResponse","description":"Réponse structurée du chatbot RAG (observability-friendly)."},"Citation":{"properties":{"title":{"type":"string","title":"Title"},"section":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section"},"page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},"type":"object","required":["title"],"title":"Citation","description":"Citation source"},"CommunityBadge":{"properties":{"id":{"type":"string","title":"Id"},"labelKey":{"type":"string","title":"Labelkey"}},"type":"object","required":["id","labelKey"],"title":"CommunityBadge"},"CommunityBoardStats":{"properties":{"authors":{"type":"integer","title":"Authors","default":0},"followersLinks":{"type":"integer","title":"Followerslinks","default":0},"ratings":{"type":"integer","title":"Ratings","default":0},"publishedItems":{"type":"integer","title":"Publisheditems","default":0}},"type":"object","title":"CommunityBoardStats"},"CommunityProfileOut":{"properties":{"userId":{"type":"string","title":"Userid"},"username":{"type":"string","title":"Username"},"authorSlug":{"type":"string","title":"Authorslug"},"pseudo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pseudo"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatarurl"},"effectiveAvatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effectiveavatarurl"},"sso":{"anyOf":[{"$ref":"#/components/schemas/SsoIdentity"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Createdat"},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updatedat"},"completeness":{"anyOf":[{"$ref":"#/components/schemas/ProfileCompleteness"},{"type":"null"}]},"rank":{"anyOf":[{"$ref":"#/components/schemas/MyCommunityRank"},{"type":"null"}]}},"type":"object","required":["userId","username","authorSlug"],"title":"CommunityProfileOut"},"CommunityProfileUpdate":{"properties":{"pseudo":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Pseudo"},"bio":{"anyOf":[{"type":"string","maxLength":280},{"type":"null"}],"title":"Bio"},"avatarUrl":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Avatarurl"}},"type":"object","title":"CommunityProfileUpdate"},"ConfidenceLevel":{"type":"string","enum":["Low","Medium","High","Very High"],"title":"ConfidenceLevel","description":"Niveaux de confiance pour les réponses RAG"},"ContactRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"},"subject":{"type":"string","maxLength":200,"minLength":1,"title":"Subject"},"message":{"type":"string","maxLength":5000,"minLength":1,"title":"Message"},"website":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Website"}},"type":"object","required":["name","email","subject","message"],"title":"ContactRequest"},"ContactResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"message":{"type":"string","title":"Message","default":"Message received"}},"type":"object","title":"ContactResponse"},"ContentDetailResponse":{"properties":{"metadata":{"$ref":"#/components/schemas/ContentItemMetadata"},"content":{"type":"string","title":"Content"},"relatedItems":{"anyOf":[{"items":{"$ref":"#/components/schemas/ContentItemMetadata"},"type":"array"},{"type":"null"}],"title":"Relateditems"}},"type":"object","required":["metadata","content"],"title":"ContentDetailResponse"},"ContentIndexResponse":{"properties":{"category":{"type":"string","title":"Category"},"count":{"type":"integer","title":"Count"},"items":{"items":{"$ref":"#/components/schemas/ContentItemMetadata"},"type":"array","title":"Items"}},"type":"object","required":["category","count","items"],"title":"ContentIndexResponse"},"ContentItemMetadata":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"category":{"type":"string","title":"Category"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Difficulty"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"views":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Views","default":0},"downloads":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Downloads","default":0},"featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Featured","default":false},"created":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"}},"type":"object","required":["id","title","description","category","tags"],"title":"ContentItemMetadata"},"ContentVisibility":{"type":"string","enum":["private","public","unlisted"],"title":"ContentVisibility","description":"Visibilité type GitHub : private / public / unlisted."},"CurrentEntitlementsResponse":{"properties":{"authenticated":{"type":"boolean","title":"Authenticated"},"planId":{"type":"string","enum":["free","pro","premium"],"title":"Planid"},"subscriptionStatus":{"type":"string","enum":["active","not_available"],"title":"Subscriptionstatus"},"entitlements":{"$ref":"#/components/schemas/PlanEntitlements"}},"type":"object","required":["authenticated","planId","subscriptionStatus","entitlements"],"title":"CurrentEntitlementsResponse"},"DashboardOut":{"properties":{"users_total":{"type":"integer","title":"Users Total"},"users_new_7d":{"type":"integer","title":"Users New 7D"},"users_new_30d":{"type":"integer","title":"Users New 30D"},"users_active":{"type":"integer","title":"Users Active"},"users_suspended":{"type":"integer","title":"Users Suspended"},"users_admins":{"type":"integer","title":"Users Admins"},"security_events_critical":{"type":"integer","title":"Security Events Critical"},"recent_errors":{"type":"integer","title":"Recent Errors"},"admin_actions_7d":{"type":"integer","title":"Admin Actions 7D"},"database_ok":{"type":"boolean","title":"Database Ok"},"clerk_configured":{"type":"boolean","title":"Clerk Configured"}},"type":"object","required":["users_total","users_new_7d","users_new_30d","users_active","users_suspended","users_admins","security_events_critical","recent_errors","admin_actions_7d","database_ok","clerk_configured"],"title":"DashboardOut"},"FaqItem":{"properties":{"q":{"type":"string","minLength":1,"title":"Q"},"a":{"type":"string","minLength":1,"title":"A"}},"type":"object","required":["q","a"],"title":"FaqItem"},"FavoritesBatchData":{"properties":{"added":{"items":{"type":"string"},"type":"array","title":"Added"},"removed":{"items":{"type":"string"},"type":"array","title":"Removed"},"missing":{"items":{"type":"string"},"type":"array","title":"Missing"},"ids":{"items":{"type":"string"},"type":"array","title":"Ids"}},"type":"object","required":["added","removed","missing","ids"],"title":"FavoritesBatchData"},"FavoritesBatchRequest":{"properties":{"add":{"items":{"type":"string"},"type":"array","title":"Add","default":[]},"remove":{"items":{"type":"string"},"type":"array","title":"Remove","default":[]}},"type":"object","title":"FavoritesBatchRequest"},"FavoritesBatchResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"data":{"$ref":"#/components/schemas/FavoritesBatchData"}},"type":"object","required":["success","data"],"title":"FavoritesBatchResponse"},"FeatureFlagsResponse":{"properties":{"resourceGroups":{"type":"boolean","title":"Resourcegroups","description":"Resource Groups (bibliothèque privée)"},"resourcePacks":{"type":"boolean","title":"Resourcepacks","description":"Resource Packs publiables"},"unlisted":{"type":"boolean","title":"Unlisted","description":"Visibilité UNLISTED"},"resourcesRead":{"type":"boolean","title":"Resourcesread","description":"Lecture via modèle resources unifié"},"resourcesWrite":{"type":"boolean","title":"Resourceswrite","description":"Écriture dual-write resources"},"marketplace":{"type":"boolean","title":"Marketplace","description":"Marketplace / paiements"},"aiPackBuilder":{"type":"boolean","title":"Aipackbuilder","description":"Création de packs assistée IA"},"b2b":{"type":"boolean","title":"B2B","description":"Organizations / private registry"},"mcpGateway":{"type":"boolean","title":"Mcpgateway","description":"MCP Gateway + metering"},"resourceExecution":{"type":"boolean","title":"Resourceexecution","description":"Exécution prompts/skills/workflows"}},"type":"object","required":["resourceGroups","resourcePacks","unlisted","resourcesRead","resourcesWrite","marketplace","aiPackBuilder","b2b","mcpGateway","resourceExecution"],"title":"FeatureFlagsResponse","description":"Flags publics exposés au frontend (pas de secrets)."},"FeatureGridCard":{"properties":{"icon":{"type":"string","title":"Icon","default":"brain"},"title":{"type":"string","minLength":1,"title":"Title"},"description":{"type":"string","minLength":1,"title":"Description"},"color":{"type":"string","title":"Color","default":"from-blue-500 to-blue-600"}},"type":"object","required":["title","description"],"title":"FeatureGridCard"},"FeaturedKnowledgeBlock":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"FeaturedKnowledgeBlock"},"FeaturesGridBlock":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"cards":{"items":{"$ref":"#/components/schemas/FeatureGridCard"},"type":"array","title":"Cards"}},"type":"object","title":"FeaturesGridBlock"},"FinalCtaBlock":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"}},"type":"object","title":"FinalCtaBlock"},"FollowOut":{"properties":{"author":{"type":"string","title":"Author"},"following":{"type":"boolean","title":"Following"},"followersCount":{"type":"integer","title":"Followerscount"}},"type":"object","required":["author","following","followersCount"],"title":"FollowOut"},"FollowerBrief":{"properties":{"userId":{"type":"string","title":"Userid"},"author":{"type":"string","title":"Author"},"pseudo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pseudo"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"}},"type":"object","required":["userId","author"],"title":"FollowerBrief"},"FollowersListOut":{"properties":{"author":{"type":"string","title":"Author"},"total":{"type":"integer","title":"Total","default":0},"followers":{"items":{"$ref":"#/components/schemas/FollowerBrief"},"type":"array","title":"Followers"}},"type":"object","required":["author"],"title":"FollowersListOut"},"FollowingFeedOut":{"properties":{"events":{"items":{"$ref":"#/components/schemas/AuthorActivityEvent"},"type":"array","title":"Events"}},"type":"object","title":"FollowingFeedOut"},"FollowingListOut":{"properties":{"authors":{"items":{"type":"string"},"type":"array","title":"Authors"}},"type":"object","title":"FollowingListOut"},"FooterBlock":{"properties":{"brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand"},"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline"},"productHeading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Productheading"},"resourcesHeading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resourcesheading"},"companyHeading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Companyheading"},"links":{"anyOf":[{"$ref":"#/components/schemas/FooterLinks"},{"type":"null"}]},"copyright":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Copyright"}},"type":"object","title":"FooterBlock"},"FooterLinks":{"properties":{"rag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rag"},"catalog":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catalog"},"library":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Library"},"features":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Features"},"doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc"},"guide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guide"},"api":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api"},"about":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"About"},"blog":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blog"},"contact":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact"},"privacy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Privacy"},"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms"},"cookies":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cookies"}},"type":"object","title":"FooterLinks"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeroCopy":{"properties":{"badge":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Badge"},"title1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title1"},"title2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title2"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"heroTrustLine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Herotrustline"},"ctaStart":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ctastart"},"ctaBrowseCatalog":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ctabrowsecatalog"},"ctaDiscover":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ctadiscover"}},"type":"object","title":"HeroCopy"},"HowItWorksBlock":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"steps":{"items":{"$ref":"#/components/schemas/HowStep"},"type":"array","title":"Steps"}},"type":"object","title":"HowItWorksBlock"},"HowStep":{"properties":{"number":{"type":"string","title":"Number","default":"1"},"title":{"type":"string","minLength":1,"title":"Title"},"description":{"type":"string","minLength":1,"title":"Description"}},"type":"object","required":["title","description"],"title":"HowStep"},"ImpactBlock":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"beforeTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Beforetitle"},"beforeItems":{"items":{"type":"string"},"type":"array","title":"Beforeitems"},"afterTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aftertitle"},"afterItems":{"items":{"type":"string"},"type":"array","title":"Afteritems"},"cta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta"}},"type":"object","title":"ImpactBlock"},"LLMProvider":{"type":"string","enum":["openai","gemini"],"title":"LLMProvider","description":"Provider LLM (dual-provider production RAG)."},"LandingContentResponse":{"properties":{"version":{"type":"integer","title":"Version","default":1},"source":{"type":"string","title":"Source","default":"data_prompts_knowledge/_platform/landing.json"},"partnersEnterprise":{"items":{"$ref":"#/components/schemas/LandingPartnerItem"},"type":"array","title":"Partnersenterprise"},"partnersTech":{"items":{"$ref":"#/components/schemas/LandingPartnerItem"},"type":"array","title":"Partnerstech"},"locales":{"additionalProperties":{"$ref":"#/components/schemas/LandingLocaleBlock"},"type":"object","title":"Locales"}},"type":"object","title":"LandingContentResponse"},"LandingLocaleBlock":{"properties":{"trustPills":{"items":{"type":"string"},"type":"array","title":"Trustpills"},"audiencePills":{"items":{"type":"string"},"type":"array","title":"Audiencepills"},"faq":{"items":{"$ref":"#/components/schemas/FaqItem"},"type":"array","title":"Faq"},"testimonials":{"items":{"$ref":"#/components/schemas/TestimonialItem"},"type":"array","title":"Testimonials"},"nav":{"additionalProperties":{"type":"string"},"type":"object","title":"Nav","description":"Clés = identifiants nav (home, dashboard, prompts, …) — surchargent les libellés i18n."},"hero":{"anyOf":[{"$ref":"#/components/schemas/HeroCopy"},{"type":"null"}]},"statsLabels":{"anyOf":[{"$ref":"#/components/schemas/StatsLabels"},{"type":"null"}]},"quickNav":{"anyOf":[{"$ref":"#/components/schemas/QuickNavLabels"},{"type":"null"}]},"partnersCopy":{"anyOf":[{"$ref":"#/components/schemas/PartnersCopy"},{"type":"null"}]},"socialProofTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Socialprooftitle"},"services":{"anyOf":[{"$ref":"#/components/schemas/ServicesBlock"},{"type":"null"}]},"valueProposition":{"anyOf":[{"$ref":"#/components/schemas/ValuePropositionBlock"},{"type":"null"}]},"rulesMcp":{"anyOf":[{"$ref":"#/components/schemas/RulesMcpBlock"},{"type":"null"}]},"featuredKnowledge":{"anyOf":[{"$ref":"#/components/schemas/FeaturedKnowledgeBlock"},{"type":"null"}]},"featuresGrid":{"anyOf":[{"$ref":"#/components/schemas/FeaturesGridBlock"},{"type":"null"}]},"impact":{"anyOf":[{"$ref":"#/components/schemas/ImpactBlock"},{"type":"null"}]},"howItWorks":{"anyOf":[{"$ref":"#/components/schemas/HowItWorksBlock"},{"type":"null"}]},"faqTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faqtitle"},"testimonialsSection":{"anyOf":[{"$ref":"#/components/schemas/TestimonialsSectionTitles"},{"type":"null"}]},"finalCta":{"anyOf":[{"$ref":"#/components/schemas/FinalCtaBlock"},{"type":"null"}]},"stickyMobile":{"anyOf":[{"$ref":"#/components/schemas/StickyMobileBlock"},{"type":"null"}]},"footer":{"anyOf":[{"$ref":"#/components/schemas/FooterBlock"},{"type":"null"}]},"catalogPage":{"anyOf":[{"$ref":"#/components/schemas/CatalogPageCopy"},{"type":"null"}]},"rulesPage":{"anyOf":[{"$ref":"#/components/schemas/RulesPageCopy"},{"type":"null"}]},"mcpPage":{"anyOf":[{"$ref":"#/components/schemas/McpPageCopy"},{"type":"null"}]}},"type":"object","title":"LandingLocaleBlock"},"LandingPartnerItem":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"src":{"type":"string","minLength":1,"title":"Src","description":"URL publique (ex. /partners/foo.png)"}},"type":"object","required":["name","src"],"title":"LandingPartnerItem"},"LibrarySummaryData":{"properties":{"total":{"type":"integer","title":"Total"},"kinds":{"additionalProperties":true,"type":"object","title":"Kinds"},"visibility":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Visibility"}},"type":"object","required":["total","kinds"],"title":"LibrarySummaryData"},"LibrarySummaryResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"data":{"$ref":"#/components/schemas/LibrarySummaryData"}},"type":"object","required":["success","data"],"title":"LibrarySummaryResponse"},"LoginRequest":{"properties":{"user_id":{"type":"string","minLength":1,"title":"User Id"},"username":{"type":"string","minLength":1,"title":"Username"}},"type":"object","required":["user_id","username"],"title":"LoginRequest","description":"Connexion : identifiants validés par Pydantic (min_length)."},"McpPageCopy":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"submitCta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submitcta"},"searchPlaceholder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Searchplaceholder"}},"type":"object","title":"McpPageCopy"},"MyCommunityRank":{"properties":{"rank":{"type":"integer","title":"Rank","default":0},"score":{"type":"number","title":"Score","default":0.0},"totalAuthors":{"type":"integer","title":"Totalauthors","default":0},"percentile":{"type":"number","title":"Percentile","default":0.0},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname"},"onBoard":{"type":"boolean","title":"Onboard","default":false}},"type":"object","title":"MyCommunityRank"},"MyRatingsResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"data":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["data","total"],"title":"MyRatingsResponse"},"Page_CatalogContentItemOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CatalogContentItemOut"},"type":"array","title":"Items"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total":{"type":"integer","title":"Total"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["items","page","page_size","total","pages"],"title":"Page[CatalogContentItemOut]"},"Page_UserOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UserOut"},"type":"array","title":"Items"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total":{"type":"integer","title":"Total"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["items","page","page_size","total","pages"],"title":"Page[UserOut]"},"PartnersCopy":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"techLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Techlabel"},"enterpriseAria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enterprisearia"},"techAria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Techaria"}},"type":"object","title":"PartnersCopy"},"PlanEntitlements":{"properties":{"catalogAccess":{"type":"boolean","title":"Catalogaccess","default":true},"favoritesLimit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Favoriteslimit"},"resourceGroupsLimit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Resourcegroupslimit"},"ragQueriesPerMonth":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Ragqueriespermonth"},"exportsPerMonth":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Exportspermonth"},"prioritySupport":{"type":"boolean","title":"Prioritysupport","default":false},"earlyAccess":{"type":"boolean","title":"Earlyaccess","default":false}},"type":"object","title":"PlanEntitlements"},"ProfileCompleteness":{"properties":{"score":{"type":"integer","title":"Score","default":0},"missing":{"items":{"type":"string"},"type":"array","title":"Missing"},"checks":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Checks"}},"type":"object","title":"ProfileCompleteness"},"PromptCompareCompact":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"kind":{"type":"string","title":"Kind","default":"prompt"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"rating":{"type":"number","title":"Rating","default":0}},"type":"object","title":"PromptCompareCompact"},"PromptCompareRequest":{"properties":{"leftId":{"type":"string","minLength":1,"title":"Leftid"},"rightId":{"type":"string","minLength":1,"title":"Rightid"}},"type":"object","required":["leftId","rightId"],"title":"PromptCompareRequest"},"PromptCompareResponse":{"properties":{"left":{"$ref":"#/components/schemas/PromptCompareCompact"},"right":{"$ref":"#/components/schemas/PromptCompareCompact"},"sharedTags":{"items":{"type":"string"},"type":"array","title":"Sharedtags"},"leftOnlyTags":{"items":{"type":"string"},"type":"array","title":"Leftonlytags"},"rightOnlyTags":{"items":{"type":"string"},"type":"array","title":"Rightonlytags"},"sameKind":{"type":"boolean","title":"Samekind"},"sameCategory":{"type":"boolean","title":"Samecategory"},"overlapScore":{"type":"number","title":"Overlapscore"},"stats":{"additionalProperties":true,"type":"object","title":"Stats"}},"type":"object","required":["left","right","sharedTags","leftOnlyTags","rightOnlyTags","sameKind","sameCategory","overlapScore","stats"],"title":"PromptCompareResponse"},"PromptCompleteness":{"properties":{"title":{"type":"boolean","title":"Title"},"description":{"type":"boolean","title":"Description"},"content":{"type":"boolean","title":"Content"},"category":{"type":"boolean","title":"Category"},"tags":{"type":"boolean","title":"Tags"}},"type":"object","required":["title","description","content","category","tags"],"title":"PromptCompleteness"},"PromptCreate":{"properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":500,"minLength":1,"title":"Description"},"content":{"type":"string","minLength":1,"title":"Content"},"category":{"type":"string","minLength":1,"title":"Category"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"authorUrl":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Authorurl"},"authorAvatar":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Authoravatar"},"kind":{"anyOf":[{"$ref":"#/components/schemas/PromptKind"},{"type":"null"}],"default":"prompt"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"visibility":{"anyOf":[{"$ref":"#/components/schemas/ContentVisibility"},{"type":"null"}],"default":"private"}},"type":"object","required":["title","description","content","category"],"title":"PromptCreate","description":"Schéma pour la création de prompts"},"PromptDailyResponse":{"properties":{"date":{"type":"string","title":"Date"},"item":{"$ref":"#/components/schemas/PromptResponse"}},"type":"object","required":["date","item"],"title":"PromptDailyResponse"},"PromptDetailBundleResponse":{"properties":{"item":{"$ref":"#/components/schemas/PromptResponse"},"related":{"items":{"$ref":"#/components/schemas/PromptResponse"},"type":"array","title":"Related"},"stats":{"$ref":"#/components/schemas/PromptStatsResponse"},"neighbors":{"$ref":"#/components/schemas/PromptNeighborsResponse"}},"type":"object","required":["item","related","stats","neighbors"],"title":"PromptDetailBundleResponse","description":"Données nécessaires à la modale de prévisualisation (item + annexes)."},"PromptExportBundleRequest":{"properties":{"ids":{"items":{"type":"string"},"type":"array","maxItems":25,"minItems":1,"title":"Ids"},"format":{"type":"string","pattern":"^(markdown|json|zip)$","title":"Format","default":"markdown"}},"type":"object","required":["ids"],"title":"PromptExportBundleRequest"},"PromptExportBundleResponse":{"properties":{"format":{"type":"string","title":"Format"},"filename":{"type":"string","title":"Filename"},"body":{"type":"string","title":"Body"},"count":{"type":"integer","title":"Count"},"missing":{"items":{"type":"string"},"type":"array","title":"Missing"},"encoding":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encoding"}},"type":"object","required":["format","filename","body","count","missing"],"title":"PromptExportBundleResponse"},"PromptExportResponse":{"properties":{"format":{"type":"string","title":"Format"},"filename":{"type":"string","title":"Filename"},"body":{"type":"string","title":"Body"},"encoding":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encoding"}},"type":"object","required":["format","filename","body"],"title":"PromptExportResponse","description":"Export téléchargeable d’un prompt."},"PromptKind":{"type":"string","enum":["prompt","rule","mcp","skill"],"title":"PromptKind","description":"Type d'élément dans la bibliothèque personnelle"},"PromptListResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"data":{"items":{"$ref":"#/components/schemas/PromptResponse"},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["success","data","total","limit","offset"],"title":"PromptListResponse","description":"Schéma pour la liste de prompts"},"PromptNeighborsResponse":{"properties":{"previous":{"anyOf":[{"$ref":"#/components/schemas/PromptCompareCompact"},{"type":"null"}]},"next":{"anyOf":[{"$ref":"#/components/schemas/PromptCompareCompact"},{"type":"null"}]}},"type":"object","title":"PromptNeighborsResponse"},"PromptPreviewRequest":{"properties":{"title":{"type":"string","title":"Title","default":""},"description":{"type":"string","title":"Description","default":""},"content":{"type":"string","title":"Content","default":""},"category":{"type":"string","title":"Category","default":""},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"kind":{"anyOf":[{"$ref":"#/components/schemas/PromptKind"},{"type":"null"}],"default":"prompt"}},"type":"object","title":"PromptPreviewRequest","description":"Brouillon à analyser (création / édition)."},"PromptPreviewResponse":{"properties":{"words":{"type":"integer","title":"Words"},"chars":{"type":"integer","title":"Chars"},"lines":{"type":"integer","title":"Lines"},"tokensEst":{"type":"integer","title":"Tokensest"},"headings":{"items":{"type":"string"},"type":"array","title":"Headings"},"suggestedTags":{"items":{"type":"string"},"type":"array","title":"Suggestedtags"},"suggestedTitle":{"type":"string","title":"Suggestedtitle","default":""},"suggestedDescription":{"type":"string","title":"Suggesteddescription","default":""},"completeness":{"$ref":"#/components/schemas/PromptCompleteness"},"ready":{"type":"boolean","title":"Ready"},"kind":{"type":"string","title":"Kind"}},"type":"object","required":["words","chars","lines","tokensEst","headings","suggestedTags","completeness","ready","kind"],"title":"PromptPreviewResponse","description":"Statistiques et suggestions pour un brouillon."},"PromptReportOut":{"properties":{"id":{"type":"string","title":"Id"},"promptId":{"type":"string","title":"Promptid"},"status":{"type":"string","title":"Status","default":"received"}},"type":"object","required":["id","promptId"],"title":"PromptReportOut"},"PromptReportRequest":{"properties":{"reason":{"type":"string","maxLength":280,"minLength":3,"title":"Reason"},"details":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Details"}},"type":"object","required":["reason"],"title":"PromptReportRequest"},"PromptResponse":{"properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":500,"minLength":1,"title":"Description"},"content":{"type":"string","minLength":1,"title":"Content"},"category":{"type":"string","minLength":1,"title":"Category"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"authorUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorurl"},"authorAvatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authoravatar"},"id":{"type":"string","title":"Id"},"kind":{"type":"string","title":"Kind","default":"prompt"},"author":{"type":"string","title":"Author"},"rating":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Rating"},"usageCount":{"type":"integer","minimum":0.0,"title":"Usagecount"},"isTrending":{"type":"boolean","title":"Istrending"},"createdAt":{"type":"string","title":"Createdat"},"updatedAt":{"type":"string","title":"Updatedat"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"words":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Words"},"tokensEst":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Tokensest"},"favoritesReceived":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Favoritesreceived"},"likes":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Likes"},"ratingCount":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Ratingcount"},"myRating":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Myrating"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibility","default":"private"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"published"},"ownerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ownerid"}},"type":"object","required":["title","description","content","category","id","author","rating","usageCount","isTrending","createdAt","updatedAt"],"title":"PromptResponse","description":"Schéma de réponse pour un prompt"},"PromptShareResponse":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"kind":{"type":"string","title":"Kind"},"category":{"type":"string","title":"Category"},"path":{"type":"string","title":"Path"},"text":{"type":"string","title":"Text"},"markdown":{"type":"string","title":"Markdown"}},"type":"object","required":["id","title","description","kind","category","path","text","markdown"],"title":"PromptShareResponse"},"PromptStatsResponse":{"properties":{"id":{"type":"string","title":"Id"},"words":{"type":"integer","title":"Words"},"chars":{"type":"integer","title":"Chars"},"lines":{"type":"integer","title":"Lines"},"tokensEst":{"type":"integer","title":"Tokensest"},"headings":{"items":{"type":"string"},"type":"array","title":"Headings"},"rating":{"type":"number","title":"Rating","default":0},"ratingCount":{"type":"integer","title":"Ratingcount","default":0},"myRating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Myrating"},"usageCount":{"type":"integer","title":"Usagecount","default":0},"favoritesReceived":{"type":"integer","title":"Favoritesreceived","default":0}},"type":"object","required":["id","words","chars","lines","tokensEst","headings"],"title":"PromptStatsResponse"},"PromptUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"kind":{"anyOf":[{"$ref":"#/components/schemas/PromptKind"},{"type":"null"}]},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"authorUrl":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Authorurl"},"authorAvatar":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Authoravatar"},"visibility":{"anyOf":[{"$ref":"#/components/schemas/ContentVisibility"},{"type":"null"}]}},"type":"object","title":"PromptUpdate","description":"Schéma pour la mise à jour de prompts"},"QueryIn":{"properties":{"sql":{"type":"string","maxLength":8000,"minLength":6,"title":"Sql"}},"type":"object","required":["sql"],"title":"QueryIn"},"QuickNavLabels":{"properties":{"partners":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partners"},"services":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Services"},"features":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Features"},"rulesMcp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rulesmcp"},"faq":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faq"},"testimonials":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Testimonials"}},"type":"object","title":"QuickNavLabels"},"RatingBreakdownResponse":{"properties":{"promptId":{"type":"string","title":"Promptid"},"avg":{"type":"number","title":"Avg"},"count":{"type":"integer","title":"Count"},"distribution":{"additionalProperties":true,"type":"object","title":"Distribution"},"myRating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Myrating"}},"type":"object","required":["promptId","avg","count","distribution"],"title":"RatingBreakdownResponse"},"RatingOut":{"properties":{"promptId":{"type":"string","title":"Promptid"},"rating":{"type":"number","title":"Rating"},"ratingCount":{"type":"integer","title":"Ratingcount"},"myRating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Myrating"},"item":{"anyOf":[{"$ref":"#/components/schemas/PromptResponse"},{"type":"null"}]},"removed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Removed"}},"type":"object","required":["promptId","rating","ratingCount"],"title":"RatingOut","description":"Résultat d’une notation utilisateur."},"RatingRequest":{"properties":{"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating"}},"type":"object","required":["rating"],"title":"RatingRequest","description":"Schéma pour soumettre une notation"},"RecommendationsOut":{"properties":{"authors":{"items":{"$ref":"#/components/schemas/AuthorCommunityCard"},"type":"array","title":"Authors"}},"type":"object","title":"RecommendationsOut"},"RegisterRequest":{"properties":{"user_id":{"type":"string","minLength":1,"title":"User Id"},"username":{"type":"string","minLength":1,"title":"Username"},"email":{"type":"string","minLength":0,"title":"Email","default":""}},"type":"object","required":["user_id","username"],"title":"RegisterRequest","description":"Inscription : identifiants + email optionnel."},"ResourceGroupAddItem":{"properties":{"resourceId":{"type":"string","maxLength":120,"minLength":1,"title":"Resourceid"},"resourceKind":{"type":"string","maxLength":32,"title":"Resourcekind","default":"prompt"},"titleSnapshot":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Titlesnapshot"}},"type":"object","required":["resourceId"],"title":"ResourceGroupAddItem"},"ResourceGroupCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"description":{"type":"string","maxLength":2000,"title":"Description","default":""},"icon":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Icon"}},"type":"object","required":["name"],"title":"ResourceGroupCreate"},"ResourceGroupItemOut":{"properties":{"id":{"type":"string","title":"Id"},"resourceId":{"type":"string","title":"Resourceid"},"resourceKind":{"type":"string","title":"Resourcekind","default":"prompt"},"position":{"type":"integer","title":"Position","default":0},"titleSnapshot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Titlesnapshot"},"addedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Addedat"}},"type":"object","required":["id","resourceId"],"title":"ResourceGroupItemOut"},"ResourceGroupListResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"data":{"items":{"$ref":"#/components/schemas/ResourceGroupOut"},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["data","total"],"title":"ResourceGroupListResponse"},"ResourceGroupOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"coverUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverurl"},"sortOrder":{"type":"integer","title":"Sortorder","default":0},"itemCount":{"type":"integer","title":"Itemcount","default":0},"kindCounts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Kindcounts"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Createdat"},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updatedat"},"items":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResourceGroupItemOut"},"type":"array"},{"type":"null"}],"title":"Items"}},"type":"object","required":["id","name"],"title":"ResourceGroupOut"},"ResourceGroupReorder":{"properties":{"resourceIds":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Resourceids"}},"type":"object","required":["resourceIds"],"title":"ResourceGroupReorder"},"ResourceGroupUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"icon":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Icon"},"sortOrder":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sortorder"}},"type":"object","title":"ResourceGroupUpdate"},"RoleOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"level":{"type":"integer","title":"Level"},"is_system":{"type":"boolean","title":"Is System"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"}},"type":"object","required":["id","name","description","level","is_system"],"title":"RoleOut"},"RulesMcpBlock":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"rulesTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rulestitle"},"rulesDesc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rulesdesc"},"mcpTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcptitle"},"mcpDesc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcpdesc"}},"type":"object","title":"RulesMcpBlock"},"RulesPageCopy":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"submitCta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submitcta"},"searchPlaceholder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Searchplaceholder"}},"type":"object","title":"RulesPageCopy"},"ServiceCardCopy":{"properties":{"id":{"type":"string","minLength":1,"title":"Id"},"title":{"type":"string","minLength":1,"title":"Title"},"desc":{"type":"string","minLength":1,"title":"Desc"},"cta":{"type":"string","minLength":1,"title":"Cta"}},"type":"object","required":["id","title","desc","cta"],"title":"ServiceCardCopy"},"ServicesBlock":{"properties":{"kicker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kicker"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"footnote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Footnote"},"cards":{"items":{"$ref":"#/components/schemas/ServiceCardCopy"},"type":"array","title":"Cards"}},"type":"object","title":"ServicesBlock"},"SsoIdentity":{"properties":{"provider":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Provider"},"displayName":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Displayname"},"avatarUrl":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Avatarurl"},"syncedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Syncedat"}},"type":"object","title":"SsoIdentity","description":"Identité du compte SSO (Google, GitHub…) utilisée par défaut sur le profil."},"StatsByKind":{"properties":{"prompt":{"type":"integer","minimum":0.0,"title":"Prompt","default":0},"rule":{"type":"integer","minimum":0.0,"title":"Rule","default":0},"mcp":{"type":"integer","minimum":0.0,"title":"Mcp","default":0},"skill":{"type":"integer","minimum":0.0,"title":"Skill","default":0},"knowledge":{"type":"integer","minimum":0.0,"title":"Knowledge","default":0}},"type":"object","title":"StatsByKind","description":"Comptes par type de ressource catalogue."},"StatsCreatorsBreakdown":{"properties":{"total":{"type":"integer","minimum":0.0,"title":"Total","default":0},"new30d":{"type":"integer","minimum":0.0,"title":"New30D","default":0}},"type":"object","title":"StatsCreatorsBreakdown","description":"Contributeurs ayant au moins une ressource publiée."},"StatsLabels":{"properties":{"prompts":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompts"},"users":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Users"},"kinds":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kinds"},"rating":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rating"}},"type":"object","title":"StatsLabels"},"StatsResourcesBreakdown":{"properties":{"byKind":{"$ref":"#/components/schemas/StatsByKind"},"kindsCount":{"type":"integer","minimum":0.0,"title":"Kindscount","description":"Nombre de kinds non vides","default":0},"new7d":{"type":"integer","minimum":0.0,"title":"New7D","default":0},"new30d":{"type":"integer","minimum":0.0,"title":"New30D","default":0},"totalCollections":{"type":"integer","minimum":0.0,"title":"Totalcollections","default":0},"ratingCount":{"type":"integer","minimum":0.0,"title":"Ratingcount","description":"Nombre de notes community prises en compte pour averageRating","default":0}},"type":"object","title":"StatsResourcesBreakdown","description":"Volumes ressources + collections."},"StatsResponse":{"properties":{"totalPrompts":{"type":"integer","minimum":0.0,"title":"Totalprompts"},"totalUsers":{"type":"integer","minimum":0.0,"title":"Totalusers"},"totalRequests":{"type":"integer","minimum":0.0,"title":"Totalrequests"},"averageRating":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Averagerating"},"trends":{"anyOf":[{"$ref":"#/components/schemas/StatsTrends"},{"type":"null"}]},"users":{"anyOf":[{"$ref":"#/components/schemas/StatsUsersBreakdown"},{"type":"null"}]},"creators":{"anyOf":[{"$ref":"#/components/schemas/StatsCreatorsBreakdown"},{"type":"null"}]},"resources":{"anyOf":[{"$ref":"#/components/schemas/StatsResourcesBreakdown"},{"type":"null"}]},"generatedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generatedat"}},"type":"object","required":["totalPrompts","totalUsers","totalRequests","averageRating"],"title":"StatsResponse","description":"Schéma de réponse pour les statistiques plateforme (données réelles uniquement)."},"StatsTrends":{"properties":{"periodDays":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Perioddays","default":30},"promptsPercent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Promptspercent","description":"Variation % des nouvelles ressources vs période précédente"},"usersPercent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Userspercent","description":"Variation % des nouveaux comptes vs période précédente"},"requestsPercent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Requestspercent","description":"Variation % d'usage — None tant qu'il n'y a pas d'event store"},"creatorsPercent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Creatorspercent","description":"Variation % des nouveaux créateurs vs période précédente"}},"type":"object","title":"StatsTrends","description":"Variations vs période précédente (None = baseline indisponible — ne pas inventer)."},"StatsUsersBreakdown":{"properties":{"new7d":{"type":"integer","minimum":0.0,"title":"New7D","default":0},"new30d":{"type":"integer","minimum":0.0,"title":"New30D","default":0},"active30d":{"type":"integer","minimum":0.0,"title":"Active30D","description":"Comptes avec last_login_at dans les 30 derniers jours","default":0}},"type":"object","title":"StatsUsersBreakdown","description":"Sous-métriques utilisateurs (toutes calculées depuis Postgres quand dispo)."},"StickyMobileBlock":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","title":"StickyMobileBlock"},"TestimonialItem":{"properties":{"author":{"type":"string","minLength":1,"title":"Author"},"role":{"type":"string","title":"Role","default":""},"quote":{"type":"string","minLength":1,"title":"Quote"},"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating","default":5},"initial":{"type":"string","maxLength":4,"title":"Initial","default":""}},"type":"object","required":["author","quote"],"title":"TestimonialItem"},"TestimonialsSectionTitles":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"}},"type":"object","title":"TestimonialsSectionTitles"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["access_token","token_type","expires_in"],"title":"Token","description":"Token response"},"UserActivityData":{"properties":{"favorites":{"type":"integer","title":"Favorites"},"recentlyViewed":{"type":"integer","title":"Recentlyviewed"},"library":{"type":"integer","title":"Library"}},"type":"object","required":["favorites","recentlyViewed","library"],"title":"UserActivityData"},"UserActivityResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"data":{"$ref":"#/components/schemas/UserActivityData"}},"type":"object","required":["success","data"],"title":"UserActivityResponse"},"UserOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"clerk_user_id":{"type":"string","title":"Clerk User Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"role":{"type":"string","title":"Role"},"status":{"type":"string","title":"Status"},"is_active":{"type":"boolean","title":"Is Active"},"suspended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Suspended At"},"suspension_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suspension Reason"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"permissions":{"items":{"type":"string"},"type":"array","title":"Permissions"}},"type":"object","required":["id","clerk_user_id","email","display_name","avatar_url","role","status","is_active","suspended_at","suspension_reason","last_login_at","created_at","updated_at","deleted_at"],"title":"UserOut"},"UserPreferencesUpdate":{"properties":{"darkMode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Darkmode"},"emailNotifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Emailnotifications"}},"type":"object","title":"UserPreferencesUpdate","description":"Schéma pour mettre à jour les préférences"},"UserResponse":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"username":{"type":"string","title":"Username"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"},"preferences":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Preferences"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"pseudo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pseudo"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"}},"type":"object","required":["id","email","username"],"title":"UserResponse","description":"Schéma de réponse pour un utilisateur"},"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"},"ValueMinicard":{"properties":{"label":{"type":"string","minLength":1,"title":"Label"},"detail":{"type":"string","minLength":1,"title":"Detail"}},"type":"object","required":["label","detail"],"title":"ValueMinicard"},"ValuePropositionBlock":{"properties":{"whyTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whytitle"},"whySubtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Whysubtitle"},"bullets":{"items":{"type":"string"},"type":"array","title":"Bullets"},"minicards":{"items":{"$ref":"#/components/schemas/ValueMinicard"},"type":"array","title":"Minicards"},"activationNote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activationnote"}},"type":"object","title":"ValuePropositionBlock"},"VisibilityUpdate":{"properties":{"visibility":{"$ref":"#/components/schemas/ContentVisibility"}},"type":"object","required":["visibility"],"title":"VisibilityUpdate","description":"Changement de visibilité (publish / unpublish)."},"WebVitalPayload":{"properties":{"name":{"type":"string","maxLength":16,"title":"Name"},"value":{"type":"number","maximum":3600000.0,"minimum":0.0,"title":"Value"},"rating":{"type":"string","maxLength":32,"title":"Rating","default":"unknown"},"id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Id"}},"type":"object","required":["name","value"],"title":"WebVitalPayload"},"WebVitalResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true}},"type":"object","title":"WebVitalResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}