{"openapi":"3.1.0","info":{"title":"GLC-RAG API","description":" \n    Determinisztikus RAG rendszer - API-first & Headless AI backend \n     \n    ## Főbb jellemzők \n     \n    * **Rule-first, LLM fallback**: Determinisztikus döntéshozatal \n    * **Audit log**: Minden művelet nyomon követhető \n    * **Trace ID**: Minden válasz trace-elhető \n    * **Tenant izoláció**: Szigorú adatizoláció \n    * **ResponseEnvelope**: Fix sémával minden válasz \n     \n    ## Specifikáció \n     \n    * Specifikáció: `rag_spec_v2.md` \n    * API verzió: a hivatalos forrás a /openapi.json és a health/root válasz version mezője. \n    ","version":"1.0.0"},"paths":{"/":{"get":{"tags":["Info","Info"],"summary":"Root","description":"Root endpoint - API információk \n\nReturns: \n    API információk és verzió","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["Info","Info"],"summary":"Health Check","description":"Health check endpoint \n\nM10: Részletes health check DB + LLM (llama.cpp) + DocumentStore státusszal \n\nReturns: \n    Health check eredmény (status, timestamp, checks) \n\nStatus codes: \n    - 200: Szolgáltatás elérhető (healthy vagy degraded) \n    - 503: Szolgáltatás nem elérhető (unhealthy)","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/login":{"post":{"tags":["Auth"],"summary":"Login","description":"User login endpoint \nM9: Valós autentikáció JWT token-nel \n\nReturns: \n    JWT token + user info","operationId":"login_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/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/verify":{"post":{"tags":["Auth"],"summary":"Verify Token","description":"Token validáció endpoint \nM9: JWT token ellenőrzése \n\nReturns: \n    User info ha token valid","operationId":"verify_token_auth_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/auth/logout":{"post":{"tags":["Auth"],"summary":"Logout","description":"Logout endpoint \nM9: Token invalidálás (client-side token törlés) \n\nNote: JWT token-ek stateless-ek, ezért server-side invalidálás nincs. \nA client törli a token-t localStorage-ból.","operationId":"logout_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/auth/register":{"post":{"tags":["Auth"],"summary":"Register","description":"Új tenant admin regisztráció. Email megerősítés kötelező.","operationId":"register_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/google":{"post":{"tags":["Auth"],"summary":"Google Auth","description":"Google Sign-In: frontend küldi a Google `id_token`-t, backend verifikál, majd saját JWT-t ad. \n\n- flow=login: meglévő userrel belépés \n- flow=register: ha a tenant még nem létezett, bootstrap (ajándék kredit), majd user létrehozás és belépés","operationId":"google_auth_auth_google_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/confirm-email":{"get":{"tags":["Auth"],"summary":"Confirm Email Get","description":"Email megerősítés (GET, linkre kattintáskor). Böngészőből HTML, API híváskor JSON.","operationId":"confirm_email_get_auth_confirm_email_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Auth"],"summary":"Confirm Email Post","description":"Email megerősítés (POST, body/query token).","operationId":"confirm_email_post_auth_confirm_email_post","parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/resend-confirmation":{"post":{"tags":["Auth"],"summary":"Resend Confirmation","description":"Megerősítő link újraküldése. Mindig ugyanaz a válasz (ne árulkodjunk).","operationId":"resend_confirmation_auth_resend_confirmation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendConfirmationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/forgot-password":{"post":{"tags":["Auth"],"summary":"Forgot Password","description":"Elfelejtett jelszó: email + tenant_id. Mindig ugyanaz a válasz.","operationId":"forgot_password_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/reset-password":{"post":{"tags":["Auth"],"summary":"Reset Password","description":"Jelszó visszaállítás token alapján.","operationId":"reset_password_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/benchmark/start":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Start Benchmark","description":"Benchmark indítása \n \nElindít egy háttérfolyamatot, amely: \n1. Teszt query-ket generál (vagy golden set-ből vesz) \n2. Grid search-et futtat különböző paraméterekkel \n3. Kiválasztja a legjobb konfigurációt","operationId":"start_benchmark_admin_benchmark_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BenchmarkStartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BenchmarkStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/benchmark/status/{job_id}":{"get":{"tags":["Admin - RAG Benchmark"],"summary":"Get Benchmark Status","description":"Benchmark státusz lekérése","operationId":"get_benchmark_status_admin_benchmark_status__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":{"$ref":"#/components/schemas/BenchmarkStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/benchmark/cancel/{job_id}":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Cancel Benchmark","description":"Benchmark megszakítása","operationId":"cancel_benchmark_admin_benchmark_cancel__job_id__post","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/benchmark/running":{"get":{"tags":["Admin - RAG Benchmark"],"summary":"Get Running Benchmark","description":"Futó benchmark job lekérése (ha van). \nOldal frissítés után a folyamatjelző helyreállításához.","operationId":"get_running_benchmark_admin_benchmark_running_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/benchmark/reset-stuck":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Reset Stuck Jobs","description":"Beragadt benchmark job-ok resetelése. \nHa egy job \"running\" vagy \"pending\" státuszban van és régebbi mint max_age_minutes, \nakkor \"failed\" státuszba kerül.","operationId":"reset_stuck_jobs_admin_benchmark_reset_stuck_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"max_age_minutes","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":1,"default":30,"title":"Max Age Minutes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/benchmark/force-cancel/{job_id}":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Force Cancel Benchmark","description":"Benchmark erőltetett megszakítása (beragadt job-ok manuális törlése)","operationId":"force_cancel_benchmark_admin_benchmark_force_cancel__job_id__post","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/benchmark/results/{tenant_id}":{"get":{"tags":["Admin - RAG Benchmark"],"summary":"Get Benchmark Results","description":"Benchmark eredmények lekérése","operationId":"get_benchmark_results_admin_benchmark_results__tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/benchmark/results/{tenant_id}/{result_id}":{"get":{"tags":["Admin - RAG Benchmark"],"summary":"Get Benchmark Result Detail","description":"Egy benchmark eredmény részletei","operationId":"get_benchmark_result_detail_admin_benchmark_results__tenant_id___result_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"result_id","in":"path","required":true,"schema":{"type":"integer","title":"Result Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/rag/configs/{tenant_id}":{"get":{"tags":["Admin - RAG Benchmark"],"summary":"Get Rag Configs","description":"RAG konfigurációk lekérése (branch-ek)","operationId":"get_rag_configs_admin_rag_configs__tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Rag Configs Admin Rag Configs  Tenant Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/rag/configs":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Create Rag Config","description":"Új RAG konfiguráció létrehozása","operationId":"create_rag_config_admin_rag_configs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagConfigCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/rag/configs/{config_id}":{"put":{"tags":["Admin - RAG Benchmark"],"summary":"Update Rag Config","description":"RAG konfiguráció frissítése","operationId":"update_rag_config_admin_rag_configs__config_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"integer","title":"Config Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagConfigUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin - RAG Benchmark"],"summary":"Delete Rag Config","description":"RAG konfiguráció törlése (aktív nem törölhető)","operationId":"delete_rag_config_admin_rag_configs__config_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"integer","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/rag/configs/{config_id}/activate":{"put":{"tags":["Admin - RAG Benchmark"],"summary":"Activate Rag Config","description":"RAG konfiguráció aktiválása","operationId":"activate_rag_config_admin_rag_configs__config_id__activate_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"integer","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/golden-sets/{tenant_id}":{"get":{"tags":["Admin - RAG Benchmark"],"summary":"Get Golden Sets","description":"Golden set-ek lekérése","operationId":"get_golden_sets_admin_golden_sets__tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/golden-sets":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Create Golden Set","description":"Új golden set létrehozása","operationId":"create_golden_set_admin_golden_sets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenSetCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenSetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/golden-sets/{golden_set_id}":{"put":{"tags":["Admin - RAG Benchmark"],"summary":"Update Golden Set","description":"Golden set frissítése","operationId":"update_golden_set_admin_golden_sets__golden_set_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"golden_set_id","in":"path","required":true,"schema":{"type":"integer","title":"Golden Set Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenSetUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenSetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin - RAG Benchmark"],"summary":"Delete Golden Set","description":"Golden set törlése","operationId":"delete_golden_set_admin_golden_sets__golden_set_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"golden_set_id","in":"path","required":true,"schema":{"type":"integer","title":"Golden Set Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/golden-sets/generate/start":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Start Golden Set Generate","description":"Golden set generálás háttérben; azonnal visszaad job_id-t, a frontend poll-olja a status-t.","operationId":"start_golden_set_generate_admin_golden_sets_generate_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenSetGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/golden-sets/generate/status":{"get":{"tags":["Admin - RAG Benchmark"],"summary":"Get Golden Set Generate Status","description":"Golden set generate job állapota: pending | done (result = golden_set dict) | error.","operationId":"get_golden_set_generate_status_admin_golden_sets_generate_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"Start válaszából kapott job_id","title":"Job Id"},"description":"Start válaszából kapott job_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/golden-sets/generate":{"post":{"tags":["Admin - RAG Benchmark"],"summary":"Generate Golden Set","description":"Golden set automatikus generálása LLM-mel (blokkoló). Preferáld a /golden-sets/generate/start + status poll flow-t.","operationId":"generate_golden_set_admin_golden_sets_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenSetGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenSetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models":{"get":{"tags":["LLM Models"],"summary":"List Models","description":"Összes LLM endpoint listája (llm_endpoints_config.DEFAULT_LLM_ENDPOINTS). \nhealth=True: online státusz is (health check, lassabb). \nhealth=False: csak config + árak, státusz nélkül (gyors).","operationId":"list_models_api_llm_models_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"health","in":"query","required":false,"schema":{"type":"boolean","description":"Ha False, kihagyja a health check-et (gyorsabb, LLM Models árak laphoz)","default":true,"title":"Health"},"description":"Ha False, kihagyja a health check-et (gyorsabb, LLM Models árak laphoz)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/llm-models/endpoint-ids":{"get":{"tags":["LLM Models"],"summary":"Get Llm Endpoint Ids","description":"Külön végpont: a config-ban definiált LLM endpoint id-k listája. \nA statisztikában csak ezekhez az endpoint_id-khoz tartozó sorok számítanak LLM hívásként.","operationId":"get_llm_endpoint_ids_api_llm_models_endpoint_ids_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointIdsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models/{endpoint_id}/status":{"get":{"tags":["LLM Models"],"summary":"Get Endpoint Status","description":"Egy endpoint státusza (config + health check + árak).","operationId":"get_endpoint_status_api_llm_models__endpoint_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/llm-models/prices":{"put":{"tags":["LLM Models"],"summary":"Update Llm Prices","description":"Éles (primary) árak mentése. Csak System Admin.","operationId":"update_llm_prices_api_llm_models_prices_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmPricesUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models/fallback1-prices":{"put":{"tags":["LLM Models"],"summary":"Update Fallback1 Prices","description":"Fallback 1 árak mentése. Csak System Admin.","operationId":"update_fallback1_prices_api_llm_models_fallback1_prices_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmPricesUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models/fallback2-prices":{"put":{"tags":["LLM Models"],"summary":"Update Fallback2 Prices","description":"Fallback 2 (OpenAI) árak mentése. Csak System Admin.","operationId":"update_fallback2_prices_api_llm_models_fallback2_prices_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmPricesUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models/fallback-chain":{"get":{"tags":["LLM Models"],"summary":"List Fallback Chain","description":"Összes endpoint + fallback_chain csak DB-ből (LlmEndpointHealthDB primary/fallback1/fallback2).","operationId":"list_fallback_chain_api_llm_models_fallback_chain_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models/health-status":{"get":{"tags":["LLM Models"],"summary":"Get Health Status","description":"Minden endpoint: primary + fallback1 + fallback2 health státusz a DB-ből (config alapján lista).","operationId":"get_health_status_api_llm_models_health_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models/health-status/run":{"post":{"tags":["LLM Models"],"summary":"Run Health Check","description":"Manuálisan indítja a modellre irányuló checket háttérszálban (összes vagy egy endpoint). Azonnal visszatér. System Admin only.","operationId":"run_health_check_api_llm_models_health_status_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthStatusRunBody","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/llm-models/health-status/details":{"get":{"tags":["LLM Models"],"summary":"Get Health Status Details","description":"Egy ág hibaválasza (response_body) a DB-ből. System Admin only.","operationId":"get_health_status_details_api_llm_models_health_status_details_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"query","required":true,"schema":{"type":"string","description":"Endpoint ID","title":"Endpoint Id"},"description":"Endpoint ID"},{"name":"level","in":"query","required":true,"schema":{"type":"string","description":"primary | fallback1 | fallback2","title":"Level"},"description":"primary | fallback1 | fallback2"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/llm-models/prices/all-levels":{"get":{"tags":["LLM Models"],"summary":"Get All Price Levels","description":"Mindhárom szint árai egyben (frontend tab-okhoz).","operationId":"get_all_price_levels_api_llm_models_prices_all_levels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/chat/transcribe":{"post":{"tags":["Chat"],"summary":"Transcribe Audio","description":"Speech-to-Text: hangfelvétel transzkripciója Whisper API-val. \nA szöveg a chat input mezőbe kerül (nem küld automatikusan).","operationId":"transcribe_audio_chat_transcribe_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_transcribe_audio_chat_transcribe_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Transcribe Audio Chat Transcribe Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/chat/tool/confirm":{"post":{"tags":["Chat"],"summary":"Tool Confirm","description":"Tool confirm endpoint - Tool végrehajtás megerősítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \ntenant_id és user_id a JWT-ből jön!","operationId":"tool_confirm_chat_tool_confirm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolConfirmRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Tool Confirm Chat Tool Confirm Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/chat":{"post":{"tags":["Chat"],"summary":"Chat","description":"Chat endpoint \n\nSECURITY: Dual authentication - JWT OR widget token \n- Internal channel: JWT token required (tenant_id/user_id from JWT) \n- Public channel: widget token required (tenant_id from widget token)","operationId":"chat_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEnvelope"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/chat/stream":{"post":{"tags":["Chat","Chat"],"summary":"Chat Stream","description":"Chat streaming endpoint - Server-Sent Events (SSE) \n\nSECURITY: Dual authentication - JWT OR widget token \n- Internal channel: JWT token required \n- Public channel: widget token required","operationId":"chat_stream_chat_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/chat":{"post":{"tags":["Chat","API v1"],"summary":"Api V1 Chat","description":"Backend-to-Backend Chat API \n\nHasználat: \n``` \ncurl -X POST https://your-server/api/v1/chat \\ \n  -H \"X-API-Key: rak_your_api_key_here\" \\ \n  -H \"Content-Type: application/json\" \\ \n  -d '{\"text\": \"Keresek piros női cipőt\", \"mode\": \"shopping\"}' \n``` \n\nHeaders: \n- X-API-Key: Kötelező - Backend API key (rak_ prefix) \n\nRequest body: \n- text: A felhasználó üzenete \n- session_id: Opcionális session azonosító (ha nincs, generálunk) \n- mode: Opcionális mód (rag, shopping, creative, archive) \n\nResponse: \n- trace_id: Nyomkövetési azonosító \n- status_code: OK, NO_RESULT_DOC, NO_PRODUCTS, stb. \n- text: AI válasz szövege \n- sources: RAG források (ha releváns) \n- products: Termékek (shopping mód esetén) \n- mode: Használt mód","operationId":"api_v1_chat_api_v1_chat_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/config":{"get":{"tags":["Widget"],"summary":"Widget Config","description":"Publikus config: api_base_url a BACKEND_URL env-ből. \nA /widget oldal és az embed snippet ezt hívja (same-origin), így mindig a helyes base URL-t használják.","operationId":"widget_config_widget_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/proxy-image":{"get":{"tags":["Widget","Widget"],"summary":"Widget Proxy Image","description":"Termékkép proxy – külső képek CORS nélkül is betöltődnek a beágyazott widgetben. \nSSRF védelem: csak http(s), belső IP-k tiltva. \nCORS: kép cross-origin betöltéséhez (pl. pergel.hu → backend) Access-Control-Allow-Origin.","operationId":"widget_proxy_image_widget_proxy_image_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Image URL to proxy","title":"Url"},"description":"Image URL to proxy"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/chat":{"post":{"tags":["Widget","Widget"],"summary":"Widget Chat","description":"Widget Chat endpoint - beágyazott widget-ek számára \n\nSpecifikáció: Public/External RAG dokumentumok + Public Widget \n\nKülönbség a /chat endpoint-hoz képest: \n- Token ID alapú hitelesítés (nem raw token) \n- Egyszerűsített request (csak text, token_id, session_id) \n- Automatikus public channel és tenant_id feloldás \n\nBiztonság: \n- allowed_origins validáció (Origin header) \n- Rate limiting per token","operationId":"widget_chat_widget_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEnvelope"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Widget","Widget"],"summary":"Widget Chat Options","description":"CORS preflight handler for widget chat","operationId":"widget_chat_options_widget_chat_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/chat/stream":{"post":{"tags":["Widget","Widget"],"summary":"Widget Chat Stream","description":"Widget chat SSE: status (kumulatív fázisok) → final ResponseEnvelope.\nAuth / 401 / 402 a stream indulása előtt; futás közbeni hibák error eventként.","operationId":"widget_chat_stream_widget_chat_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Widget","Widget"],"summary":"Widget Chat Stream Options","description":"CORS preflight for widget chat SSE.","operationId":"widget_chat_stream_options_widget_chat_stream_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/survey-submit":{"post":{"tags":["Widget","Widget"],"summary":"Widget Survey Submit","description":"Publikus kérdőív beküldés (widget token + session).","operationId":"widget_survey_submit_widget_survey_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetSurveySubmitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/turn":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Intake Turn","operationId":"quote_public_intake_turn_widget_quote_public_intake_turn_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Turn Options","operationId":"quote_public_turn_options_widget_quote_public_intake_turn_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/turn/stream":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Intake Turn Stream","description":"SSE — szabad szöveg turn (ui_action → használd a JSON /intake/turn-t).","operationId":"quote_public_intake_turn_stream_widget_quote_public_intake_turn_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Turn Stream Options","operationId":"quote_public_turn_stream_options_widget_quote_public_intake_turn_stream_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/session":{"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Patch Options","operationId":"quote_public_patch_options_widget_quote_public_intake_session_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Patch Session","operationId":"quote_public_patch_session_widget_quote_public_intake_session_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicPatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/handoff":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Handoff","operationId":"quote_public_handoff_widget_quote_public_intake_handoff_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicHandoffBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Handoff Options","operationId":"quote_public_handoff_options_widget_quote_public_intake_handoff_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/pause-and-email":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Pause And Email","operationId":"quote_public_pause_and_email_widget_quote_public_intake_pause_and_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicPauseEmailBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Pause Options","operationId":"quote_public_pause_options_widget_quote_public_intake_pause_and_email_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/resume":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Resume","operationId":"quote_public_resume_widget_quote_public_intake_resume_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicResumeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Resume Options","operationId":"quote_public_resume_options_widget_quote_public_intake_resume_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/abandon-session":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Abandon Session","operationId":"quote_public_abandon_session_widget_quote_public_intake_abandon_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicAbandonSessionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Abandon Session Options","operationId":"quote_public_abandon_session_options_widget_quote_public_intake_abandon_session_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/abandon":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Abandon","operationId":"quote_public_abandon_widget_quote_public_intake_abandon_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicAbandonBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Abandon Options","operationId":"quote_public_abandon_options_widget_quote_public_intake_abandon_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/review/from-token":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review From Token","operationId":"quote_public_review_from_token_widget_quote_public_intake_review_from_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewFromTokenBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review From Token Options","operationId":"quote_public_review_from_token_options_widget_quote_public_intake_review_from_token_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public/intake/review/{request_id}/start-session":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Start Session","operationId":"quote_public_review_start_session_widget_quote_public_intake_review__request_id__start_session_post","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewStartBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/tier-alternatives":{"get":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Intake Tier Alternatives","operationId":"quote_public_intake_tier_alternatives_widget_quote_public_intake_tier_alternatives_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"catalog_item_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Catalog Item Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":16,"minimum":1,"default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/tier-alternatives":{"get":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Tier Alternatives","operationId":"quote_public_review_tier_alternatives_widget_quote_public_intake_review_tier_alternatives_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"catalog_item_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Catalog Item Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":16,"minimum":1,"default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/catalog-search":{"get":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Intake Catalog Search","operationId":"quote_public_intake_catalog_search_widget_quote_public_intake_catalog_search_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":500,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":25,"minimum":1,"default":12,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/browse-domain":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Set Browse Domain","description":"Zárt katalógus — browse domain nem elérhető.","operationId":"quote_public_set_browse_domain_widget_quote_public_intake_browse_domain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicBrowseDomainBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/catalog-pick":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Intake Catalog Pick","operationId":"quote_public_intake_catalog_pick_widget_quote_public_intake_catalog_pick_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewCatalogPickBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/catalog-search":{"get":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Catalog Search","operationId":"quote_public_review_catalog_search_widget_quote_public_intake_review_catalog_search_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":500,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":25,"minimum":1,"default":12,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/session/turn":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Turn","operationId":"quote_public_review_turn_widget_quote_public_intake_review_session_turn_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewTurnBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/session/catalog-pick":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Catalog Pick","operationId":"quote_public_review_catalog_pick_widget_quote_public_intake_review_session_catalog_pick_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewCatalogPickBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/session":{"patch":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Patch Session","operationId":"quote_public_review_patch_session_widget_quote_public_intake_review_session_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewPatchBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/{request_id}/submit-revision":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Submit Revision","operationId":"quote_public_review_submit_revision_widget_quote_public_intake_review__request_id__submit_revision_post","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewActionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/{request_id}/confirm-order":{"post":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Review Confirm Order","operationId":"quote_public_review_confirm_order_widget_quote_public_intake_review__request_id__confirm_order_post","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewActionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/intake/review/{request_id}":{"get":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Customer Review","operationId":"quote_public_customer_review_widget_quote_public_intake_review__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"quote_public_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Public Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public/config":{"get":{"tags":["Quote Public Widget (Zárt)"],"summary":"Quote Public Config","operationId":"quote_public_config_widget_quote_public_config_get","parameters":[{"name":"quote_public_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Public Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/turn":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Intake Turn","operationId":"quote_public_intake_turn_widget_quote_public_open_intake_turn_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Turn Options","operationId":"quote_public_turn_options_widget_quote_public_open_intake_turn_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/turn/stream":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Intake Turn Stream","description":"SSE — szabad szöveg turn vagy ui_action (nyitott lane, nem blokkoló worker).","operationId":"quote_public_intake_turn_stream_widget_quote_public_open_intake_turn_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Turn Stream Options","operationId":"quote_public_turn_stream_options_widget_quote_public_open_intake_turn_stream_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/session":{"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Patch Options","operationId":"quote_public_patch_options_widget_quote_public_open_intake_session_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Patch Session","operationId":"quote_public_patch_session_widget_quote_public_open_intake_session_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/src__api__quote_public_open_widget_router__QuotePublicPatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/handoff":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Handoff","operationId":"quote_public_handoff_widget_quote_public_open_intake_handoff_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicHandoffBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Handoff Options","operationId":"quote_public_handoff_options_widget_quote_public_open_intake_handoff_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/pause-and-email":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Pause And Email","operationId":"quote_public_pause_and_email_widget_quote_public_open_intake_pause_and_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicPauseEmailBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Pause Options","operationId":"quote_public_pause_options_widget_quote_public_open_intake_pause_and_email_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/resume":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Resume","operationId":"quote_public_resume_widget_quote_public_open_intake_resume_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicResumeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Resume Options","operationId":"quote_public_resume_options_widget_quote_public_open_intake_resume_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/abandon-session":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Abandon Session","operationId":"quote_public_abandon_session_widget_quote_public_open_intake_abandon_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicAbandonSessionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Abandon Session Options","operationId":"quote_public_abandon_session_options_widget_quote_public_open_intake_abandon_session_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/abandon":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Abandon","operationId":"quote_public_abandon_widget_quote_public_open_intake_abandon_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicAbandonBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Abandon Options","operationId":"quote_public_abandon_options_widget_quote_public_open_intake_abandon_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/review/from-token":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review From Token","operationId":"quote_public_review_from_token_widget_quote_public_open_intake_review_from_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewFromTokenBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review From Token Options","operationId":"quote_public_review_from_token_options_widget_quote_public_open_intake_review_from_token_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/review/{request_id}/start-session":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Start Session","operationId":"quote_public_review_start_session_widget_quote_public_open_intake_review__request_id__start_session_post","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewStartBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/tier-alternatives":{"get":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Intake Tier Alternatives","operationId":"quote_public_intake_tier_alternatives_widget_quote_public_open_intake_tier_alternatives_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"catalog_item_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Catalog Item Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":16,"minimum":1,"default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/tier-alternatives":{"get":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Tier Alternatives","operationId":"quote_public_review_tier_alternatives_widget_quote_public_open_intake_review_tier_alternatives_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"catalog_item_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Catalog Item Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":16,"minimum":1,"default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/catalog-search":{"get":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Intake Catalog Search","operationId":"quote_public_intake_catalog_search_widget_quote_public_open_intake_catalog_search_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":500,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":25,"minimum":1,"default":12,"title":"Limit"}},{"name":"browse_domain_scope_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Browse Domain Scope Id"}},{"name":"requirement_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Requirement Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/browse-domain":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Set Browse Domain","operationId":"quote_public_set_browse_domain_widget_quote_public_open_intake_browse_domain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicBrowseDomainBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/catalog-pick/stream":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Intake Catalog Pick Stream","description":"SSE — catalog-pick (threadpool, status hint a nehéz stabilize/gather LLM alatt).","operationId":"quote_public_intake_catalog_pick_stream_widget_quote_public_open_intake_catalog_pick_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewCatalogPickBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Intake Catalog Pick Stream Options","operationId":"quote_public_intake_catalog_pick_stream_options_widget_quote_public_open_intake_catalog_pick_stream_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/intake/catalog-pick":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Intake Catalog Pick","operationId":"quote_public_intake_catalog_pick_widget_quote_public_open_intake_catalog_pick_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewCatalogPickBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/catalog-search":{"get":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Catalog Search","operationId":"quote_public_review_catalog_search_widget_quote_public_open_intake_review_catalog_search_get","parameters":[{"name":"quote_public_token","in":"query","required":true,"schema":{"type":"string","minLength":8,"title":"Quote Public Token"}},{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Session Id"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":500,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":25,"minimum":1,"default":12,"title":"Limit"}},{"name":"browse_domain_scope_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Browse Domain Scope Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/session/turn":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Turn","operationId":"quote_public_review_turn_widget_quote_public_open_intake_review_session_turn_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewTurnBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/session/catalog-pick":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Catalog Pick","operationId":"quote_public_review_catalog_pick_widget_quote_public_open_intake_review_session_catalog_pick_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewCatalogPickBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/session":{"patch":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Patch Session","operationId":"quote_public_review_patch_session_widget_quote_public_open_intake_review_session_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewPatchBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/{request_id}/submit-revision":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Submit Revision","operationId":"quote_public_review_submit_revision_widget_quote_public_open_intake_review__request_id__submit_revision_post","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewActionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/{request_id}/confirm-order":{"post":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Review Confirm Order","operationId":"quote_public_review_confirm_order_widget_quote_public_open_intake_review__request_id__confirm_order_post","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicReviewActionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/intake/review/{request_id}":{"get":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Customer Review","operationId":"quote_public_customer_review_widget_quote_public_open_intake_review__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"quote_public_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Public Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/public-open/config":{"get":{"tags":["Quote Public Widget (Teljes)"],"summary":"Quote Public Config","operationId":"quote_public_config_widget_quote_public_open_config_get","parameters":[{"name":"quote_public_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Public Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widget/quote/chat":{"post":{"tags":["Quote Public Chat"],"summary":"Quote Public Chat Turn","description":"Publikus quote widget szabad szöveg / ui_action — ``channel=public_quote`` policy a globális routerben.","operationId":"quote_public_chat_turn_widget_quote_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Chat"],"summary":"Quote Public Chat Options","operationId":"quote_public_chat_options_widget_quote_chat_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/chat/stream":{"post":{"tags":["Quote Public Chat"],"summary":"Quote Public Chat Turn Stream","description":"SSE — ugyanaz mint ``POST …/intake/turn/stream`` (dedikált chat URL).","operationId":"quote_public_chat_turn_stream_widget_quote_chat_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Chat"],"summary":"Quote Public Chat Stream Options","operationId":"quote_public_chat_stream_options_widget_quote_chat_stream_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/chat":{"post":{"tags":["Quote Public Open Chat"],"summary":"Quote Public Open Chat Turn","operationId":"quote_public_open_chat_turn_widget_quote_public_open_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Open Chat"],"summary":"Quote Public Open Chat Options","operationId":"quote_public_open_chat_options_widget_quote_public_open_chat_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget/quote/public-open/chat/stream":{"post":{"tags":["Quote Public Open Chat"],"summary":"Quote Public Open Chat Turn Stream","description":"SSE — ugyanaz mint ``POST …/intake/turn/stream`` (nyitott chat URL).","operationId":"quote_public_open_chat_turn_stream_widget_quote_public_open_chat_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTurnRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["Quote Public Open Chat"],"summary":"Quote Public Open Chat Stream Options","operationId":"quote_public_open_chat_stream_options_widget_quote_public_open_chat_stream_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/shopping":{"post":{"tags":["Shopping","Shopping"],"summary":"Shopping","description":"Shopping endpoint - termékajánlás \n\n## Specifikáció (F6: Shopping Module) \n\n- **Publikus**: Nem szükséges autentikáció (csak token) \n- **public_widget_token** vagy **token_id**: Kötelező (tenant azonosításhoz) \n- **session_id**: Kötelező","operationId":"shopping_shopping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShoppingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShoppingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/archive":{"get":{"tags":["Archive","Archive"],"summary":"Get Archive","description":"Archive read endpoint - Standalone archive olvasás \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \ntenant_id és user_id a JWT-ből jön!","operationId":"get_archive_archive_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Item Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Archive","Archive"],"summary":"Create Archive","description":"Archive write endpoint - Standalone archive írás \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \ntenant_id és user_id a JWT-ből jön!","operationId":"create_archive_archive_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArchiveCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/archive/items/{item_id}":{"delete":{"tags":["Archive","Archive"],"summary":"Delete Archive Item","description":"Archive elem törlése (soft delete). tenant_id és user_id a JWT-ből.","operationId":"delete_archive_item_archive_items__item_id__delete","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/archive/items/{item_id}/create-task":{"post":{"tags":["Archive","Archive"],"summary":"Create Task From Archive Reminder","description":"Emlékeztetőből task létrehozása (Archive-ból emelés taskba). \n\nCsak REMINDER típusú archive elemekből lehet taskot létrehozni. \nTasks írási jogosultság szükséges (EDITOR vagy magasabb).","operationId":"create_task_from_archive_reminder_archive_items__item_id__create_task_post","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects":{"get":{"tags":["Tasks"],"summary":"Get Projects","description":"Projekt lista (tenant scope). q: keresés név/leírás; is_active: szűrés aktív/inaktív.","operationId":"get_projects_admin_tasks_projects_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keresés a projekt nevében és leírásában","title":"Q"},"description":"Keresés a projekt nevében és leírásában"},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True: csak aktívak, False: csak inaktívak, nincs: mind","title":"Is Active"},"description":"True: csak aktívak, False: csak inaktívak, nincs: mind"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Project","description":"Új projekt","operationId":"create_project_admin_tasks_projects_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}":{"get":{"tags":["Tasks"],"summary":"Get Project","description":"Projekt részletek + feladatok. VIEWER: csak ha user taskja van a projektben.","operationId":"get_project_admin_tasks_projects__project_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Project","description":"Projekt végleges törlése: folyamat, feladatok, ügyfelek, költségvetés, majd projekt. Csak TENANT_ADMIN vagy SYSTEM_ADMIN.","operationId":"delete_project_admin_tasks_projects__project_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tasks"],"summary":"Update Project","description":"Projekt módosítás / inaktiválás. Inaktiválás: csak owner, TENANT_ADMIN vagy SYSTEM_ADMIN.","operationId":"update_project_admin_tasks_projects__project_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/documents":{"get":{"tags":["Tasks"],"summary":"Get Project Documents","description":"Projekthez csatolt dokumentumok: task_attachments RAG_DOCUMENT + internal_files (attach_file projekthez).","operationId":"get_project_documents_admin_tasks_projects__project_id__documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/documents-grouped":{"get":{"tags":["Tasks"],"summary":"Get Project Documents Grouped","description":"Projekt összes dokumentuma fázisonként és feladatonként csoportosítva, kontextussal.","operationId":"get_project_documents_grouped_admin_tasks_projects__project_id__documents_grouped_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/activity-feed":{"get":{"tags":["Tasks"],"summary":"Get Project Activity Feed","description":"Projekt szintű aktivitás: workflow futások (időrendben).","operationId":"get_project_activity_feed_admin_tasks_projects__project_id__activity_feed_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"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"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/report/tasks":{"get":{"tags":["Tasks"],"summary":"Get Project Report Tasks","description":"Projekt feladatainak kimutatása – JSON vagy CSV letöltés.","operationId":"get_project_report_tasks_admin_tasks_projects__project_id__report_tasks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","description":"json vagy csv","default":"json","title":"Format"},"description":"json vagy csv"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/report/workflow-executions":{"get":{"tags":["Tasks"],"summary":"Get Project Report Workflow Executions","description":"Projekt workflow futásainak kimutatása – JSON vagy CSV letöltés.","operationId":"get_project_report_workflow_executions_admin_tasks_projects__project_id__report_workflow_executions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"from_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Időszak kezdete (ISO)","title":"From Ts"},"description":"Időszak kezdete (ISO)"},{"name":"to_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Időszak vége (ISO)","title":"To Ts"},"description":"Időszak vége (ISO)"},{"name":"format","in":"query","required":false,"schema":{"type":"string","description":"json vagy csv","default":"json","title":"Format"},"description":"json vagy csv"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":500,"title":"Limit"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/files":{"post":{"tags":["Tasks"],"summary":"Upload Project File","description":"Fájl feltöltés a projekthez → internal_files.project_id","operationId":"upload_project_file_admin_tasks_projects__project_id__files_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_project_file_admin_tasks_projects__project_id__files_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/clients":{"get":{"tags":["Tasks"],"summary":"List Project Clients","description":"Projekthez tartozó ügyfelek listája.","operationId":"list_project_clients_admin_tasks_projects__project_id__clients_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Project Client","description":"Ügyfél felvétele a projekthez. company_id esetén ügyfélkezelőből; különben name kötelező.","operationId":"create_project_client_admin_tasks_projects__project_id__clients_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectClientCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/clients/{client_id}":{"patch":{"tags":["Tasks"],"summary":"Update Project Client","description":"Ügyfél szerkesztése. Ha company_id/person_id megadva, name/email/phone felülíródik az ügyfélkezelőből.","operationId":"update_project_client_admin_tasks_projects__project_id__clients__client_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectClientUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Project Client","description":"Ügyfél törlése.","operationId":"delete_project_client_admin_tasks_projects__project_id__clients__client_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/budget":{"get":{"tags":["Tasks"],"summary":"Get Project Budget","operationId":"get_project_budget_admin_tasks_projects__project_id__budget_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tasks"],"summary":"Update Project Budget","operationId":"update_project_budget_admin_tasks_projects__project_id__budget_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/cost-summary":{"get":{"tags":["Tasks"],"summary":"Get Project Cost Summary","operationId":"get_project_cost_summary_admin_tasks_projects__project_id__cost_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/cost-breakdown":{"get":{"tags":["Tasks"],"summary":"Get Project Cost Breakdown","description":"Projekt feladatainak költségvetés bontása: feladatonkénti tervezett és tényleges.","operationId":"get_project_cost_breakdown_admin_tasks_projects__project_id__cost_breakdown_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/budget":{"get":{"tags":["Tasks"],"summary":"Get Task Budget","operationId":"get_task_budget_admin_tasks_tasks__task_id__budget_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tasks"],"summary":"Update Task Budget","operationId":"update_task_budget_admin_tasks_tasks__task_id__budget_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/cost-summary":{"get":{"tags":["Tasks"],"summary":"Get Task Cost Summary","operationId":"get_task_cost_summary_admin_tasks_tasks__task_id__cost_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/cost-types":{"get":{"tags":["Tasks"],"summary":"List Cost Types","operationId":"list_cost_types_admin_tasks_cost_types_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Cost Type","operationId":"create_cost_type_admin_tasks_cost_types_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostTypeCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/cost-types/{type_id}":{"patch":{"tags":["Tasks"],"summary":"Update Cost Type","operationId":"update_cost_type_admin_tasks_cost_types__type_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type_id","in":"path","required":true,"schema":{"type":"string","title":"Type Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostTypeUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Cost Type","operationId":"delete_cost_type_admin_tasks_cost_types__type_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"type_id","in":"path","required":true,"schema":{"type":"string","title":"Type Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/cost-entries":{"get":{"tags":["Tasks"],"summary":"List Task Cost Entries","operationId":"list_task_cost_entries_admin_tasks_tasks__task_id__cost_entries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Task Cost Entry","operationId":"create_task_cost_entry_admin_tasks_tasks__task_id__cost_entries_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostEntryCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/cost-entries/{entry_id}":{"delete":{"tags":["Tasks"],"summary":"Delete Task Cost Entry","operationId":"delete_task_cost_entry_admin_tasks_tasks__task_id__cost_entries__entry_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/client-forms/{form_id}":{"get":{"tags":["Tasks"],"summary":"Get Client Form","description":"Űrlap adatok + kérdések + válaszok + csatolt fájlok (letöltési link).","operationId":"get_client_form_admin_tasks_client_forms__form_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"form_id","in":"path","required":true,"schema":{"type":"string","title":"Form Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tasks"],"summary":"Update Client Form","description":"Űrlap szerkesztés (csak submitted előtt). title, is_blocking.","operationId":"update_client_form_admin_tasks_client_forms__form_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"form_id","in":"path","required":true,"schema":{"type":"string","title":"Form Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/summary":{"get":{"tags":["Tasks"],"summary":"Get Project Summary","description":"Projekt állapot jelentés – adatgyűjtés + opcionális LLM projektvezetői összefoglaló (blokkoló; InternalChat stb.).","operationId":"get_project_summary_admin_tasks_projects__project_id__summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"use_llm","in":"query","required":false,"schema":{"type":"boolean","description":"LLM összefoglaló generálása","default":true,"title":"Use Llm"},"description":"LLM összefoglaló generálása"},{"name":"instruction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Kiegészítő instrukció az LLM-nek (opcionális)","title":"Instruction"},"description":"Kiegészítő instrukció az LLM-nek (opcionális)"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/summary/start":{"post":{"tags":["Tasks"],"summary":"Start Project Summary","description":"Összefoglaló generálás indítása háttérben; azonnal visszaad job_id-t, a frontend poll-olja a status-t.","operationId":"start_project_summary_admin_tasks_projects__project_id__summary_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ProjectSummaryStartBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/summary/status":{"get":{"tags":["Tasks"],"summary":"Get Project Summary Status","description":"Poll: pending | done + result | error. TTL után 404.","operationId":"get_project_summary_status_admin_tasks_projects__project_id__summary_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/users":{"get":{"tags":["Tasks"],"summary":"Get Tasks Users","description":"Tenant userek (@mention autocomplete)","operationId":"get_tasks_users_admin_tasks_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keresés user_id vagy email alapján","title":"Q"},"description":"Keresés user_id vagy email alapján"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/inbox-summary":{"get":{"tags":["Tasks"],"summary":"Get Inbox Summary","description":"Inbox olvasatlan üzenetek száma (badge)","operationId":"get_inbox_summary_admin_tasks_inbox_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/task-categories":{"get":{"tags":["Tasks"],"summary":"Get Task Categories","description":"Kategória lista (tenant scope) - alapértelmezettek automatikusan létrejönnek","operationId":"get_task_categories_admin_tasks_task_categories_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks":{"get":{"tags":["Tasks"],"summary":"Get Tasks","description":"Task lista (szűrők: project_id, project_id_null, q, from_date, to_date, include_archived, pagináció). VIEWER: csak saját taskok.","operationId":"get_tasks_admin_tasks_tasks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"project_id_null","in":"query","required":false,"schema":{"type":"boolean","description":"Csak projekt nélküli feladatok","default":false,"title":"Project Id Null"},"description":"Csak projekt nélküli feladatok"},{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"}},{"name":"assignee_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Id"}},{"name":"assigner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigner Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keresés a feladat nevében, leírásában és az üzenetei szövegében","title":"Q"},"description":"Keresés a feladat nevében, leírásában és az üzenetei szövegében"},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"created_at >= (ISO date)","title":"From Date"},"description":"created_at >= (ISO date)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"created_at <= (ISO date)","title":"To Date"},"description":"created_at <= (ISO date)"},{"name":"include_archived","in":"query","required":false,"schema":{"type":"boolean","description":"Archivált feladatok (is_active=false)","default":false,"title":"Include Archived"},"description":"Archivált feladatok (is_active=false)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":500,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Task","description":"Új task","operationId":"create_task_admin_tasks_tasks_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/bulk":{"patch":{"tags":["Tasks"],"summary":"Bulk Update Tasks","description":"Tömeges task módosítás: státusz, assignee, is_active (archiválás), due_at (határidő). EDITOR csak rád osztott feladatokat módosíthat.","operationId":"bulk_update_tasks_admin_tasks_tasks_bulk_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskBulkUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}":{"get":{"tags":["Tasks"],"summary":"Get Task","description":"Task részletek + messages + attachments. VIEWER: csak ha assignee vagy assigner.","operationId":"get_task_admin_tasks_tasks__task_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tasks"],"summary":"Update Task","description":"Task módosítás: státusz, assignee, stb. Cím módosítás: csak létrehozó vagy megbízott.","operationId":"update_task_admin_tasks_tasks__task_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Task","description":"Feladat végleges törlése (diagram szerkesztőből vagy admin listából). EDITOR csak saját (assigner_id) feladatot törölhet.","operationId":"delete_task_admin_tasks_tasks__task_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/documents":{"get":{"tags":["Tasks"],"summary":"Get Task Documents","description":"Összes feladathoz kapcsolódó dokumentum: task_attachments, internal_files, ügyfél űrlap csatolmányok. Kontextussal ahol lehet.","operationId":"get_task_documents_admin_tasks_tasks__task_id__documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/activity-feed":{"get":{"tags":["Tasks"],"summary":"Get Task Activity Feed","description":"Feladat szintű aktivitás: üzenetek + workflow futások, időrendben (legújabb először).","operationId":"get_task_activity_feed_admin_tasks_tasks__task_id__activity_feed_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"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"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/client-forms":{"get":{"tags":["Tasks"],"summary":"List Task Client Forms","description":"Feladathoz tartozó ügyfél űrlapok listája.","operationId":"list_task_client_forms_admin_tasks_tasks__task_id__client_forms_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Task Client Form","description":"Új ügyfél űrlap (kérdésekkel). Visszaadja a form_id-t és a perma linket.","operationId":"create_task_client_form_admin_tasks_tasks__task_id__client_forms_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientFormCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/client-forms/{form_id}/send-invitation":{"post":{"tags":["Tasks"],"summary":"Send Client Form Invitation Email","description":"Ügyfél űrlap meghívó e-mail újraküldése a címzettnek (formon beállított címzett).","operationId":"send_client_form_invitation_email_admin_tasks_tasks__task_id__client_forms__form_id__send_invitation_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"form_id","in":"path","required":true,"schema":{"type":"string","title":"Form Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/client-forms/{form_id}/documents":{"get":{"tags":["Tasks"],"summary":"Get Client Form Documents","description":"Űrlap letölthető dokumentumai (admin). Dupla védelem: form a task-hoz tartozik.","operationId":"get_client_form_documents_admin_tasks_tasks__task_id__client_forms__form_id__documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"form_id","in":"path","required":true,"schema":{"type":"string","title":"Form Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Add Client Form Document","description":"Dokumentum csatolása az űrlaphoz (ügyfél letöltheti). Dupla védelem: form a task-hoz tartozik.","operationId":"add_client_form_document_admin_tasks_tasks__task_id__client_forms__form_id__documents_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"form_id","in":"path","required":true,"schema":{"type":"string","title":"Form Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_add_client_form_document_admin_tasks_tasks__task_id__client_forms__form_id__documents_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/client-forms/{form_id}/documents/{document_id}":{"delete":{"tags":["Tasks"],"summary":"Delete Client Form Document","description":"Űrlap dokumentum törlése (csak a form_documents sor). Dupla védelem: form a task-hoz tartozik.","operationId":"delete_client_form_document_admin_tasks_tasks__task_id__client_forms__form_id__documents__document_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"form_id","in":"path","required":true,"schema":{"type":"string","title":"Form Id"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/export-pdf":{"get":{"tags":["Tasks"],"summary":"Export Task Pdf","description":"Task jelentés PDF letöltése (pénzügyi szekcióval).","operationId":"export_task_pdf_admin_tasks_tasks__task_id__export_pdf_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/export-pdf":{"get":{"tags":["Tasks"],"summary":"Export Project Pdf","description":"Projekt jelentés PDF letöltése – feladatok listája, pénzügyi összefoglalóval.","operationId":"export_project_pdf_admin_tasks_projects__project_id__export_pdf_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/messages/summary":{"get":{"tags":["Tasks"],"summary":"Get Task Messages Summary","description":"Task üzeneteinek AI összefoglalója; projekt/fázis és (DONE esetén) következő feladat beleértve (blokkoló).","operationId":"get_task_messages_summary_admin_tasks_tasks__task_id__messages_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"use_llm","in":"query","required":false,"schema":{"type":"boolean","description":"LLM összefoglaló generálása","default":true,"title":"Use Llm"},"description":"LLM összefoglaló generálása"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/messages/summary/start":{"post":{"tags":["Tasks"],"summary":"Start Task Messages Summary","description":"Feladat üzenetek összefoglaló indítása háttérben; azonnal visszaad job_id-t, a frontend poll-olja a status-t.","operationId":"start_task_messages_summary_admin_tasks_tasks__task_id__messages_summary_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TaskMessagesSummaryStartBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/messages/summary/status":{"get":{"tags":["Tasks"],"summary":"Get Task Messages Summary Status","description":"Poll: pending | done + result | error. TTL után 404.","operationId":"get_task_messages_summary_status_admin_tasks_tasks__task_id__messages_summary_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/summary/export-pdf":{"post":{"tags":["Tasks"],"summary":"Export Task Summary Pdf","description":"Összefoglaló PDF letöltése: feladat címe, összefoglaló szöveg, alul tenant + szerkesztő név.","operationId":"export_task_summary_pdf_admin_tasks_tasks__task_id__summary_export_pdf_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskSummaryExportPdfBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/projects/{project_id}/summary/export-pdf":{"post":{"tags":["Tasks"],"summary":"Export Project Summary Pdf","description":"Projekt összefoglaló PDF letöltése: projekt név, összefoglaló szöveg, statisztika, alul tenant + szerkesztő (magyar ékezetek).","operationId":"export_project_summary_pdf_admin_tasks_projects__project_id__summary_export_pdf_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSummaryExportPdfBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/duplicate":{"post":{"tags":["Tasks"],"summary":"Duplicate Task","description":"Hasonló task létrehozása – ugyanaz a projekt, kategória, assignee. Opcionális project_id: más projekthez másolás.","operationId":"duplicate_task_admin_tasks_tasks__task_id__duplicate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cél projekt (ha más projekthez másoljuk)","title":"Project Id"},"description":"Cél projekt (ha más projekthez másoljuk)"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/notify-assignee":{"post":{"tags":["Tasks"],"summary":"Notify Task Assignee","description":"Email értesítés küldése a task címzettjének (assignee)","operationId":"notify_task_assignee_admin_tasks_tasks__task_id__notify_assignee_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/postpone-due":{"post":{"tags":["Tasks"],"summary":"Postpone Task Due","description":"Határidő halasztása N nappal","operationId":"postpone_task_due_admin_tasks_tasks__task_id__postpone_due_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Napok száma","default":7,"title":"Days"},"description":"Napok száma"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/add-to-calendar":{"post":{"tags":["Tasks"],"summary":"Add Task To Calendar","description":"Határidő naptárba emelése – create_calendar_event a task due_at és title alapján","operationId":"add_task_to_calendar_admin_tasks_tasks__task_id__add_to_calendar_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/add-reminder":{"post":{"tags":["Tasks"],"summary":"Add Task Reminder","description":"Emlékeztető 1 nappal a határidő előtt – naptárba emelés (due_at - 1 nap)","operationId":"add_task_reminder_admin_tasks_tasks__task_id__add_reminder_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/messages/{message_id}/view":{"post":{"tags":["Tasks"],"summary":"Mark Message Viewed","description":"Üzenet megjelölése megtekintettként (viewed_at)","operationId":"mark_message_viewed_admin_tasks_tasks__task_id__messages__message_id__view_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/messages":{"post":{"tags":["Tasks"],"summary":"Add Task Message","description":"Üzenet hozzáadása a taskhoz","operationId":"add_task_message_admin_tasks_tasks__task_id__messages_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/documents/search":{"get":{"tags":["Tasks"],"summary":"Search Documents","description":"RAG dokumentum keresés (tenant scope) – document_id, chunk_id listák, preview","operationId":"search_documents_admin_tasks_documents_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}},{"name":"top_k","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Top K"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/internal-files":{"post":{"tags":["Tasks"],"summary":"Upload Internal File","description":"Fájl feltöltés → internal_files tábla, [file:id] hivatkozás az üzenetben","operationId":"upload_internal_file_admin_tasks_internal_files_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_internal_file_admin_tasks_internal_files_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/internal-files/{file_id}":{"get":{"tags":["Tasks"],"summary":"Get Internal File","description":"Fájl letöltés / preview","operationId":"get_internal_file_admin_tasks_internal_files__file_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/tasks/{task_id}/attachments":{"post":{"tags":["Tasks"],"summary":"Add Task Attachment","description":"Csatolás hozzáadása (RAG_DOCUMENT, SCRIPT_PATTERN, UPLOADED_FILE)","operationId":"add_task_attachment_admin_tasks_tasks__task_id__attachments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachmentCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-processes":{"post":{"tags":["Tasks"],"summary":"Create Workflow Process","description":"Új workflow folyamat létrehozása. Ha project_id nincs: projekt létrehozása a name alapján.","operationId":"create_workflow_process_admin_tasks_workflow_processes_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowProcessCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Tasks"],"summary":"Get Workflow Processes","description":"Workflow folyamatok listája.","operationId":"get_workflow_processes_admin_tasks_workflow_processes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter projekthez tartozó folyamatokra","title":"Project Id"},"description":"Filter projekthez tartozó folyamatokra"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-processes/{process_id}":{"get":{"tags":["Tasks"],"summary":"Get Workflow Process","description":"Workflow folyamat + szabályok (fázisonként).","operationId":"get_workflow_process_admin_tasks_workflow_processes__process_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tasks"],"summary":"Update Workflow Process","description":"Workflow folyamat frissítés.","operationId":"update_workflow_process_admin_tasks_workflow_processes__process_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Workflow Process","description":"Workflow folyamat törlés (szabályok unlink).","operationId":"delete_workflow_process_admin_tasks_workflow_processes__process_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-processes/{process_id}/phases":{"post":{"tags":["Tasks"],"summary":"Create Phase","description":"Új fázis hozzáadása a folyamathoz.","operationId":"create_phase_admin_tasks_workflow_processes__process_id__phases_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhaseCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-processes/{process_id}/phases/{phase_id}":{"patch":{"tags":["Tasks"],"summary":"Update Phase","description":"Fázis név/order módosítása.","operationId":"update_phase_admin_tasks_workflow_processes__process_id__phases__phase_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}},{"name":"phase_id","in":"path","required":true,"schema":{"type":"string","title":"Phase Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhaseUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Phase","description":"Fázis törlése; a benne lévő feladatok/szabályok phase_id-je null lesz.","operationId":"delete_phase_admin_tasks_workflow_processes__process_id__phases__phase_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}},{"name":"phase_id","in":"path","required":true,"schema":{"type":"string","title":"Phase Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules":{"get":{"tags":["Tasks"],"summary":"Get Workflow Rules","description":"Workflow szabályok listája (tenant scope).","operationId":"get_workflow_rules_admin_tasks_workflow_rules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},{"name":"process_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter folyamat ID-ra","title":"Process Id"},"description":"Filter folyamat ID-ra"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Workflow Rule","description":"Új workflow szabály.","operationId":"create_workflow_rule_admin_tasks_workflow_rules_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRuleCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/batch":{"post":{"tags":["Tasks"],"summary":"Create Workflow Rules Batch","description":"Több workflow szabály egyszerre (pl. dokumentumból kinyert drafts). Ha tasks: projekt + feladatok is.","operationId":"create_workflow_rules_batch_admin_tasks_workflow_rules_batch_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRuleBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/{rule_id}/activity-feed":{"get":{"tags":["Tasks"],"summary":"Get Workflow Rule Activity Feed","description":"Workflow szabály utolsó futásai (activity log).","operationId":"get_workflow_rule_activity_feed_admin_tasks_workflow_rules__rule_id__activity_feed_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"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"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/{rule_id}":{"get":{"tags":["Tasks"],"summary":"Get Workflow Rule","description":"Egy workflow szabály lekérése.","operationId":"get_workflow_rule_admin_tasks_workflow_rules__rule_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Tasks"],"summary":"Update Workflow Rule","description":"Workflow szabály módosítása.","operationId":"update_workflow_rule_admin_tasks_workflow_rules__rule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRuleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Workflow Rule","description":"Workflow szabály törlése.","operationId":"delete_workflow_rule_admin_tasks_workflow_rules__rule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/from-document/start":{"post":{"tags":["Tasks"],"summary":"Start Workflow Rule From Document","description":"Workflow szabály draft PDF-ből háttérben; azonnal visszaad job_id-t, a frontend poll-olja a status-t.","operationId":"start_workflow_rule_from_document_admin_tasks_workflow_rules_from_document_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_start_workflow_rule_from_document_admin_tasks_workflow_rules_from_document_start_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/from-document/status":{"get":{"tags":["Tasks"],"summary":"Get Workflow Rule From Document Status","description":"Workflow rule from-document job állapota: pending | done (result.draft, result.message) | error.","operationId":"get_workflow_rule_from_document_status_admin_tasks_workflow_rules_from_document_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"Start válaszából kapott job_id","title":"Job Id"},"description":"Start válaszából kapott job_id"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/from-document":{"post":{"tags":["Tasks"],"summary":"Create Workflow Rule Draft From Document","description":"Dokumentumból (PDF) workflow draft kinyerése LLM-mel (blokkoló). Preferáld a /from-document/start + status poll flow-t.","operationId":"create_workflow_rule_draft_from_document_admin_tasks_workflow_rules_from_document_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_workflow_rule_draft_from_document_admin_tasks_workflow_rules_from_document_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-process/from-document/start":{"post":{"tags":["Tasks"],"summary":"Start Workflow Process From Document","description":"Workflow folyamat kinyerése PDF-ből háttérben; azonnal visszaad job_id-t, a frontend poll-olja a status-t.","operationId":"start_workflow_process_from_document_admin_tasks_workflow_process_from_document_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opcionális trace ID","title":"Trace Id"},"description":"Opcionális trace ID"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_start_workflow_process_from_document_admin_tasks_workflow_process_from_document_start_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-process/from-document/status":{"get":{"tags":["Tasks"],"summary":"Get Workflow Process From Document Status","description":"Poll: pending | done + result | error. TTL után 404.","operationId":"get_workflow_process_from_document_status_admin_tasks_workflow_process_from_document_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-process/from-document":{"post":{"tags":["Tasks"],"summary":"Extract Workflow Process From Document","description":"Dokumentumból (PDF) teljes workflow folyamat kinyerése: fázisok + több draft. Dedikált LLM, trace_id (blokkoló).","operationId":"extract_workflow_process_from_document_admin_tasks_workflow_process_from_document_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opcionális trace ID (pl. retry korrelációhoz)","title":"Trace Id"},"description":"Opcionális trace ID (pl. retry korrelációhoz)"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_workflow_process_from_document_admin_tasks_workflow_process_from_document_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/suggest-edit/start":{"post":{"tags":["Tasks"],"summary":"Start Workflow Suggest Edit","description":"LLM javaslat indítása háttérben; azonnal job_id, majd poll status.","operationId":"start_workflow_suggest_edit_admin_tasks_workflow_rules_suggest_edit_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSuggestEditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/suggest-edit/status":{"get":{"tags":["Tasks"],"summary":"Get Workflow Suggest Edit Status","operationId":"get_workflow_suggest_edit_status_admin_tasks_workflow_rules_suggest_edit_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/suggest-edit":{"post":{"tags":["Tasks"],"summary":"Suggest Workflow Rule Edit","description":"LLM szerkesztő asszisztens (blokkoló).","operationId":"suggest_workflow_rule_edit_admin_tasks_workflow_rules_suggest_edit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSuggestEditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/suggest-templates/start":{"post":{"tags":["Tasks"],"summary":"Start Workflow Suggest Templates","description":"LLM sablon javaslat indítása háttérben; azonnal job_id, majd poll status.","operationId":"start_workflow_suggest_templates_admin_tasks_workflow_rules_suggest_templates_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSuggestTemplatesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/suggest-templates/status":{"get":{"tags":["Tasks"],"summary":"Get Workflow Suggest Templates Status","operationId":"get_workflow_suggest_templates_status_admin_tasks_workflow_rules_suggest_templates_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/suggest-templates":{"post":{"tags":["Tasks"],"summary":"Suggest Workflow Templates","description":"LLM javaslat: a felhasználó szabad szövege alapján illeszkedő workflow sablonok ID-jai.","operationId":"suggest_workflow_templates_admin_tasks_workflow_rules_suggest_templates_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSuggestTemplatesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tasks/workflow-rules/from-template/{template_id}":{"post":{"tags":["Tasks"],"summary":"Create Process From Template","description":"Sablonból teljes folyamat klónozása (fázisok, feladatok, szabályok, élek) 1:1.","operationId":"create_process_from_template_admin_tasks_workflow_rules_from_template__template_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Projekt ID, ahova a folyamat klónozódik","title":"Project Id"},"description":"Projekt ID, ahova a folyamat klónozódik"},{"name":"project_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Új projekt neve – ha project_id nincs, ezzel hozzuk létre/megkeressük","title":"Project Name"},"description":"Új projekt neve – ha project_id nincs, ezzel hozzuk létre/megkeressük"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/client-form/{token}":{"get":{"tags":["Client form (public)"],"summary":"Get Client Form Public","description":"Űrlap adatok (kérdések) – token alapú, auth nélkül.","operationId":"get_client_form_public_api_client_form__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Client form (public)"],"summary":"Submit Client Form Public","description":"Válaszok és opcionális fájlok beküldése. Multipart: answers (JSON string), files (több fájl).","operationId":"submit_client_form_public_api_client_form__token__post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_submit_client_form_public_api_client_form__token__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/client-form/{token}/documents/{file_id}":{"get":{"tags":["Client form (public)"],"summary":"Get Client Form Document Download","description":"Űrlaphoz csatolt dokumentum letöltése (auth nélkül, token + form_documents ellenőrzés).","operationId":"get_client_form_document_download_api_client_form__token__documents__file_id__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies":{"get":{"tags":["Companies"],"summary":"List Companies","description":"Cégek listája (tenant scope).","operationId":"list_companies_admin_companies_get","security":[{"HTTPBearer":[]}],"parameters":[{"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"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Companies"],"summary":"Create Company","description":"Új cég (cégnév kötelező).","operationId":"create_company_admin_companies_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}":{"get":{"tags":["Companies"],"summary":"Get Company","description":"Cég részletei (billing + persons).","operationId":"get_company_admin_companies__company_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Companies"],"summary":"Update Company","description":"Cég módosítása.","operationId":"update_company_admin_companies__company_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Companies"],"summary":"Delete Company","description":"Cég törlése (csak ha nincs külső adatkapcsolat).","operationId":"delete_company_admin_companies__company_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/persons":{"post":{"tags":["Companies"],"summary":"Add Company Person","description":"Személy hozzáadása a céghez.","operationId":"add_company_person_admin_companies__company_id__persons_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/companies/{company_id}/persons/{person_id}":{"patch":{"tags":["Companies"],"summary":"Update Company Person","description":"Személy módosítása.","operationId":"update_company_person_admin_companies__company_id__persons__person_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}},{"name":"person_id","in":"path","required":true,"schema":{"type":"string","title":"Person Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Companies"],"summary":"Delete Company Person","description":"Személy törlése a cégtől.","operationId":"delete_company_person_admin_companies__company_id__persons__person_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}},{"name":"person_id","in":"path","required":true,"schema":{"type":"string","title":"Person Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ingest":{"post":{"tags":["Documents","Documents"],"summary":"Ingest Document","description":"Ingest endpoint - Dokumentum feltöltés és indexelés. \nSECURITY: tenant_id és user_id a JWT-ből jön, nem a kliensből.","operationId":"ingest_document_ingest_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_ingest_document_ingest_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/retrieve":{"post":{"tags":["Documents","Documents"],"summary":"Retrieve Documents","description":"Retrieve endpoint - Standalone dokumentum keresés","operationId":"retrieve_documents_retrieve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/reindex":{"post":{"tags":["Documents","Documents"],"summary":"Reindex Documents","description":"Reindex endpoint - Dokumentumok újraindexelése","operationId":"reindex_documents_reindex_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReindexRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/reset-index":{"post":{"tags":["Documents","Documents"],"summary":"Reset Document Index","description":"A megadott doc_id RAG-beli chunkjainak és a hozzá tartozó indexing_queue job(ok) törlése. \nTeljes törlés mindenhonnan: documents tábla + indexing_queue, docset_hash frissítve. \nÍgy a dokumentum újra indexelhető (új feltöltés), mert a content_hash ellenőrzés nem talál meglévőt.","operationId":"reset_document_index_reset_index_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetIndexRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/documents/{document_id}":{"delete":{"tags":["Documents","Documents"],"summary":"Delete Document","description":"Dokumentum törlése","operationId":"delete_document_documents__document_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/documents/{document_id}/download":{"get":{"tags":["Documents","Documents"],"summary":"Download Document","description":"Dokumentum letöltése (eredeti fájl)","operationId":"download_document_api_documents__document_id__download_get","parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chunks/{chunk_id}/content":{"get":{"tags":["Documents","Documents"],"summary":"Get Chunk Content","description":"Chunk tartalom lekérése (preview)","operationId":"get_chunk_content_api_chunks__chunk_id__content_get","parameters":[{"name":"chunk_id","in":"path","required":true,"schema":{"type":"string","title":"Chunk Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/documents":{"get":{"tags":["Admin"],"summary":"Get Documents","description":"Dokumentumok listázása (indexing queue alapján) \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: Public/External RAG dokumentumok + Public Widget \n\nArgs: \n    scope: Scope filter (\"internal\" | \"public\" | None = összes) \n    search: Search term for file name (optional) \n    limit: Maximum number of documents to return \n    offset: Offset for pagination \n\nReturns: \n    { \n        \"documents\": [...], \n        \"total\": int \n    }","operationId":"get_documents_admin_documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/documents/indexing-jobs/reset-to-pending":{"post":{"tags":["Admin"],"summary":"Reset Indexing Jobs To Pending","description":"Kijelölt indexing jobok (csak PROCESSING állapotúak) visszaállítása PENDING-re. \nBeragadt folyamatok resetelésére. Csak a tenant saját jobjai, és csak PROCESSING → PENDING. \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"reset_indexing_jobs_to_pending_admin_documents_indexing_jobs_reset_to_pending_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetIndexingJobsToPendingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/documents/{document_id}/preview":{"get":{"tags":["Admin","Admin"],"summary":"Get Document Preview","description":"Dokumentum preview tartalom lekérése. \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nPolicy: VIEWER vagy magasabb. Tenant izoláció enforced. \n\nArgs: \n    document_id: Job ID (indexing_queue.id) \n\nReturns: \n    document_id, filename, status, preview_content, chunk_count","operationId":"get_document_preview_admin_documents__document_id__preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/documents/{document_id}/scope":{"put":{"tags":["Admin","Admin"],"summary":"Update Document Scope","description":"Dokumentum scope módosítása (internal <-> public). \nFrissíti az indexing_queue-t és a documents tábla meta.scope / meta.doc_scope mezőit. \nRBAC: SYSTEM_ADMIN, TENANT_ADMIN vagy EDITOR.","operationId":"update_document_scope_admin_documents__document_id__scope_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentScopeUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/documents/bulk-delete":{"post":{"tags":["Admin","Admin"],"summary":"Bulk Delete Documents","description":"Tömeges dokumentum törlés. RBAC: SYSTEM_ADMIN, TENANT_ADMIN vagy EDITOR.","operationId":"bulk_delete_documents_admin_documents_bulk_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteDocumentsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/documents/bulk-update-scope":{"post":{"tags":["Admin","Admin"],"summary":"Bulk Update Document Scope","description":"Tömeges dokumentum scope módosítás (internal <-> public). RBAC: SYSTEM_ADMIN, TENANT_ADMIN vagy EDITOR.","operationId":"bulk_update_document_scope_admin_documents_bulk_update_scope_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUpdateScopeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/info":{"get":{"tags":["Admin"],"summary":"Get Info List","description":"GET /admin/info – lista. Query: limit, offset, scope, status, search. Válasz: { items, total }.","operationId":"get_info_list_admin_info_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin"],"summary":"Create Info Item","description":"POST /admin/info – létrehozás. Mentés után queue-ba kerül info index job; válasz: Az indexelés hamarosan indul.","operationId":"create_info_item_admin_info_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoItemCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/info/chat-settings":{"get":{"tags":["Admin"],"summary":"Info Get Chat Settings","operationId":"info_get_chat_settings_admin_info_chat_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Info Put Chat Settings","operationId":"info_put_chat_settings_admin_info_chat_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoChatSettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/info/{item_id}":{"get":{"tags":["Admin"],"summary":"Get Info Item","description":"GET /admin/info/{id} – egy elem lekérése teljes tartalommal (szerkesztéshez).","operationId":"get_info_item_admin_info__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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Info Item","description":"PUT /admin/info/{id} – szerkesztés. Mentés után queue-ba kerül info index job.","operationId":"update_info_item_admin_info__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/InfoItemUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Info Item","description":"DELETE /admin/info/{id} – info_item törlése és document_store chunkok törlése (doc_type=info).","operationId":"delete_info_item_admin_info__item_id__delete","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/info/{item_id}/index":{"post":{"tags":["Admin"],"summary":"Trigger Info Index","description":"POST /admin/info/{id}/index – indexelés indítása: ha nincs PENDING info job, új job a queue-ba.","operationId":"trigger_info_index_admin_info__item_id__index_post","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/info/extract-file/":{"post":{"tags":["Admin"],"summary":"Extract Info File","description":"PDF / Word / TXT / MD → kinyert szöveg info tartalom mezőhöz.","operationId":"extract_info_file_admin_info_extract_file__post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_info_file_admin_info_extract_file__post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/info/extract-file":{"post":{"tags":["Admin"],"summary":"Extract Info File","description":"PDF / Word / TXT / MD → kinyert szöveg info tartalom mezőhöz.","operationId":"extract_info_file_admin_info_extract_file_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_info_file_admin_info_extract_file_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/info/generate-description/start":{"post":{"tags":["Admin"],"summary":"Start Info Description Generate","description":"Aszinkron LLM: info description + mintakérdések generálása (token stat / ledger).","operationId":"start_info_description_generate_admin_info_generate_description_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoDescriptionGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/info/generate-description/status":{"get":{"tags":["Admin"],"summary":"Get Info Description Generate Status","operationId":"get_info_description_generate_status_admin_info_generate_description_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/info/from-url/":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_admin_info_from_url__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/info/from-url":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_admin_info_from_url_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl-start/":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_admin_web_crawl_start__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl-start":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_admin_web_crawl_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl/":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_admin_web_crawl__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_admin_web_crawl_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl/{job_id}/cancel/":{"post":{"tags":["Admin"],"summary":"Cancel Web Crawl Job","operationId":"cancel_web_crawl_job_admin_web_crawl__job_id__cancel__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl/{job_id}/cancel":{"post":{"tags":["Admin"],"summary":"Cancel Web Crawl Job","operationId":"cancel_web_crawl_job_admin_web_crawl__job_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/info/from-url/{job_id}/":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_admin_info_from_url__job_id___get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/info/from-url/{job_id}":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_admin_info_from_url__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl-job/{job_id}/":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_admin_web_crawl_job__job_id___get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl-job/{job_id}":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_admin_web_crawl_job__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl/{job_id}/":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_admin_web_crawl__job_id___get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/web-crawl/{job_id}":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_admin_web_crawl__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/me/calendar":{"get":{"tags":["Admin"],"summary":"Get My Calendar Settings","description":"Saját naptár (CalDAV) beállítás lekérése – configured és opcionálisan caldav_url (jelszó soha nem). \nHa CALDAV_PUBLIC_URL be van állítva, a válaszban server_caldav_url, server_caldav_name és \nsuggested_caldav_username (tenant_id/user_id) is szerepel – új felhasználónak is ezzel kell beállítania a naptárt.","operationId":"get_my_calendar_settings_admin_me_calendar_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Update My Calendar Settings","description":"Saját naptár (CalDAV) beállítás mentése. Jelszó titkosítva tárolódik.","operationId":"update_my_calendar_settings_admin_me_calendar_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarSettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/me/calendar/events":{"get":{"tags":["Admin"],"summary":"Get My Calendar Events","description":"Közelgő naptár események listázása (CalDAV). A dashboard naptár widget használja. \nHa nincs naptár beállítás → configured: false, events: [].","operationId":"get_my_calendar_events_admin_me_calendar_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/me/calendar/events/{event_uid}":{"delete":{"tags":["Admin"],"summary":"Delete My Calendar Event","description":"Egy naptár esemény törlése CalDAV szerverről UID alapján. A dashboard törlés gombja hívja.","operationId":"delete_my_calendar_event_admin_me_calendar_events__event_uid__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"event_uid","in":"path","required":true,"schema":{"type":"string","title":"Event Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update My Calendar Event","description":"Naptár esemény módosítása (átnevezés, dátum). UID alapján. A dashboard szerkesztés gombja hívja.","operationId":"update_my_calendar_event_admin_me_calendar_events__event_uid__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"event_uid","in":"path","required":true,"schema":{"type":"string","title":"Event Uid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCalendarEventBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/settings":{"get":{"tags":["Admin"],"summary":"Get Admin Settings","description":"Admin settings lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - GET /admin/settings \n\nReturns: \n    { \n        \"global_config\": Dict, \n        \"tenant_config\": Dict | None \n    }","operationId":"get_admin_settings_admin_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Update Admin Settings","description":"Admin settings frissítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - PUT /admin/settings \n\nArgs: \n    config_json: Config JSON (tenant override) \n\nReturns: \n    { \n        \"success\": bool, \n        \"message\": str \n    }","operationId":"update_admin_settings_admin_settings_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Config Json"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/config-snapshots":{"get":{"tags":["Admin"],"summary":"Get Config Snapshots","description":"Config snapshots listázása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - GET /admin/config-snapshots","operationId":"get_config_snapshots_admin_config_snapshots_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/config-snapshots/{trace_id}":{"get":{"tags":["Admin"],"summary":"Get Config Snapshot By Trace Id","description":"Config snapshot lekérése trace_id alapján \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - GET /admin/config-snapshots/{trace_id}","operationId":"get_config_snapshot_by_trace_id_admin_config_snapshots__trace_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/modules":{"get":{"tags":["Admin"],"summary":"List Modules","description":"Modulok listázása (Module Registry). \n\nSYSTEM_ADMIN: \n  - tenant_id nélkül: globális registry állapot \n  - tenant_id-vel: adott tenant effective config \n\nTENANT_ADMIN: \n  - Csak saját tenant effective config látható (csak olvasás!) \n  - tenant_id paraméter ignorálva","operationId":"list_modules_admin_modules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant ID – effective config megtekintéséhez","title":"Tenant Id"},"description":"Tenant ID – effective config megtekintéséhez"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/modules/{module_id}/enable":{"put":{"tags":["Admin"],"summary":"Enable Module","description":"Modul engedélyezése (perzisztálás a config-ba). \n\n⚠️ KIZÁRÓLAG SYSTEM_ADMIN JOGOSULTSÁG! \n\nMűködés: \n  - tenant_id nélkül: globális config módosítás (minden tenant-re hat) \n  - tenant_id-vel: adott tenant config override (csak arra a tenant-re hat) \n\nReturns: \n    - status: 'enabled' \n    - module_id: a módosított modul \n    - scope: 'global' vagy 'tenant' \n    - tenant_id: (csak tenant scope esetén) melyik tenant-hez","operationId":"enable_module_admin_modules__module_id__enable_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module_id","in":"path","required":true,"schema":{"type":"string","title":"Module Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant ID – tenant-specifikus override létrehozásához","title":"Tenant Id"},"description":"Tenant ID – tenant-specifikus override létrehozásához"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/modules/{module_id}/disable":{"put":{"tags":["Admin"],"summary":"Disable Module","description":"Modul tiltása (perzisztálás a config-ba). \n\n⚠️ KIZÁRÓLAG SYSTEM_ADMIN JOGOSULTSÁG! \n\nMűködés: \n  - tenant_id nélkül: globális config módosítás \n  - tenant_id-vel: adott tenant config override","operationId":"disable_module_admin_modules__module_id__disable_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module_id","in":"path","required":true,"schema":{"type":"string","title":"Module Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant ID – tenant-specifikus override létrehozásához","title":"Tenant Id"},"description":"Tenant ID – tenant-specifikus override létrehozásához"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/modules/reload":{"post":{"tags":["Admin"],"summary":"Reload Modules","description":"Modul config újratöltése (runtime reload). \nA config-ból beolvasott enable/disable állapot alkalmazása újraindítás nélkül.","operationId":"reload_modules_admin_modules_reload_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/modules/audit":{"get":{"tags":["Admin"],"summary":"Get Module Config Audit","description":"Modul konfiguráció audit log - ki, mikor, mit módosított. \n\nSYSTEM_ADMIN: minden bejegyzés, opcionális tenant_id/module_id szűrés. \nTENANT_ADMIN: csak saját tenant bejegyzései.","operationId":"get_module_config_audit_admin_modules_audit_get","security":[{"HTTPBearer":[]}],"parameters":[{"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"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Szűrés tenant-re","title":"Tenant Id"},"description":"Szűrés tenant-re"},{"name":"module_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Szűrés modulra","title":"Module Id"},"description":"Szűrés modulra"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/audit/traces":{"get":{"tags":["Admin"],"summary":"Get Audit Traces","description":"Audit traces listázása \n\nSpecifikáció: M5 - GET /admin/audit/traces","operationId":"get_audit_traces_admin_audit_traces_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"token_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Id"}},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/audit/traces/{trace_id}":{"get":{"tags":["Admin"],"summary":"Get Audit Trace By Id","description":"Audit trace részletek lekérése trace_id alapján \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M5 - GET /admin/audit/traces/{trace_id}","operationId":"get_audit_trace_by_id_admin_audit_traces__trace_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/templates":{"get":{"tags":["Admin"],"summary":"Get Admin Templates","description":"Admin API: Template lista lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - GET /admin/templates","operationId":"get_admin_templates_admin_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Id"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin"],"summary":"Create Admin Template","description":"Admin API: Új template létrehozása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - POST /admin/templates","operationId":"create_admin_template_admin_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/templates/{template_id}/activate":{"post":{"tags":["Admin"],"summary":"Activate Admin Template","description":"Admin API: Template aktiválása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - POST /admin/templates/{id}/activate","operationId":"activate_admin_template_admin_templates__template_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"version","in":"query","required":true,"schema":{"type":"integer","title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/templates/{template_id}/rollback":{"post":{"tags":["Admin"],"summary":"Rollback Admin Template","description":"Admin API: Template rollback \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - POST /admin/templates/{id}/rollback","operationId":"rollback_admin_template_admin_templates__template_id__rollback_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/users":{"get":{"tags":["Admin"],"summary":"Get Users","description":"User lista lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_users_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create User","description":"User létrehozása \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"create_user_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/users/{user_id}":{"put":{"tags":["Admin"],"summary":"Update User","description":"User frissítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSYSTEM_ADMIN: megadható tenant_id query param, hogy más tenant userét módosítsa.","operationId":"update_user_admin_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)","title":"Tenant Id"},"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete User","description":"User törlése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSYSTEM_ADMIN: megadható tenant_id query param, hogy más tenant userét törölje.","operationId":"delete_user_admin_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)","title":"Tenant Id"},"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/tenant/delete":{"post":{"tags":["Admin"],"summary":"Delete My Tenant","description":"Tenant (profil) teljes törlése – csak TENANT_ADMIN, saját tenant. \nMegerősítés: body.confirmation == \"TÖRÖL\".","operationId":"delete_my_tenant_admin_tenant_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDeleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/tenant/export-my-data":{"get":{"tags":["Admin"],"summary":"Export My Data","description":"Összes tárolt adat letöltése (GDPR – adathozzáférés / adatportabilitás). \nCsak TENANT_ADMIN, saját tenant. Válasz: ZIP melléklet.","operationId":"export_my_data_admin_tenant_export_my_data_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/tenants/with-pending":{"get":{"tags":["Admin"],"summary":"Get Tenants With Pending","description":"Tenant-ek listázása PENDING dokumentumokkal \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_tenants_with_pending_admin_tenants_with_pending_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/public-widget-tokens":{"get":{"tags":["Admin"],"summary":"List Public Widget Tokens","description":"Public Widget Token lista lekérése.","operationId":"list_public_widget_tokens_admin_public_widget_tokens_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create Public Widget Token","description":"Public Widget Token létrehozása. RBAC: TENANT_ADMIN vagy SYSTEM_ADMIN.","operationId":"create_public_widget_token_admin_public_widget_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicWidgetTokenCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/public-widget-tokens/{token_id}":{"get":{"tags":["Admin"],"summary":"Get Public Widget Token","description":"Public Widget Token részletek lekérése.","operationId":"get_public_widget_token_admin_public_widget_tokens__token_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Public Widget Token","description":"Public Widget Token frissítése.","operationId":"update_public_widget_token_admin_public_widget_tokens__token_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicWidgetTokenUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/public-widget-tokens/{token_id}/rotate":{"post":{"tags":["Admin"],"summary":"Rotate Public Widget Token","description":"Public Widget Token rotáció - új token, régi letiltása.","operationId":"rotate_public_widget_token_admin_public_widget_tokens__token_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/public-widget-tokens/{token_id}/embed-snippet":{"get":{"tags":["Admin"],"summary":"Get Embed Snippet","description":"Embed snippet generálás Public Widget-hez.","operationId":"get_embed_snippet_admin_public_widget_tokens__token_id__embed_snippet_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api-keys":{"get":{"tags":["Admin"],"summary":"List Api Keys","description":"API key-ek listázása tenant-hoz.","operationId":"list_api_keys_admin_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create Api Key","description":"API Key létrehozása. A nyers key CSAK EGYSZER látható!","operationId":"create_api_key_admin_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/api-keys/{api_key_id}":{"get":{"tags":["Admin"],"summary":"Get Api Key","description":"Egyedi API key lekérése.","operationId":"get_api_key_admin_api_keys__api_key_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Api Key","description":"API key frissítése.","operationId":"update_api_key_admin_api_keys__api_key_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Api Key","description":"API key törlése (végleges!).","operationId":"delete_api_key_admin_api_keys__api_key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/api-keys/{api_key_id}/rotate":{"post":{"tags":["Admin"],"summary":"Rotate Api Key","description":"API key rotálása. Az új key CSAK EGYSZER látható!","operationId":"rotate_api_key_admin_api_keys__api_key_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/usage/summary":{"get":{"tags":["Admin"],"summary":"Get Usage Summary","description":"Összesített használati statisztikák lekérése.","operationId":"get_usage_summary_admin_usage_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/usage/daily":{"get":{"tags":["Admin"],"summary":"Get Daily Usage","description":"Napi használati statisztikák lekérése.","operationId":"get_daily_usage_admin_usage_daily_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"key_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Type"}},{"name":"key_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/usage/keys":{"get":{"tags":["Admin"],"summary":"Get Keys Usage","description":"Widget Token-ek és API Key-ek használati statisztikái.","operationId":"get_keys_usage_admin_usage_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/usage/token-balance":{"get":{"tags":["Admin"],"summary":"Get Usage Token Balance","description":"Tenant szabad egyenleg Ft-ban (feltöltés − fogyás). JWT-ből tenant_id.","operationId":"get_usage_token_balance_admin_usage_token_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/balance-topup-order":{"post":{"tags":["Admin"],"summary":"Create Balance Topup Order","description":"Egyenleg feltöltés megrendelés. Csak TENANT_ADMIN. Azonnal feltöltjük az egyenleget; e-mail a tenant adminoknak és penzugy_email.","operationId":"create_balance_topup_order_admin_balance_topup_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceTopupOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/balance-topup-orders":{"get":{"tags":["Admin"],"summary":"List My Balance Topup Orders","description":"Saját tenant megrendelései. Csak TENANT_ADMIN.","operationId":"list_my_balance_topup_orders_admin_balance_topup_orders_get","security":[{"HTTPBearer":[]}],"parameters":[{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/balance-topup-orders/{order_id}/invoice":{"get":{"tags":["Admin"],"summary":"Download Balance Topup Order Invoice","description":"Számla PDF letöltés. Csak saját tenant megrendelése, és csak ha van feltöltött számla.","operationId":"download_balance_topup_order_invoice_admin_balance_topup_orders__order_id__invoice_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/usage/llm-token-list":{"get":{"tags":["Admin"],"summary":"Get Usage Llm Token List","description":"LLM token használat lista (ledger USAGE bejegyzések) lapozva, dátum szűrővel.","operationId":"get_usage_llm_token_list_admin_usage_llm_token_list_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop-config":{"get":{"tags":["Admin"],"summary":"List Webshop Configs","description":"Webshop konfigurációk listázása (tenant admin) \n\nF9: Shopping Module - Admin API \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \n\nReturns: \n    List of webshop configurations \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"list_webshop_configs_admin_webshop_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create Webshop Config","description":"Webshop konfiguráció létrehozása \n\nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"create_webshop_config_admin_webshop_config_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebshopConfigCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/webshop-config/feed-formats":{"get":{"tags":["Admin"],"summary":"Get Feed Formats","description":"Regisztrált feed formátumok listája (UI formátum választóhoz). RBAC: TENANT_ADMIN vagy SYSTEM_ADMIN.","operationId":"get_feed_formats_admin_webshop_config_feed_formats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/webshop-config/{config_tenant_id}":{"get":{"tags":["Admin"],"summary":"Get Webshop Config","description":"Webshop konfiguráció lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"get_webshop_config_admin_webshop_config__config_tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Webshop Config","description":"Webshop konfiguráció frissítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"update_webshop_config_admin_webshop_config__config_tenant_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebshopConfigUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Webshop Config","description":"Webshop konfiguráció törlése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"delete_webshop_config_admin_webshop_config__config_tenant_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop-config/{config_tenant_id}/data-source":{"get":{"tags":["Admin"],"summary":"Get Webshop Data Source","description":"Adatforrás ellenőrzése: API vagy HTML scraping. \nMegjeleníthető a felületen - a felhasználó láthatja, honnan jönnek a termékek.","operationId":"get_webshop_data_source_admin_webshop_config__config_tenant_id__data_source_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop-config/{config_tenant_id}/products/load-feed/start":{"post":{"tags":["Admin"],"summary":"Load Feed Start","description":"Feed alapú termékbetöltés indítása (háttérben). Válasz: 201 { job_id }. Poll: GET load-feed/status?job_id=...","operationId":"load_feed_start_admin_webshop_config__config_tenant_id__products_load_feed_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadFeedStartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop-config/{config_tenant_id}/products/load-feed/start-file":{"post":{"tags":["Admin"],"summary":"Load Feed Start File","description":"Feed alapú termékbetöltés indítása feltöltött fájlból (háttérben). Válasz: 201 { job_id }. Poll: GET load-feed/status?job_id=...","operationId":"load_feed_start_file_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_load_feed_start_file_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop-config/{config_tenant_id}/products/load-feed/status":{"get":{"tags":["Admin"],"summary":"Load Feed Status","description":"Poll: status pending | done (+ result) | error (+ error). TTL után 404.","operationId":"load_feed_status_admin_webshop_config__config_tenant_id__products_load_feed_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}},{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop-config/{config_tenant_id}/index-products":{"post":{"tags":["Admin"],"summary":"Index Products","description":"Termékek indexelése (embedding + enrichment) \n\nF9: Shopping Module - Admin API \nPRODUCT_ENRICHMENT_PLAN.md implementáció \n\nFunkciók: \n1. Embedding generálás (ha nincs) \n2. Keywords és summary generálás LLM-mel (ha enable_enrichment=True) \n\nQuery params: \n    enable_enrichment: bool = True (keywords/summary generálás) \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"index_products_admin_webshop_config__config_tenant_id__index_products_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}},{"name":"enable_enrichment","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enable Enrichment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop/generate-template":{"post":{"tags":["Admin"],"summary":"Generate Shop Template","description":"AI-alapú shop template generálás \n\nF9: Shopping Module - Admin API (uses F7: ShopTemplateGenerator) \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"generate_shop_template_admin_webshop_generate_template_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateTemplateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/webshop/generate-template-with-categories":{"post":{"tags":["Admin"],"summary":"Generate Shop Template With Categories","description":"AI-alapú shop template generálás KIVÁLASZTOTT kategóriákkal \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"generate_shop_template_with_categories_admin_webshop_generate_template_with_categories_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateTemplateWithCategoriesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/webshop/auto-detect-selectors":{"post":{"tags":["Admin"],"summary":"Auto Detect Webshop Selectors","description":"Automatikus termék felismerés - Új moduláris scraper rendszer. \n \nTEMPLATE_MANDATORY_SPEC: Ha van tenant config: \n- platform + scraper_config átadva a scrapernek \n- Sikeres felfedezésnél visszaadja a selectors-t (config-ból vagy platform alapértelmezés)","operationId":"auto_detect_webshop_selectors_admin_webshop_auto_detect_selectors_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoDetectSelectorsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/products/stats/summary":{"get":{"tags":["Admin"],"summary":"Get Products Stats","description":"Termék statisztikák összefoglaló \n\nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"get_products_stats_admin_products_stats_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/products":{"get":{"tags":["Admin"],"summary":"List Products","description":"Termékek listázása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nSzűrés: not_scraped=true (Nincs Scrapingolva), not_indexed=true (Nincs Indexelve) \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"list_products_admin_products_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"in_stock","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"In Stock"}},{"name":"not_scraped","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Not Scraped"}},{"name":"not_indexed","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Not Indexed"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/products/{product_id}":{"get":{"tags":["Admin"],"summary":"Get Product","description":"Termék részleteinek lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"get_product_admin_products__product_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Product","description":"Termék törlése (hard delete: ProductMeta + RAG dokumentum). \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"delete_product_admin_products__product_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/products/{product_id}/stock":{"put":{"tags":["Admin"],"summary":"Toggle Product Stock","description":"Termék készlet állapotának váltása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"toggle_product_stock_admin_products__product_id__stock_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleStockRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/products/{product_id}/restore":{"post":{"tags":["Admin"],"summary":"Restore Product","description":"Törölt termék visszaállítása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"restore_product_admin_products__product_id__restore_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/survey/settings":{"get":{"tags":["Admin"],"summary":"Survey Get Settings","operationId":"survey_get_settings_admin_survey_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Survey Put Settings","operationId":"survey_put_settings_admin_survey_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveySettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/profile/display":{"get":{"tags":["Admin"],"summary":"Profile Get Display","operationId":"profile_get_display_admin_profile_display_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Profile Put Display","operationId":"profile_put_display_admin_profile_display_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDisplayProfileUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/survey/groups":{"get":{"tags":["Admin"],"summary":"Survey List Groups","operationId":"survey_list_groups_admin_survey_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Survey Create Group","operationId":"survey_create_group_admin_survey_groups_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyGroupCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/survey/groups/{group_id}":{"put":{"tags":["Admin"],"summary":"Survey Update Group","operationId":"survey_update_group_admin_survey_groups__group_id__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/SurveyGroupUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Survey Delete Group","operationId":"survey_delete_group_admin_survey_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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/survey/questionnaires":{"post":{"tags":["Admin"],"summary":"Survey Create Q","operationId":"survey_create_q_admin_survey_questionnaires_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyQuestionnaireCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/survey/questionnaires/{qid}":{"put":{"tags":["Admin"],"summary":"Survey Update Q","operationId":"survey_update_q_admin_survey_questionnaires__qid__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"qid","in":"path","required":true,"schema":{"type":"string","title":"Qid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyQuestionnaireUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Survey Delete Q","operationId":"survey_delete_q_admin_survey_questionnaires__qid__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"qid","in":"path","required":true,"schema":{"type":"string","title":"Qid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/survey/questionnaires/{qid}/fields":{"post":{"tags":["Admin"],"summary":"Survey Create Field","operationId":"survey_create_field_admin_survey_questionnaires__qid__fields_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"qid","in":"path","required":true,"schema":{"type":"string","title":"Qid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyFieldCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/survey/fields/{field_id}":{"put":{"tags":["Admin"],"summary":"Survey Update Field","operationId":"survey_update_field_admin_survey_fields__field_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"field_id","in":"path","required":true,"schema":{"type":"string","title":"Field Id"}},{"name":"questionnaire_id","in":"query","required":true,"schema":{"type":"string","description":"questionnaire UUID","title":"Questionnaire Id"},"description":"questionnaire UUID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyFieldUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Survey Delete Field","operationId":"survey_delete_field_admin_survey_fields__field_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"field_id","in":"path","required":true,"schema":{"type":"string","title":"Field Id"}},{"name":"questionnaire_id","in":"query","required":true,"schema":{"type":"string","title":"Questionnaire Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/survey/responses":{"get":{"tags":["Admin"],"summary":"Survey List Responses","operationId":"survey_list_responses_admin_survey_responses_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"questionnaire_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Questionnaire Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/documents":{"get":{"tags":["Admin"],"summary":"Get Documents","description":"Dokumentumok listázása (indexing queue alapján) \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: Public/External RAG dokumentumok + Public Widget \n\nArgs: \n    scope: Scope filter (\"internal\" | \"public\" | None = összes) \n    search: Search term for file name (optional) \n    limit: Maximum number of documents to return \n    offset: Offset for pagination \n\nReturns: \n    { \n        \"documents\": [...], \n        \"total\": int \n    }","operationId":"get_documents_api_admin_documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/documents/indexing-jobs/reset-to-pending":{"post":{"tags":["Admin"],"summary":"Reset Indexing Jobs To Pending","description":"Kijelölt indexing jobok (csak PROCESSING állapotúak) visszaállítása PENDING-re. \nBeragadt folyamatok resetelésére. Csak a tenant saját jobjai, és csak PROCESSING → PENDING. \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"reset_indexing_jobs_to_pending_api_admin_documents_indexing_jobs_reset_to_pending_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetIndexingJobsToPendingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/documents/{document_id}/preview":{"get":{"tags":["Admin","Admin"],"summary":"Get Document Preview","description":"Dokumentum preview tartalom lekérése. \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nPolicy: VIEWER vagy magasabb. Tenant izoláció enforced. \n\nArgs: \n    document_id: Job ID (indexing_queue.id) \n\nReturns: \n    document_id, filename, status, preview_content, chunk_count","operationId":"get_document_preview_api_admin_documents__document_id__preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/documents/{document_id}/scope":{"put":{"tags":["Admin","Admin"],"summary":"Update Document Scope","description":"Dokumentum scope módosítása (internal <-> public). \nFrissíti az indexing_queue-t és a documents tábla meta.scope / meta.doc_scope mezőit. \nRBAC: SYSTEM_ADMIN, TENANT_ADMIN vagy EDITOR.","operationId":"update_document_scope_api_admin_documents__document_id__scope_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentScopeUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/documents/bulk-delete":{"post":{"tags":["Admin","Admin"],"summary":"Bulk Delete Documents","description":"Tömeges dokumentum törlés. RBAC: SYSTEM_ADMIN, TENANT_ADMIN vagy EDITOR.","operationId":"bulk_delete_documents_api_admin_documents_bulk_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteDocumentsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/documents/bulk-update-scope":{"post":{"tags":["Admin","Admin"],"summary":"Bulk Update Document Scope","description":"Tömeges dokumentum scope módosítás (internal <-> public). RBAC: SYSTEM_ADMIN, TENANT_ADMIN vagy EDITOR.","operationId":"bulk_update_document_scope_api_admin_documents_bulk_update_scope_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUpdateScopeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/info":{"get":{"tags":["Admin"],"summary":"Get Info List","description":"GET /admin/info – lista. Query: limit, offset, scope, status, search. Válasz: { items, total }.","operationId":"get_info_list_api_admin_info_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin"],"summary":"Create Info Item","description":"POST /admin/info – létrehozás. Mentés után queue-ba kerül info index job; válasz: Az indexelés hamarosan indul.","operationId":"create_info_item_api_admin_info_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoItemCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/info/chat-settings":{"get":{"tags":["Admin"],"summary":"Info Get Chat Settings","operationId":"info_get_chat_settings_api_admin_info_chat_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Info Put Chat Settings","operationId":"info_put_chat_settings_api_admin_info_chat_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoChatSettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/info/{item_id}":{"get":{"tags":["Admin"],"summary":"Get Info Item","description":"GET /admin/info/{id} – egy elem lekérése teljes tartalommal (szerkesztéshez).","operationId":"get_info_item_api_admin_info__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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Info Item","description":"PUT /admin/info/{id} – szerkesztés. Mentés után queue-ba kerül info index job.","operationId":"update_info_item_api_admin_info__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/InfoItemUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Info Item","description":"DELETE /admin/info/{id} – info_item törlése és document_store chunkok törlése (doc_type=info).","operationId":"delete_info_item_api_admin_info__item_id__delete","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/info/{item_id}/index":{"post":{"tags":["Admin"],"summary":"Trigger Info Index","description":"POST /admin/info/{id}/index – indexelés indítása: ha nincs PENDING info job, új job a queue-ba.","operationId":"trigger_info_index_api_admin_info__item_id__index_post","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/info/extract-file/":{"post":{"tags":["Admin"],"summary":"Extract Info File","description":"PDF / Word / TXT / MD → kinyert szöveg info tartalom mezőhöz.","operationId":"extract_info_file_api_admin_info_extract_file__post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_info_file_api_admin_info_extract_file__post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/info/extract-file":{"post":{"tags":["Admin"],"summary":"Extract Info File","description":"PDF / Word / TXT / MD → kinyert szöveg info tartalom mezőhöz.","operationId":"extract_info_file_api_admin_info_extract_file_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_info_file_api_admin_info_extract_file_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/info/generate-description/start":{"post":{"tags":["Admin"],"summary":"Start Info Description Generate","description":"Aszinkron LLM: info description + mintakérdések generálása (token stat / ledger).","operationId":"start_info_description_generate_api_admin_info_generate_description_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfoDescriptionGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/info/generate-description/status":{"get":{"tags":["Admin"],"summary":"Get Info Description Generate Status","operationId":"get_info_description_generate_status_api_admin_info_generate_description_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/info/from-url/":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_api_admin_info_from_url__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/info/from-url":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_api_admin_info_from_url_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl-start/":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_api_admin_web_crawl_start__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl-start":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_api_admin_web_crawl_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl/":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_api_admin_web_crawl__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl":{"post":{"tags":["Admin"],"summary":"Start Web Crawl","description":"POST /admin/web-crawl \nStarts a crawl job and automatically creates an info_item when finished. \nUser-visible params: url, depth, max_pages. Internal: render_mode=auto, full event logging to DB.","operationId":"start_web_crawl_api_admin_web_crawl_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebCrawlCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl/{job_id}/cancel/":{"post":{"tags":["Admin"],"summary":"Cancel Web Crawl Job","operationId":"cancel_web_crawl_job_api_admin_web_crawl__job_id__cancel__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl/{job_id}/cancel":{"post":{"tags":["Admin"],"summary":"Cancel Web Crawl Job","operationId":"cancel_web_crawl_job_api_admin_web_crawl__job_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/info/from-url/{job_id}/":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_api_admin_info_from_url__job_id___get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/info/from-url/{job_id}":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_api_admin_info_from_url__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl-job/{job_id}/":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_api_admin_web_crawl_job__job_id___get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl-job/{job_id}":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_api_admin_web_crawl_job__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl/{job_id}/":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_api_admin_web_crawl__job_id___get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/web-crawl/{job_id}":{"get":{"tags":["Admin"],"summary":"Get Web Crawl Job","operationId":"get_web_crawl_job_api_admin_web_crawl__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"events_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Events Limit"}},{"name":"events_offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Events Offset"}},{"name":"include_page_text","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include crawled page text in page events (can be very large).","default":false,"title":"Include Page Text"},"description":"If true, include crawled page text in page events (can be very large)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"SYSTEM_ADMIN: tenant scope override","title":"Tenant Id"},"description":"SYSTEM_ADMIN: tenant scope override"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/me/calendar":{"get":{"tags":["Admin"],"summary":"Get My Calendar Settings","description":"Saját naptár (CalDAV) beállítás lekérése – configured és opcionálisan caldav_url (jelszó soha nem). \nHa CALDAV_PUBLIC_URL be van állítva, a válaszban server_caldav_url, server_caldav_name és \nsuggested_caldav_username (tenant_id/user_id) is szerepel – új felhasználónak is ezzel kell beállítania a naptárt.","operationId":"get_my_calendar_settings_api_admin_me_calendar_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Update My Calendar Settings","description":"Saját naptár (CalDAV) beállítás mentése. Jelszó titkosítva tárolódik.","operationId":"update_my_calendar_settings_api_admin_me_calendar_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarSettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/me/calendar/events":{"get":{"tags":["Admin"],"summary":"Get My Calendar Events","description":"Közelgő naptár események listázása (CalDAV). A dashboard naptár widget használja. \nHa nincs naptár beállítás → configured: false, events: [].","operationId":"get_my_calendar_events_api_admin_me_calendar_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/me/calendar/events/{event_uid}":{"delete":{"tags":["Admin"],"summary":"Delete My Calendar Event","description":"Egy naptár esemény törlése CalDAV szerverről UID alapján. A dashboard törlés gombja hívja.","operationId":"delete_my_calendar_event_api_admin_me_calendar_events__event_uid__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"event_uid","in":"path","required":true,"schema":{"type":"string","title":"Event Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update My Calendar Event","description":"Naptár esemény módosítása (átnevezés, dátum). UID alapján. A dashboard szerkesztés gombja hívja.","operationId":"update_my_calendar_event_api_admin_me_calendar_events__event_uid__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"event_uid","in":"path","required":true,"schema":{"type":"string","title":"Event Uid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCalendarEventBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/settings":{"get":{"tags":["Admin"],"summary":"Get Admin Settings","description":"Admin settings lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - GET /admin/settings \n\nReturns: \n    { \n        \"global_config\": Dict, \n        \"tenant_config\": Dict | None \n    }","operationId":"get_admin_settings_api_admin_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Update Admin Settings","description":"Admin settings frissítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - PUT /admin/settings \n\nArgs: \n    config_json: Config JSON (tenant override) \n\nReturns: \n    { \n        \"success\": bool, \n        \"message\": str \n    }","operationId":"update_admin_settings_api_admin_settings_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Config Json"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/config-snapshots":{"get":{"tags":["Admin"],"summary":"Get Config Snapshots","description":"Config snapshots listázása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - GET /admin/config-snapshots","operationId":"get_config_snapshots_api_admin_config_snapshots_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/config-snapshots/{trace_id}":{"get":{"tags":["Admin"],"summary":"Get Config Snapshot By Trace Id","description":"Config snapshot lekérése trace_id alapján \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M4 - GET /admin/config-snapshots/{trace_id}","operationId":"get_config_snapshot_by_trace_id_api_admin_config_snapshots__trace_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/modules":{"get":{"tags":["Admin"],"summary":"List Modules","description":"Modulok listázása (Module Registry). \n\nSYSTEM_ADMIN: \n  - tenant_id nélkül: globális registry állapot \n  - tenant_id-vel: adott tenant effective config \n\nTENANT_ADMIN: \n  - Csak saját tenant effective config látható (csak olvasás!) \n  - tenant_id paraméter ignorálva","operationId":"list_modules_api_admin_modules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant ID – effective config megtekintéséhez","title":"Tenant Id"},"description":"Tenant ID – effective config megtekintéséhez"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/modules/{module_id}/enable":{"put":{"tags":["Admin"],"summary":"Enable Module","description":"Modul engedélyezése (perzisztálás a config-ba). \n\n⚠️ KIZÁRÓLAG SYSTEM_ADMIN JOGOSULTSÁG! \n\nMűködés: \n  - tenant_id nélkül: globális config módosítás (minden tenant-re hat) \n  - tenant_id-vel: adott tenant config override (csak arra a tenant-re hat) \n\nReturns: \n    - status: 'enabled' \n    - module_id: a módosított modul \n    - scope: 'global' vagy 'tenant' \n    - tenant_id: (csak tenant scope esetén) melyik tenant-hez","operationId":"enable_module_api_admin_modules__module_id__enable_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module_id","in":"path","required":true,"schema":{"type":"string","title":"Module Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant ID – tenant-specifikus override létrehozásához","title":"Tenant Id"},"description":"Tenant ID – tenant-specifikus override létrehozásához"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/modules/{module_id}/disable":{"put":{"tags":["Admin"],"summary":"Disable Module","description":"Modul tiltása (perzisztálás a config-ba). \n\n⚠️ KIZÁRÓLAG SYSTEM_ADMIN JOGOSULTSÁG! \n\nMűködés: \n  - tenant_id nélkül: globális config módosítás \n  - tenant_id-vel: adott tenant config override","operationId":"disable_module_api_admin_modules__module_id__disable_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module_id","in":"path","required":true,"schema":{"type":"string","title":"Module Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant ID – tenant-specifikus override létrehozásához","title":"Tenant Id"},"description":"Tenant ID – tenant-specifikus override létrehozásához"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/modules/reload":{"post":{"tags":["Admin"],"summary":"Reload Modules","description":"Modul config újratöltése (runtime reload). \nA config-ból beolvasott enable/disable állapot alkalmazása újraindítás nélkül.","operationId":"reload_modules_api_admin_modules_reload_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/modules/audit":{"get":{"tags":["Admin"],"summary":"Get Module Config Audit","description":"Modul konfiguráció audit log - ki, mikor, mit módosított. \n\nSYSTEM_ADMIN: minden bejegyzés, opcionális tenant_id/module_id szűrés. \nTENANT_ADMIN: csak saját tenant bejegyzései.","operationId":"get_module_config_audit_api_admin_modules_audit_get","security":[{"HTTPBearer":[]}],"parameters":[{"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"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Szűrés tenant-re","title":"Tenant Id"},"description":"Szűrés tenant-re"},{"name":"module_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Szűrés modulra","title":"Module Id"},"description":"Szűrés modulra"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/audit/traces":{"get":{"tags":["Admin"],"summary":"Get Audit Traces","description":"Audit traces listázása \n\nSpecifikáció: M5 - GET /admin/audit/traces","operationId":"get_audit_traces_api_admin_audit_traces_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"token_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Id"}},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/audit/traces/{trace_id}":{"get":{"tags":["Admin"],"summary":"Get Audit Trace By Id","description":"Audit trace részletek lekérése trace_id alapján \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M5 - GET /admin/audit/traces/{trace_id}","operationId":"get_audit_trace_by_id_api_admin_audit_traces__trace_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/templates":{"get":{"tags":["Admin"],"summary":"Get Admin Templates","description":"Admin API: Template lista lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - GET /admin/templates","operationId":"get_admin_templates_api_admin_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Id"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin"],"summary":"Create Admin Template","description":"Admin API: Új template létrehozása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - POST /admin/templates","operationId":"create_admin_template_api_admin_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/templates/{template_id}/activate":{"post":{"tags":["Admin"],"summary":"Activate Admin Template","description":"Admin API: Template aktiválása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - POST /admin/templates/{id}/activate","operationId":"activate_admin_template_api_admin_templates__template_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"version","in":"query","required":true,"schema":{"type":"integer","title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/templates/{template_id}/rollback":{"post":{"tags":["Admin"],"summary":"Rollback Admin Template","description":"Admin API: Template rollback \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSpecifikáció: M7 - POST /admin/templates/{id}/rollback","operationId":"rollback_admin_template_api_admin_templates__template_id__rollback_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users":{"get":{"tags":["Admin"],"summary":"Get Users","description":"User lista lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_users_api_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create User","description":"User létrehozása \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"create_user_api_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/users/{user_id}":{"put":{"tags":["Admin"],"summary":"Update User","description":"User frissítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSYSTEM_ADMIN: megadható tenant_id query param, hogy más tenant userét módosítsa.","operationId":"update_user_api_admin_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)","title":"Tenant Id"},"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete User","description":"User törlése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nSYSTEM_ADMIN: megadható tenant_id query param, hogy más tenant userét törölje.","operationId":"delete_user_api_admin_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)","title":"Tenant Id"},"description":"Target tenant (SYSTEM_ADMIN: bármely tenant; egyébként figyelmen kívül marad)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/tenant/delete":{"post":{"tags":["Admin"],"summary":"Delete My Tenant","description":"Tenant (profil) teljes törlése – csak TENANT_ADMIN, saját tenant. \nMegerősítés: body.confirmation == \"TÖRÖL\".","operationId":"delete_my_tenant_api_admin_tenant_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDeleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/tenant/export-my-data":{"get":{"tags":["Admin"],"summary":"Export My Data","description":"Összes tárolt adat letöltése (GDPR – adathozzáférés / adatportabilitás). \nCsak TENANT_ADMIN, saját tenant. Válasz: ZIP melléklet.","operationId":"export_my_data_api_admin_tenant_export_my_data_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/tenants/with-pending":{"get":{"tags":["Admin"],"summary":"Get Tenants With Pending","description":"Tenant-ek listázása PENDING dokumentumokkal \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_tenants_with_pending_api_admin_tenants_with_pending_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/public-widget-tokens":{"get":{"tags":["Admin"],"summary":"List Public Widget Tokens","description":"Public Widget Token lista lekérése.","operationId":"list_public_widget_tokens_api_admin_public_widget_tokens_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create Public Widget Token","description":"Public Widget Token létrehozása. RBAC: TENANT_ADMIN vagy SYSTEM_ADMIN.","operationId":"create_public_widget_token_api_admin_public_widget_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicWidgetTokenCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/public-widget-tokens/{token_id}":{"get":{"tags":["Admin"],"summary":"Get Public Widget Token","description":"Public Widget Token részletek lekérése.","operationId":"get_public_widget_token_api_admin_public_widget_tokens__token_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Public Widget Token","description":"Public Widget Token frissítése.","operationId":"update_public_widget_token_api_admin_public_widget_tokens__token_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicWidgetTokenUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/public-widget-tokens/{token_id}/rotate":{"post":{"tags":["Admin"],"summary":"Rotate Public Widget Token","description":"Public Widget Token rotáció - új token, régi letiltása.","operationId":"rotate_public_widget_token_api_admin_public_widget_tokens__token_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/public-widget-tokens/{token_id}/embed-snippet":{"get":{"tags":["Admin"],"summary":"Get Embed Snippet","description":"Embed snippet generálás Public Widget-hez.","operationId":"get_embed_snippet_api_admin_public_widget_tokens__token_id__embed_snippet_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/api-keys":{"get":{"tags":["Admin"],"summary":"List Api Keys","description":"API key-ek listázása tenant-hoz.","operationId":"list_api_keys_api_admin_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create Api Key","description":"API Key létrehozása. A nyers key CSAK EGYSZER látható!","operationId":"create_api_key_api_admin_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/api-keys/{api_key_id}":{"get":{"tags":["Admin"],"summary":"Get Api Key","description":"Egyedi API key lekérése.","operationId":"get_api_key_api_admin_api_keys__api_key_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Api Key","description":"API key frissítése.","operationId":"update_api_key_api_admin_api_keys__api_key_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Api Key","description":"API key törlése (végleges!).","operationId":"delete_api_key_api_admin_api_keys__api_key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/api-keys/{api_key_id}/rotate":{"post":{"tags":["Admin"],"summary":"Rotate Api Key","description":"API key rotálása. Az új key CSAK EGYSZER látható!","operationId":"rotate_api_key_api_admin_api_keys__api_key_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","title":"Api Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/summary":{"get":{"tags":["Admin"],"summary":"Get Usage Summary","description":"Összesített használati statisztikák lekérése.","operationId":"get_usage_summary_api_admin_usage_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/daily":{"get":{"tags":["Admin"],"summary":"Get Daily Usage","description":"Napi használati statisztikák lekérése.","operationId":"get_daily_usage_api_admin_usage_daily_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"key_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Type"}},{"name":"key_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/keys":{"get":{"tags":["Admin"],"summary":"Get Keys Usage","description":"Widget Token-ek és API Key-ek használati statisztikái.","operationId":"get_keys_usage_api_admin_usage_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/usage/token-balance":{"get":{"tags":["Admin"],"summary":"Get Usage Token Balance","description":"Tenant szabad egyenleg Ft-ban (feltöltés − fogyás). JWT-ből tenant_id.","operationId":"get_usage_token_balance_api_admin_usage_token_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/balance-topup-order":{"post":{"tags":["Admin"],"summary":"Create Balance Topup Order","description":"Egyenleg feltöltés megrendelés. Csak TENANT_ADMIN. Azonnal feltöltjük az egyenleget; e-mail a tenant adminoknak és penzugy_email.","operationId":"create_balance_topup_order_api_admin_balance_topup_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceTopupOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/balance-topup-orders":{"get":{"tags":["Admin"],"summary":"List My Balance Topup Orders","description":"Saját tenant megrendelései. Csak TENANT_ADMIN.","operationId":"list_my_balance_topup_orders_api_admin_balance_topup_orders_get","security":[{"HTTPBearer":[]}],"parameters":[{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/balance-topup-orders/{order_id}/invoice":{"get":{"tags":["Admin"],"summary":"Download Balance Topup Order Invoice","description":"Számla PDF letöltés. Csak saját tenant megrendelése, és csak ha van feltöltött számla.","operationId":"download_balance_topup_order_invoice_api_admin_balance_topup_orders__order_id__invoice_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/llm-token-list":{"get":{"tags":["Admin"],"summary":"Get Usage Llm Token List","description":"LLM token használat lista (ledger USAGE bejegyzések) lapozva, dátum szűrővel.","operationId":"get_usage_llm_token_list_api_admin_usage_llm_token_list_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/webshop-config":{"get":{"tags":["Admin"],"summary":"List Webshop Configs","description":"Webshop konfigurációk listázása (tenant admin) \n\nF9: Shopping Module - Admin API \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \n\nReturns: \n    List of webshop configurations \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"list_webshop_configs_api_admin_webshop_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Create Webshop Config","description":"Webshop konfiguráció létrehozása \n\nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"create_webshop_config_api_admin_webshop_config_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebshopConfigCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/webshop-config/feed-formats":{"get":{"tags":["Admin"],"summary":"Get Feed Formats","description":"Regisztrált feed formátumok listája (UI formátum választóhoz). RBAC: TENANT_ADMIN vagy SYSTEM_ADMIN.","operationId":"get_feed_formats_api_admin_webshop_config_feed_formats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/webshop-config/{config_tenant_id}":{"get":{"tags":["Admin"],"summary":"Get Webshop Config","description":"Webshop konfiguráció lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"get_webshop_config_api_admin_webshop_config__config_tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin"],"summary":"Update Webshop Config","description":"Webshop konfiguráció frissítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"update_webshop_config_api_admin_webshop_config__config_tenant_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebshopConfigUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Webshop Config","description":"Webshop konfiguráció törlése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"delete_webshop_config_api_admin_webshop_config__config_tenant_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/webshop-config/{config_tenant_id}/data-source":{"get":{"tags":["Admin"],"summary":"Get Webshop Data Source","description":"Adatforrás ellenőrzése: API vagy HTML scraping. \nMegjeleníthető a felületen - a felhasználó láthatja, honnan jönnek a termékek.","operationId":"get_webshop_data_source_api_admin_webshop_config__config_tenant_id__data_source_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/webshop-config/{config_tenant_id}/products/load-feed/start":{"post":{"tags":["Admin"],"summary":"Load Feed Start","description":"Feed alapú termékbetöltés indítása (háttérben). Válasz: 201 { job_id }. Poll: GET load-feed/status?job_id=...","operationId":"load_feed_start_api_admin_webshop_config__config_tenant_id__products_load_feed_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadFeedStartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/webshop-config/{config_tenant_id}/products/load-feed/start-file":{"post":{"tags":["Admin"],"summary":"Load Feed Start File","description":"Feed alapú termékbetöltés indítása feltöltött fájlból (háttérben). Válasz: 201 { job_id }. Poll: GET load-feed/status?job_id=...","operationId":"load_feed_start_file_api_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_load_feed_start_file_api_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/webshop-config/{config_tenant_id}/products/load-feed/status":{"get":{"tags":["Admin"],"summary":"Load Feed Status","description":"Poll: status pending | done (+ result) | error (+ error). TTL után 404.","operationId":"load_feed_status_api_admin_webshop_config__config_tenant_id__products_load_feed_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}},{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/webshop-config/{config_tenant_id}/index-products":{"post":{"tags":["Admin"],"summary":"Index Products","description":"Termékek indexelése (embedding + enrichment) \n\nF9: Shopping Module - Admin API \nPRODUCT_ENRICHMENT_PLAN.md implementáció \n\nFunkciók: \n1. Embedding generálás (ha nincs) \n2. Keywords és summary generálás LLM-mel (ha enable_enrichment=True) \n\nQuery params: \n    enable_enrichment: bool = True (keywords/summary generálás) \n\nRBAC: TENANT_ADMIN (saját tenant) vagy SYSTEM_ADMIN","operationId":"index_products_api_admin_webshop_config__config_tenant_id__index_products_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Config Tenant Id"}},{"name":"enable_enrichment","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enable Enrichment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/webshop/generate-template":{"post":{"tags":["Admin"],"summary":"Generate Shop Template","description":"AI-alapú shop template generálás \n\nF9: Shopping Module - Admin API (uses F7: ShopTemplateGenerator) \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"generate_shop_template_api_admin_webshop_generate_template_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateTemplateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/webshop/generate-template-with-categories":{"post":{"tags":["Admin"],"summary":"Generate Shop Template With Categories","description":"AI-alapú shop template generálás KIVÁLASZTOTT kategóriákkal \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"generate_shop_template_with_categories_api_admin_webshop_generate_template_with_categories_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateTemplateWithCategoriesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/webshop/auto-detect-selectors":{"post":{"tags":["Admin"],"summary":"Auto Detect Webshop Selectors","description":"Automatikus termék felismerés - Új moduláris scraper rendszer. \n \nTEMPLATE_MANDATORY_SPEC: Ha van tenant config: \n- platform + scraper_config átadva a scrapernek \n- Sikeres felfedezésnél visszaadja a selectors-t (config-ból vagy platform alapértelmezés)","operationId":"auto_detect_webshop_selectors_api_admin_webshop_auto_detect_selectors_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoDetectSelectorsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/products/stats/summary":{"get":{"tags":["Admin"],"summary":"Get Products Stats","description":"Termék statisztikák összefoglaló \n\nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"get_products_stats_api_admin_products_stats_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/products":{"get":{"tags":["Admin"],"summary":"List Products","description":"Termékek listázása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nSzűrés: not_scraped=true (Nincs Scrapingolva), not_indexed=true (Nincs Indexelve) \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"list_products_api_admin_products_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"in_stock","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"In Stock"}},{"name":"not_scraped","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Not Scraped"}},{"name":"not_indexed","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Not Indexed"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/products/{product_id}":{"get":{"tags":["Admin"],"summary":"Get Product","description":"Termék részleteinek lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"get_product_api_admin_products__product_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Product","description":"Termék törlése (hard delete: ProductMeta + RAG dokumentum). \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"delete_product_api_admin_products__product_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/products/{product_id}/stock":{"put":{"tags":["Admin"],"summary":"Toggle Product Stock","description":"Termék készlet állapotának váltása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"toggle_product_stock_api_admin_products__product_id__stock_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleStockRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/products/{product_id}/restore":{"post":{"tags":["Admin"],"summary":"Restore Product","description":"Törölt termék visszaállítása \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nF9: Shopping Module - Admin API \n\nRBAC: TENANT_ADMIN vagy SYSTEM_ADMIN","operationId":"restore_product_api_admin_products__product_id__restore_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/survey/settings":{"get":{"tags":["Admin"],"summary":"Survey Get Settings","operationId":"survey_get_settings_api_admin_survey_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Survey Put Settings","operationId":"survey_put_settings_api_admin_survey_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveySettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/profile/display":{"get":{"tags":["Admin"],"summary":"Profile Get Display","operationId":"profile_get_display_api_admin_profile_display_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Admin"],"summary":"Profile Put Display","operationId":"profile_put_display_api_admin_profile_display_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDisplayProfileUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/survey/groups":{"get":{"tags":["Admin"],"summary":"Survey List Groups","operationId":"survey_list_groups_api_admin_survey_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin"],"summary":"Survey Create Group","operationId":"survey_create_group_api_admin_survey_groups_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyGroupCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/survey/groups/{group_id}":{"put":{"tags":["Admin"],"summary":"Survey Update Group","operationId":"survey_update_group_api_admin_survey_groups__group_id__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/SurveyGroupUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Survey Delete Group","operationId":"survey_delete_group_api_admin_survey_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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/survey/questionnaires":{"post":{"tags":["Admin"],"summary":"Survey Create Q","operationId":"survey_create_q_api_admin_survey_questionnaires_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyQuestionnaireCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/survey/questionnaires/{qid}":{"put":{"tags":["Admin"],"summary":"Survey Update Q","operationId":"survey_update_q_api_admin_survey_questionnaires__qid__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"qid","in":"path","required":true,"schema":{"type":"string","title":"Qid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyQuestionnaireUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Survey Delete Q","operationId":"survey_delete_q_api_admin_survey_questionnaires__qid__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"qid","in":"path","required":true,"schema":{"type":"string","title":"Qid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/survey/questionnaires/{qid}/fields":{"post":{"tags":["Admin"],"summary":"Survey Create Field","operationId":"survey_create_field_api_admin_survey_questionnaires__qid__fields_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"qid","in":"path","required":true,"schema":{"type":"string","title":"Qid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyFieldCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/survey/fields/{field_id}":{"put":{"tags":["Admin"],"summary":"Survey Update Field","operationId":"survey_update_field_api_admin_survey_fields__field_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"field_id","in":"path","required":true,"schema":{"type":"string","title":"Field Id"}},{"name":"questionnaire_id","in":"query","required":true,"schema":{"type":"string","description":"questionnaire UUID","title":"Questionnaire Id"},"description":"questionnaire UUID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyFieldUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Survey Delete Field","operationId":"survey_delete_field_api_admin_survey_fields__field_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"field_id","in":"path","required":true,"schema":{"type":"string","title":"Field Id"}},{"name":"questionnaire_id","in":"query","required":true,"schema":{"type":"string","title":"Questionnaire Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/survey/responses":{"get":{"tags":["Admin"],"summary":"Survey List Responses","operationId":"survey_list_responses_api_admin_survey_responses_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"questionnaire_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Questionnaire Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/types":{"get":{"tags":["Booking"],"summary":"List Booking Types","operationId":"list_booking_types_api_v1_booking_types_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BookingTypeResponse"},"title":"Response List Booking Types Api V1 Booking Types Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/availability/slots":{"get":{"tags":["Booking"],"summary":"Get Available Slots","operationId":"get_available_slots_api_v1_booking_availability_slots_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"booking_type_id","in":"query","required":true,"schema":{"type":"string","title":"Booking Type Id"}},{"name":"target_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Target Date"}},{"name":"party_size","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Party Size"}},{"name":"unit_filter_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Filter Key"}},{"name":"unit_filter_value","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Filter Value"}},{"name":"unit_filter_attributes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON objektum: attributes_json AND egyezés (pl. {\"hair_service\":\"general\",\"stylist_id\":\"peter\"})","title":"Unit Filter Attributes"},"description":"JSON objektum: attributes_json AND egyezés (pl. {\"hair_service\":\"general\",\"stylist_id\":\"peter\"})"},{"name":"listing_mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Slot-/interval listázás: default | per_resource | auto. per_resource: egy sor ≈ egy erőforrás (több létszám több egységre). auto: foglalástípus config multi_unit_party_split / multi_table_party_split + létszám dönt.","title":"Listing Mode"},"description":"Slot-/interval listázás: default | per_resource | auto. per_resource: egy sor ≈ egy erőforrás (több létszám több egységre). auto: foglalástípus config multi_unit_party_split / multi_table_party_split + létszám dönt."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotAvailabilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/availability/slots":{"get":{"tags":["Booking"],"summary":"Admin Get Available Slots","description":"Admin / JWT: szabad slotok (ugyanaz a logika, mint a /availability/slots — explicit admin útvonal).","operationId":"admin_get_available_slots_api_v1_booking_admin_availability_slots_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"booking_type_id","in":"query","required":true,"schema":{"type":"string","title":"Booking Type Id"}},{"name":"target_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Target Date"}},{"name":"party_size","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Party Size"}},{"name":"unit_filter_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Filter Key"}},{"name":"unit_filter_value","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Filter Value"}},{"name":"unit_filter_attributes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON objektum: több attribútum egyidejű szűrése (AND)","title":"Unit Filter Attributes"},"description":"JSON objektum: több attribútum egyidejű szűrése (AND)"},{"name":"listing_mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"default | per_resource | auto — lásd publikus /availability/slots.","title":"Listing Mode"},"description":"default | per_resource | auto — lásd publikus /availability/slots."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotAvailabilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/intake/step":{"post":{"tags":["Booking"],"summary":"Post Intake Step","description":"Publikus panel / chat: következő intake kérdés vagy befejezés + opcionális unit_filter a slot API-hoz.","operationId":"post_intake_step_api_v1_booking_intake_step_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeStepRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeStepResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations/{reservation_id}/status":{"get":{"tags":["Booking"],"summary":"Get Reservation Status","operationId":"get_reservation_status_api_v1_booking_reservations__reservation_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations":{"post":{"tags":["Booking"],"summary":"Create Reservation","operationId":"create_reservation_api_v1_booking_reservations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReservationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations/lookup":{"get":{"tags":["Booking"],"summary":"Lookup Reservation By Email","operationId":"lookup_reservation_by_email_api_v1_booking_reservations_lookup_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"reservation_id","in":"query","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations/self-cancel":{"delete":{"tags":["Booking"],"summary":"Self Cancel Reservation","operationId":"self_cancel_reservation_api_v1_booking_reservations_self_cancel_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"reservation_id","in":"query","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations/self-modify":{"patch":{"tags":["Booking"],"summary":"Self Modify Reservation","operationId":"self_modify_reservation_api_v1_booking_reservations_self_modify_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"reservation_id","in":"query","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelfModifyReservationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations/{reservation_id}/ics":{"get":{"tags":["Booking"],"summary":"Download Ics","operationId":"download_ics_api_v1_booking_reservations__reservation_id__ics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations/{reservation_id}":{"get":{"tags":["Booking"],"summary":"Get Reservation","operationId":"get_reservation_api_v1_booking_reservations__reservation_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Booking"],"summary":"Cancel Reservation","operationId":"cancel_reservation_api_v1_booking_reservations__reservation_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/reservations/{reservation_id}/confirm":{"patch":{"tags":["Booking"],"summary":"Confirm Reservation User","operationId":"confirm_reservation_user_api_v1_booking_reservations__reservation_id__confirm_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/templates":{"get":{"tags":["Booking"],"summary":"List Templates For Tenant","description":"Közzétett (aktív) iparági sablonok listája a tenant adminnak.","operationId":"list_templates_for_tenant_api_v1_booking_admin_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IndustryTemplateResponse"},"title":"Response List Templates For Tenant Api V1 Booking Admin Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/templates/apply":{"post":{"tags":["Booking"],"summary":"Apply Industry Template","description":"Iparági sablon másolatainak létrehozása / frissítése a tenanton (idempotens).","operationId":"apply_industry_template_api_v1_booking_admin_templates_apply_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyTemplateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/reservations":{"post":{"tags":["Booking"],"summary":"Admin Create Reservation","operationId":"admin_create_reservation_api_v1_booking_admin_reservations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateReservationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Booking"],"summary":"Admin List Reservations","operationId":"admin_list_reservations_api_v1_booking_admin_reservations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date To"}},{"name":"booking_type_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Booking Type Id"}},{"name":"unit_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Id"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"customer_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Name"}},{"name":"customer_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Email"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Page Size"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/reservations/{reservation_id}":{"put":{"tags":["Booking"],"summary":"Admin Update Reservation","operationId":"admin_update_reservation_api_v1_booking_admin_reservations__reservation_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateReservationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Booking"],"summary":"Admin Cancel Reservation","operationId":"admin_cancel_reservation_api_v1_booking_admin_reservations__reservation_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/reservations/{reservation_id}/confirm":{"post":{"tags":["Booking"],"summary":"Admin Confirm Reservation","operationId":"admin_confirm_reservation_api_v1_booking_admin_reservations__reservation_id__confirm_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/reservations/{reservation_id}/no-show":{"post":{"tags":["Booking"],"summary":"Admin Mark No Show","operationId":"admin_mark_no_show_api_v1_booking_admin_reservations__reservation_id__no_show_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/reservations/{reservation_id}/detail":{"get":{"tags":["Booking"],"summary":"Admin Get Reservation Detail","operationId":"admin_get_reservation_detail_api_v1_booking_admin_reservations__reservation_id__detail_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminReservationDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/customers":{"get":{"tags":["Booking"],"summary":"Admin List Customers","description":"Ügyfelek lapozott listája; üres q esetén az összes (tenant) ügyfél.","operationId":"admin_list_customers_api_v1_booking_admin_customers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":25,"title":"Page Size"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedCustomersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/customers/search":{"get":{"tags":["Booking"],"summary":"Admin Search Customers","operationId":"admin_search_customers_api_v1_booking_admin_customers_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerQuickSearchResult"},"title":"Response Admin Search Customers Api V1 Booking Admin Customers Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/customers/{customer_id}":{"get":{"tags":["Booking"],"summary":"Admin Get Customer","operationId":"admin_get_customer_api_v1_booking_admin_customers__customer_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/reservations/bulk-cancel":{"post":{"tags":["Booking"],"summary":"Admin Bulk Cancel","description":"Több foglalás lemondása; SchedulingService.cancel_reservation skip_window_check=True.","operationId":"admin_bulk_cancel_api_v1_booking_admin_reservations_bulk_cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCancelRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCancelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/reservations/export":{"get":{"tags":["Booking"],"summary":"Admin Export Reservations Csv","description":"Foglalások CSV export (K1: tenant hatókör).","operationId":"admin_export_reservations_csv_api_v1_booking_admin_reservations_export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date To"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/customers/merge":{"post":{"tags":["Booking"],"summary":"Admin Merge Customers","description":"Két ügyfélrekord összevonása: a source foglalásai a targethez kerülnek, source soft-delete.\nCsak azonos tenant; source/target hiánya → 404 CUSTOMER_NOT_FOUND.","operationId":"admin_merge_customers_api_v1_booking_admin_customers_merge_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeCustomersRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/stats/summary":{"get":{"tags":["Booking"],"summary":"Admin Booking Stats Summary","operationId":"admin_booking_stats_summary_api_v1_booking_admin_stats_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingStatsSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/stats/by-type":{"get":{"tags":["Booking"],"summary":"Admin Stats By Booking Type","operationId":"admin_stats_by_booking_type_api_v1_booking_admin_stats_by_type_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date To"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BookingStatsByType"},"title":"Response Admin Stats By Booking Type Api V1 Booking Admin Stats By Type Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/stats/by-channel":{"get":{"tags":["Booking"],"summary":"Admin Stats By Channel","operationId":"admin_stats_by_channel_api_v1_booking_admin_stats_by_channel_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date To"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BookingStatsByChannel"},"title":"Response Admin Stats By Channel Api V1 Booking Admin Stats By Channel Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/units/{unit_id}/schedule":{"get":{"tags":["Booking"],"summary":"Admin Unit Schedule","operationId":"admin_unit_schedule_api_v1_booking_admin_units__unit_id__schedule_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"unit_id","in":"path","required":true,"schema":{"type":"string","title":"Unit Id"}},{"name":"date_from","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date From"}},{"name":"date_to","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date To"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UnitScheduleEntry"},"title":"Response Admin Unit Schedule Api V1 Booking Admin Units  Unit Id  Schedule Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/rules":{"get":{"tags":["Booking"],"summary":"List Availability Rules","operationId":"list_availability_rules_api_v1_booking_admin_rules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"unit_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Id"}},{"name":"booking_type_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Booking Type Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilityRuleResponse"},"title":"Response List Availability Rules Api V1 Booking Admin Rules Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Booking"],"summary":"Create Availability Rule","operationId":"create_availability_rule_api_v1_booking_admin_rules_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityRuleCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityRuleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/rules/{rule_id}":{"put":{"tags":["Booking"],"summary":"Update Availability Rule","operationId":"update_availability_rule_api_v1_booking_admin_rules__rule_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityRuleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityRuleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Booking"],"summary":"Delete Availability Rule","operationId":"delete_availability_rule_api_v1_booking_admin_rules__rule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/booking-types":{"get":{"tags":["Booking"],"summary":"List Booking Types Admin","operationId":"list_booking_types_admin_api_v1_booking_admin_booking_types_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Booking"],"summary":"Create Booking Type","operationId":"create_booking_type_api_v1_booking_admin_booking_types_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTypeCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/booking-types/{bt_id}":{"put":{"tags":["Booking"],"summary":"Update Booking Type","operationId":"update_booking_type_api_v1_booking_admin_booking_types__bt_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bt_id","in":"path","required":true,"schema":{"type":"string","title":"Bt Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTypeUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Booking"],"summary":"Deactivate Booking Type","operationId":"deactivate_booking_type_api_v1_booking_admin_booking_types__bt_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bt_id","in":"path","required":true,"schema":{"type":"string","title":"Bt Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/booking-types/{bt_id}/units":{"get":{"tags":["Booking"],"summary":"List Booking Type Units","operationId":"list_booking_type_units_api_v1_booking_admin_booking_types__bt_id__units_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bt_id","in":"path","required":true,"schema":{"type":"string","title":"Bt Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BookingTypeUnitResponse"},"title":"Response List Booking Type Units Api V1 Booking Admin Booking Types  Bt Id  Units Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Booking"],"summary":"Create Booking Type Unit Route","operationId":"create_booking_type_unit_route_api_v1_booking_admin_booking_types__bt_id__units_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bt_id","in":"path","required":true,"schema":{"type":"string","title":"Bt Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTypeUnitCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTypeUnitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/booking-types/{bt_id}/units/{unit_id}":{"patch":{"tags":["Booking"],"summary":"Update Booking Type Unit Route","operationId":"update_booking_type_unit_route_api_v1_booking_admin_booking_types__bt_id__units__unit_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bt_id","in":"path","required":true,"schema":{"type":"string","title":"Bt Id"}},{"name":"unit_id","in":"path","required":true,"schema":{"type":"string","title":"Unit Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTypeUnitUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTypeUnitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Booking"],"summary":"Delete Booking Type Unit Route","description":"Fizikai törlés (inaktiválás: PATCH active=false).","operationId":"delete_booking_type_unit_route_api_v1_booking_admin_booking_types__bt_id__units__unit_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bt_id","in":"path","required":true,"schema":{"type":"string","title":"Bt Id"}},{"name":"unit_id","in":"path","required":true,"schema":{"type":"string","title":"Unit Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/booking-tenant-llm":{"get":{"tags":["Booking"],"summary":"Get Booking Tenant Llm","operationId":"get_booking_tenant_llm_api_v1_booking_admin_booking_tenant_llm_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTenantLlmResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Booking"],"summary":"Patch Booking Tenant Llm","operationId":"patch_booking_tenant_llm_api_v1_booking_admin_booking_tenant_llm_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTenantLlmUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingTenantLlmResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/booking-types/{bt_id}/permanent":{"delete":{"tags":["Booking"],"summary":"Hard Delete Booking Type Route","operationId":"hard_delete_booking_type_route_api_v1_booking_admin_booking_types__bt_id__permanent_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bt_id","in":"path","required":true,"schema":{"type":"string","title":"Bt Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/booking-types/{booking_type_id}/intake-definitions":{"get":{"tags":["Booking"],"summary":"List Admin Intake Definitions","operationId":"list_admin_intake_definitions_api_v1_booking_admin_booking_types__booking_type_id__intake_definitions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"booking_type_id","in":"path","required":true,"schema":{"type":"string","title":"Booking Type Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntakeDefinitionResponse"},"title":"Response List Admin Intake Definitions Api V1 Booking Admin Booking Types  Booking Type Id  Intake Definitions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Booking"],"summary":"Create Admin Intake Definition","operationId":"create_admin_intake_definition_api_v1_booking_admin_booking_types__booking_type_id__intake_definitions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"booking_type_id","in":"path","required":true,"schema":{"type":"string","title":"Booking Type Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeDefinitionCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/intake-definitions/{definition_id}":{"get":{"tags":["Booking"],"summary":"Get Admin Intake Definition","operationId":"get_admin_intake_definition_api_v1_booking_admin_intake_definitions__definition_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","title":"Definition Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Booking"],"summary":"Update Admin Intake Definition","operationId":"update_admin_intake_definition_api_v1_booking_admin_intake_definitions__definition_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","title":"Definition Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeDefinitionUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeDefinitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Booking"],"summary":"Deactivate Admin Intake Definition","operationId":"deactivate_admin_intake_definition_api_v1_booking_admin_intake_definitions__definition_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","title":"Definition Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/admin/intake-definitions/{definition_id}/permanent":{"delete":{"tags":["Booking"],"summary":"Hard Delete Intake Definition Route","operationId":"hard_delete_intake_definition_route_api_v1_booking_admin_intake_definitions__definition_id__permanent_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","title":"Definition Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/voice/twilio/incoming":{"post":{"tags":["booking-voice"],"summary":"Twilio Incoming Call","description":"Bejövő hívás: tájékoztatás, nincs többfordulós foglalás.","operationId":"twilio_incoming_call_api_v1_booking_voice_twilio_incoming_post","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/v1/booking/voice/twilio/turn":{"post":{"tags":["booking-voice"],"summary":"Twilio Turn","description":"Twilio küldi a felismert szöveget — ugyanaz a lezáró üzenet, nincs LLM.","operationId":"twilio_turn_api_v1_booking_voice_twilio_turn_post","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/v1/booking/voice/twilio/status":{"post":{"tags":["booking-voice"],"summary":"Twilio Status Callback","description":"Twilio hívja hívás befejezésekor – session cleanup.","operationId":"twilio_status_callback_api_v1_booking_voice_twilio_status_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/booking/voice/vapi/webhook":{"post":{"tags":["booking-voice"],"summary":"Vapi Webhook","description":"VAPI.ai webhook — szöveges turn; LLM-foglalás nincs.","operationId":"vapi_webhook_api_v1_booking_voice_vapi_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/system/booking/templates":{"get":{"tags":["system-booking"],"summary":"List System Templates","operationId":"list_system_templates_api_v1_system_booking_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},{"name":"industry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IndustryTemplateResponse"},"title":"Response List System Templates Api V1 System Booking Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["system-booking"],"summary":"Create System Template","operationId":"create_system_template_api_v1_system_booking_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemTemplateCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndustryTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/booking/templates/{template_id}":{"get":{"tags":["system-booking"],"summary":"Get System Template","operationId":"get_system_template_api_v1_system_booking_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndustryTemplateDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["system-booking"],"summary":"Update System Template","operationId":"update_system_template_api_v1_system_booking_templates__template_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemTemplateUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndustryTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["system-booking"],"summary":"Delete System Template","operationId":"delete_system_template_api_v1_system_booking_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/booking/templates/{template_id}/publish":{"patch":{"tags":["system-booking"],"summary":"Publish System Template","operationId":"publish_system_template_api_v1_system_booking_templates__template_id__publish_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndustryTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/booking/templates/{template_id}/unpublish":{"patch":{"tags":["system-booking"],"summary":"Unpublish System Template","operationId":"unpublish_system_template_api_v1_system_booking_templates__template_id__unpublish_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndustryTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/panel/tokens":{"get":{"tags":["booking-panel-token"],"summary":"List Panel Tokens","operationId":"list_panel_tokens_api_v1_booking_panel_tokens_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BookingPanelTokenPublic"},"title":"Response List Panel Tokens Api V1 Booking Panel Tokens Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["booking-panel-token"],"summary":"Create Panel Token","operationId":"create_panel_token_api_v1_booking_panel_tokens_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingPanelTokenCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingPanelTokenCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/panel/tokens/{token_id}":{"put":{"tags":["booking-panel-token"],"summary":"Update Panel Token","operationId":"update_panel_token_api_v1_booking_panel_tokens__token_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingPanelTokenUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingPanelTokenPublic"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["booking-panel-token"],"summary":"Delete Panel Token","operationId":"delete_panel_token_api_v1_booking_panel_tokens__token_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/panel/tokens/{token_id}/rotate":{"post":{"tags":["booking-panel-token"],"summary":"Rotate Panel Token","operationId":"rotate_panel_token_api_v1_booking_panel_tokens__token_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingPanelTokenCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/display/tokens":{"get":{"tags":["booking-display-token"],"summary":"List Display Tokens","operationId":"list_display_tokens_api_v1_booking_display_tokens_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BookingDisplayTokenPublic"},"title":"Response List Display Tokens Api V1 Booking Display Tokens Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["booking-display-token"],"summary":"Create Display Token","operationId":"create_display_token_api_v1_booking_display_tokens_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDisplayTokenCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDisplayTokenCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/display/tokens/{token_id}":{"put":{"tags":["booking-display-token"],"summary":"Update Display Token","operationId":"update_display_token_api_v1_booking_display_tokens__token_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDisplayTokenUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDisplayTokenPublic"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["booking-display-token"],"summary":"Delete Display Token","operationId":"delete_display_token_api_v1_booking_display_tokens__token_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/display/tokens/{token_id}/rotate":{"post":{"tags":["booking-display-token"],"summary":"Rotate Display Token","operationId":"rotate_display_token_api_v1_booking_display_tokens__token_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant (publikus embed)","title":"Tenant Id"},"description":"Tenant (publikus embed)"},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDisplayTokenCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/booking/display/schedule":{"get":{"tags":["booking-display-token"],"summary":"Get Display Schedule","operationId":"get_display_schedule_api_v1_booking_display_schedule_get","parameters":[{"name":"X-Display-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Display-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisplayScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/stt/jobs":{"post":{"tags":["tools-stt"],"summary":"Create Job Url","operationId":"create_job_url_api_v1_tools_stt_jobs_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobUrlRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["tools-stt"],"summary":"List Jobs","description":"DB-only — MCP poll a háttérworkerben (ne fagyassza az oldalt).","operationId":"list_jobs_api_v1_tools_stt_jobs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"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/JobListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/stt/jobs/upload":{"post":{"tags":["tools-stt"],"summary":"Create Job Upload","operationId":"create_job_upload_api_v1_tools_stt_jobs_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_job_upload_api_v1_tools_stt_jobs_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/tools/stt/jobs/{job_id}":{"get":{"tags":["tools-stt"],"summary":"Get Job","description":"DB-only — MCP poll a háttérworkerben (ne fagyassza az oldalt).","operationId":"get_job_api_v1_tools_stt_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":{"$ref":"#/components/schemas/JobDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["tools-stt"],"summary":"Delete Job","operationId":"delete_job_api_v1_tools_stt_jobs__job_id__delete","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/stt/jobs/{job_id}/result":{"get":{"tags":["tools-stt"],"summary":"Get Result","operationId":"get_result_api_v1_tools_stt_jobs__job_id__result_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":{"$ref":"#/components/schemas/JobResultResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/stt/jobs/{job_id}/download.txt":{"get":{"tags":["tools-stt"],"summary":"Download Txt","operationId":"download_txt_api_v1_tools_stt_jobs__job_id__download_txt_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"variant","in":"query","required":false,"schema":{"type":"string","default":"raw","title":"Variant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/stt/jobs/{job_id}/download.srt":{"get":{"tags":["tools-stt"],"summary":"Download Srt","operationId":"download_srt_api_v1_tools_stt_jobs__job_id__download_srt_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"variant","in":"query","required":false,"schema":{"type":"string","default":"raw","title":"Variant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/stt/jobs/{job_id}/llm-correct":{"post":{"tags":["tools-stt"],"summary":"Llm Correct Job","operationId":"llm_correct_job_api_v1_tools_stt_jobs__job_id__llm_correct_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmCorrectRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/tts/voices":{"get":{"tags":["tools-tts"],"summary":"List Voices","operationId":"list_voices_api_v1_tools_tts_voices_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"language","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opcionális szűrő (hu/en). Üres/all = összes MCP preset.","title":"Language"},"description":"Opcionális szűrő (hu/en). Üres/all = összes MCP preset."},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","description":"Cache kihagyása, friss MCP lista","default":false,"title":"Refresh"},"description":"Cache kihagyása, friss MCP lista"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoicesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/tts/jobs":{"post":{"tags":["tools-tts"],"summary":"Create Job","operationId":"create_job_api_v1_tools_tts_jobs_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTtsJobRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TtsJobCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["tools-tts"],"summary":"List Jobs","description":"Gyors DB olvasás — MCP NINCS a request szálon.","operationId":"list_jobs_api_v1_tools_tts_jobs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"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/TtsJobListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/tts/jobs/{job_id}":{"get":{"tags":["tools-tts"],"summary":"Get Job","description":"Gyors DB olvasás — MCP NINCS a request szálon.","operationId":"get_job_api_v1_tools_tts_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":{"$ref":"#/components/schemas/TtsJobDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["tools-tts"],"summary":"Delete Job","operationId":"delete_job_api_v1_tools_tts_jobs__job_id__delete","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tools/tts/jobs/{job_id}/audio":{"get":{"tags":["tools-tts"],"summary":"Get Audio","operationId":"get_audio_api_v1_tools_tts_jobs__job_id__audio_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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/marketplace-catalog":{"get":{"tags":["quotes"],"summary":"Marketplace Catalog","operationId":"marketplace_catalog_api_v1_quotes_marketplace_catalog_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/units":{"get":{"tags":["quotes"],"summary":"Unit Catalog","operationId":"unit_catalog_api_v1_quotes_units_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/billing-profile":{"get":{"tags":["quotes"],"summary":"Get Billing Profile","operationId":"get_billing_profile_api_v1_quotes_billing_profile_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["quotes"],"summary":"Patch Billing Profile","operationId":"patch_billing_profile_api_v1_quotes_billing_profile_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteBillingProfileUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/workflow-templates":{"get":{"tags":["quotes"],"summary":"List Workflow Templates","operationId":"list_workflow_templates_api_v1_quotes_workflow_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quotes"],"summary":"Create Workflow Template","operationId":"create_workflow_template_api_v1_quotes_workflow_templates_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTemplateCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/workflow-templates/search":{"get":{"tags":["quotes"],"summary":"REQ-096: workflow-template-ek tartalom-keresése (cross-template)","description":"Tenant-szintű kereső a `payload_json` REQ-094 / REQ-095 / REQ-097 mezőin (címek, attribútumok, provenance, safety, craft_hints, raw_rows). A `q` min. 2 karakter; `fields` paraméterrel szűkíthető a hatókör. L1 implementáció: Postgres `ILIKE` előszűrés + Python per-mező extrakció + snippet-előállítás `<mark>` HTML-kiemeléssel. A találatok `next_cursor`-ral lapozhatók.","operationId":"search_workflow_templates_api_v1_quotes_workflow_templates_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":200,"description":"Keresési kifejezés (min 2 karakter).","title":"Q"},"description":"Keresési kifejezés (min 2 karakter)."},{"name":"fields","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Vesszővel elválasztott mező-prefix lista (pl. `attributes.brand,line_titles`). Default: `__all__`.","title":"Fields"},"description":"Vesszővel elválasztott mező-prefix lista (pl. `attributes.brand,line_titles`). Default: `__all__`."},{"name":"match_case","in":"query","required":false,"schema":{"type":"boolean","description":"Kis/nagybetű érzékeny.","default":false,"title":"Match Case"},"description":"Kis/nagybetű érzékeny."},{"name":"regex","in":"query","required":false,"schema":{"type":"boolean","description":"Ha igaz, a `q`-t regex-ként értelmezzük (`re.IGNORECASE` opcionálisan).","default":false,"title":"Regex"},"description":"Ha igaz, a `q`-t regex-ként értelmezzük (`re.IGNORECASE` opcionálisan)."},{"name":"pricing_ready_only","in":"query","required":false,"schema":{"type":"boolean","description":"Csak az árasan publikálható sablonok.","default":false,"title":"Pricing Ready Only"},"description":"Csak az árasan publikálható sablonok."},{"name":"status_in","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`__ui__.status` szűrő, vesszős lista (`draft,pending_review,published`).","title":"Status In"},"description":"`__ui__.status` szűrő, vesszős lista (`draft,pending_review,published`)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Max találat sablon-szinten.","default":50,"title":"Limit"},"description":"Max találat sablon-szinten."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Lapozó kurzor; első hívásra üres.","title":"Cursor"},"description":"Lapozó kurzor; első hívásra üres."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/contract-template":{"get":{"tags":["quotes"],"summary":"Üres szerződés Excel sablon (catalog contract v1.0)","operationId":"download_catalog_contract_template_api_v1_quotes_catalog_contract_template_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/import/start":{"post":{"tags":["quotes"],"summary":"Szerződés Excel import háttérben (azonnal job_id, poll status)","operationId":"start_catalog_contract_import_api_v1_quotes_catalog_import_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_start_catalog_contract_import_api_v1_quotes_catalog_import_start_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContractImportStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/import/status":{"get":{"tags":["quotes"],"summary":"Katalógus import job állapot (pending | done | error)","operationId":"get_catalog_contract_import_status_api_v1_quotes_catalog_import_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából","title":"Job Id"},"description":"start válaszából"},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContractImportJobStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/import":{"post":{"tags":["quotes"],"summary":"Szerződés Excel import a törzsbe (szinkron, teszt/script)","operationId":"import_catalog_contract_api_v1_quotes_catalog_import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_catalog_contract_api_v1_quotes_catalog_import_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContractImportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/proposal-from-request":{"post":{"tags":["quotes"],"summary":"Árajánlat catalog_open pipeline (Plan → Search → Resolve → Merge)","operationId":"create_catalog_proposal_from_request_api_v1_quotes_catalog_proposal_from_request_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogProposalFromRequestBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogProposalFromRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/open-catalog-requests":{"get":{"tags":["quotes"],"summary":"Nyitott katalógus-igények listája (tenant, intake_profile)","operationId":"list_open_catalog_requests_staff_api_v1_quotes_open_catalog_requests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"open|cataloged|closed|irrelevant","title":"Status"},"description":"open|cataloged|closed|irrelevant"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"export","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Export"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/closed-catalog-gap-requests":{"get":{"tags":["quotes"],"summary":"Zárt katalógus hiányok (closed_catalog_gap_requests, nem nyitott queue)","operationId":"list_closed_catalog_gap_requests_staff_api_v1_quotes_closed_catalog_gap_requests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"open|cataloged|closed|irrelevant","title":"Status"},"description":"open|cataloged|closed|irrelevant"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"export","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Export"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/open-catalog-requests/{ocr_id}":{"patch":{"tags":["quotes"],"summary":"Nyitott katalógus-igény státusz / SKU","operationId":"patch_open_catalog_request_staff_api_v1_quotes_requests__request_id__open_catalog_requests__ocr_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"ocr_id","in":"path","required":true,"schema":{"type":"string","title":"Ocr Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenCatalogRequestPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/open-catalog-requests/{ocr_id}/promote-to-catalog":{"post":{"tags":["quotes"],"summary":"Katalógus-igény → quote_catalog_item + cataloged státusz","operationId":"promote_open_catalog_request_staff_api_v1_quotes_requests__request_id__open_catalog_requests__ocr_id__promote_to_catalog_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"ocr_id","in":"path","required":true,"schema":{"type":"string","title":"Ocr Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenCatalogRequestPromoteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/scopes":{"get":{"tags":["quotes"],"summary":"Zárt katalógus scope lista (név + leírás meta)","operationId":"list_catalog_scopes_staff_api_v1_quotes_catalog_scopes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quotes"],"summary":"Új zárt katalógus scope (név + részletes leírás)","operationId":"create_catalog_scope_staff_api_v1_quotes_catalog_scopes_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogScopeCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/scopes/{scope_id}":{"get":{"tags":["quotes"],"summary":"Zárt katalógus scope részletei","operationId":"get_catalog_scope_staff_api_v1_quotes_catalog_scopes__scope_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope_id","in":"path","required":true,"schema":{"type":"string","title":"Scope Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["quotes"],"summary":"Zárt katalógus scope szerkesztése","operationId":"patch_catalog_scope_staff_api_v1_quotes_catalog_scopes__scope_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope_id","in":"path","required":true,"schema":{"type":"string","title":"Scope Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogScopePatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["quotes"],"summary":"Zárt katalógus scope inaktiválása (soft delete)","operationId":"delete_catalog_scope_staff_api_v1_quotes_catalog_scopes__scope_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope_id","in":"path","required":true,"schema":{"type":"string","title":"Scope Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/scopes/{scope_id}/import-batches":{"get":{"tags":["quotes"],"summary":"Scope-hoz tartozó import batch azonosítók (legutóbbiak)","operationId":"list_scope_import_batches_staff_api_v1_quotes_catalog_scopes__scope_id__import_batches_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope_id","in":"path","required":true,"schema":{"type":"string","title":"Scope Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/open-summary":{"get":{"tags":["quotes"],"summary":"Nyitott (scope nélküli) katalógus összesítő","operationId":"get_open_catalog_summary_staff_api_v1_quotes_catalog_open_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/open/import-batches":{"get":{"tags":["quotes"],"summary":"Nyitott katalógus import batch azonosítók (scope nélküli tételek)","operationId":"list_open_catalog_import_batches_staff_api_v1_quotes_catalog_open_import_batches_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/catalog/contract-schema":{"get":{"tags":["quotes"],"summary":"Szerződés séma meta (core + egyedi oszlopok)","operationId":"get_catalog_contract_schema_meta_api_v1_quotes_catalog_contract_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/quotes/catalog/contract-settings":{"get":{"tags":["quotes"],"summary":"Tenant szerződés beállítások (egyedi oszlopok)","operationId":"get_catalog_contract_settings_api_v1_quotes_catalog_contract_settings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["quotes"],"summary":"Tenant szerződés beállítások mentése","operationId":"put_catalog_contract_settings_api_v1_quotes_catalog_contract_settings_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogContractSettingsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/workflow-templates/{template_id}":{"get":{"tags":["quotes"],"summary":"Get Workflow Template","operationId":"get_workflow_template_api_v1_quotes_workflow_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["quotes"],"summary":"Update Workflow Template","operationId":"update_workflow_template_api_v1_quotes_workflow_templates__template_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["quotes"],"summary":"Delete Workflow Template","operationId":"delete_workflow_template_api_v1_quotes_workflow_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/workflow-templates/{template_id}/submit-review":{"post":{"tags":["quotes"],"summary":"Workflow státusz: review-ra (UI meta a payload_json._workflow_ui alatt)","operationId":"workflow_submit_for_review_api_v1_quotes_workflow_templates__template_id__submit_review_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/workflow-templates/{template_id}/reconcile-pricing":{"post":{"tags":["quotes"],"summary":"REQ-095: tömeges ár-rekonciliáció a sablon line_item_templates[]-én","description":"Admin-akció: a `priced_sample` LLM importból maradt `pricing_status=missing`/`ambiguous` sorok árának pótlása. Több sort egyetlen kérésben lehet rekonciliálni; a végpont újraszámolja a `quote_pricing_audit`-ot, frissíti a `_workflow_ui.status`-t (ha minden sor priced/zero → `pending_review`), és a `__pricing_history__`-ba auditálható bejegyzést tesz. **Publish** csak akkor lehetséges, ha minden sor rekonciliált.","operationId":"workflow_reconcile_pricing_api_v1_quotes_workflow_templates__template_id__reconcile_pricing_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PricingReconcileBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/workflow-templates/{template_id}/publish":{"post":{"tags":["quotes"],"summary":"Workflow státusz: published (UI meta + auditálható user_id)","description":"REQ-095: a publish csak akkor sikeres, ha a sablon minden `line_item_templates` sorában `pricing_status ∈ {priced, zero}`. Egyébként **409 QUOTE_PRICING_RECONCILIATION_REQUIRED** hiba az érintett indexekkel az `extra.unreconciled_indices` mezőben.","operationId":"workflow_publish_api_v1_quotes_workflow_templates__template_id__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests":{"get":{"tags":["quotes"],"summary":"List Requests","operationId":"list_requests_api_v1_quotes_requests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quotes"],"summary":"Create Request","operationId":"create_request_api_v1_quotes_requests_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequestCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public-tokens":{"get":{"tags":["quotes"],"summary":"List Public Tokens","operationId":"list_public_tokens_api_v1_quotes_public_tokens_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"catalog_surface","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Szűrés: closed | open — külön admin felület (zárt vs teljes katalógus tokenek).","title":"Catalog Surface"},"description":"Szűrés: closed | open — külön admin felület (zárt vs teljes katalógus tokenek)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quotes"],"summary":"Create Public Token","operationId":"create_public_token_api_v1_quotes_public_tokens_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTokenCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public-tokens/{token_id}/token":{"get":{"tags":["quotes"],"summary":"Get Public Token Plain","description":"Tenant admin — nyers token (DB, nincs külön titkosítási kulcs).","operationId":"get_public_token_plain_api_v1_quotes_public_tokens__token_id__token_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public-tokens/{token_id}/embed-snippets":{"get":{"tags":["quotes"],"summary":"Get Public Token Embed Snippets","description":"Beágyazható HTML + landing Head/Body (system-admin zóna szerint).","operationId":"get_public_token_embed_snippets_api_v1_quotes_public_tokens__token_id__embed_snippets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public-tokens/{token_id}/rotate":{"post":{"tags":["quotes"],"summary":"Rotate Public Token","operationId":"rotate_public_token_api_v1_quotes_public_tokens__token_id__rotate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public-tokens/{token_id}":{"patch":{"tags":["quotes"],"summary":"Update Public Token","operationId":"update_public_token_api_v1_quotes_public_tokens__token_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotePublicTokenUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["quotes"],"summary":"Delete Public Token","operationId":"delete_public_token_api_v1_quotes_public_tokens__token_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/workflow-templates/import":{"post":{"tags":["quotes"],"summary":"Import Workflow Template","operationId":"import_workflow_template_api_v1_quotes_workflow_templates_import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowImportBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/intake/handoff":{"post":{"tags":["quotes"],"summary":"Quote Intake Handoff","operationId":"quote_intake_handoff_api_v1_quotes_intake_handoff_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteIntakeHandoffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteIntakeHandoffResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/intake/session/patch":{"post":{"tags":["quotes"],"summary":"Session quote_intake UI merge (CAT-6.1, staff)","operationId":"patch_quote_intake_session_route_api_v1_quotes_intake_session_patch_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteIntakeSessionPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}":{"get":{"tags":["quotes"],"summary":"Get Request","operationId":"get_request_api_v1_quotes_requests__request_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["quotes"],"summary":"Patch Request","operationId":"patch_request_api_v1_quotes_requests__request_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequestPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/open-lane-requests":{"get":{"tags":["quotes"],"summary":"Nyitott katalógus beküldött igények (admin lista)","operationId":"list_open_lane_requests_api_v1_quotes_open_lane_requests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/open-lane-admin-view":{"get":{"tags":["quotes"],"summary":"Nyitott katalógus igény — admin UI modell (árak, megrendelő)","operationId":"get_open_lane_admin_view_api_v1_quotes_requests__request_id__open_lane_admin_view_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/open-lane-draft":{"patch":{"tags":["quotes"],"summary":"Nyitott katalógus igény — mentés (megrendelő + tételek)","operationId":"patch_open_lane_draft_api_v1_quotes_requests__request_id__open_lane_draft_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenLaneDraftPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/open-lane-send":{"post":{"tags":["quotes"],"summary":"Nyitott katalógus igény — árajánlat küldése e-mailben","operationId":"post_open_lane_send_api_v1_quotes_requests__request_id__open_lane_send_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenLaneSendBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/open-lane-orders":{"get":{"tags":["quotes"],"summary":"Nyitott katalógus — megrendelések listája","operationId":"list_open_lane_orders_api_v1_quotes_open_lane_orders_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/open-lane-order":{"patch":{"tags":["quotes"],"summary":"Megrendelés — kiszállítva jelölés","operationId":"patch_open_lane_order_route_api_v1_quotes_requests__request_id__open_lane_order_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenLaneOrderPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/customer-revision-diff":{"get":{"tags":["quotes"],"summary":"Get Customer Revision Diff","description":"O-06 — ügyfél módosítás diff a kiküldött ajánlathoz képest.","operationId":"get_customer_revision_diff_api_v1_quotes_requests__request_id__customer_revision_diff_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/attachments":{"post":{"tags":["quotes"],"summary":"Upload Attachment","operationId":"upload_attachment_api_v1_quotes_requests__request_id__attachments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_attachment_api_v1_quotes_requests__request_id__attachments_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/proposals/generate":{"post":{"tags":["quotes"],"summary":"Generate Proposal","operationId":"generate_proposal_api_v1_quotes_requests__request_id__proposals_generate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"ignore_failed_attachments","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Ignore Failed Attachments"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/jobs":{"post":{"tags":["quotes"],"summary":"Create Quote Job","operationId":"create_quote_job_api_v1_quotes_jobs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteJobCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/jobs/{job_id}":{"get":{"tags":["quotes"],"summary":"Get Quote Job","operationId":"get_quote_job_api_v1_quotes_jobs__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/jobs/{job_id}/cancel":{"post":{"tags":["quotes"],"summary":"Cancel Quote Job","operationId":"cancel_quote_job_api_v1_quotes_jobs__job_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/requests/{request_id}/proposals":{"get":{"tags":["quotes"],"summary":"List Proposals","operationId":"list_proposals_api_v1_quotes_requests__request_id__proposals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/proposals/recent":{"get":{"tags":["quotes"],"summary":"List Recent Proposals","operationId":"list_recent_proposals_api_v1_quotes_proposals_recent_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":40,"title":"Limit"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/proposals/{proposal_id}":{"get":{"tags":["quotes"],"summary":"Get Proposal","operationId":"get_proposal_api_v1_quotes_proposals__proposal_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["quotes"],"summary":"Patch Proposal","operationId":"patch_proposal_api_v1_quotes_proposals__proposal_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteProposalPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/compat-rules":{"get":{"tags":["quotes"],"summary":"Compat szabályok listája (REQ-080, staff)","operationId":"list_compat_rules_api_v1_quotes_compat_rules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quotes"],"summary":"Új compat szabály (REQ-080, staff)","operationId":"create_compat_rule_api_v1_quotes_compat_rules_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatRuleCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/compat-rules/{rule_row_id}":{"patch":{"tags":["quotes"],"summary":"Compat szabály frissítése (staff)","operationId":"patch_compat_rule_api_v1_quotes_compat_rules__rule_row_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_row_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Row Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatRulePatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["quotes"],"summary":"Compat szabály törlése (staff)","operationId":"delete_compat_rule_api_v1_quotes_compat_rules__rule_row_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rule_row_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Row Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/socket-compat":{"get":{"tags":["quotes"],"summary":"Foglalat kompat mátrix sorok (REQ-080 M.7.4, staff)","operationId":"list_socket_compat_api_v1_quotes_socket_compat_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quotes"],"summary":"Foglalat kompat pár felvétele (staff)","operationId":"create_socket_compat_api_v1_quotes_socket_compat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocketCompatPairCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["quotes"],"summary":"Foglalat kompat pár törlése (staff)","operationId":"delete_socket_compat_api_v1_quotes_socket_compat_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocketCompatPairDeleteBody"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/intake/revalidate":{"post":{"tags":["quotes"],"summary":"Intake ellenőrzés: handoff stage + compat (line_items)","operationId":"quote_intake_revalidate_staff_api_v1_quotes_intake_revalidate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteIntakeRevalidateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/proposals/{proposal_id}/apply-lines-to-workflow":{"post":{"tags":["quotes"],"summary":"Apply Proposal Lines To Workflow","operationId":"apply_proposal_lines_to_workflow_api_v1_quotes_proposals__proposal_id__apply_lines_to_workflow_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyProposalLinesToWorkflowBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/proposals/{proposal_id}/html":{"get":{"tags":["quotes"],"summary":"Get Proposal Html","operationId":"get_proposal_html_api_v1_quotes_proposals__proposal_id__html_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/proposals/{proposal_id}/cover-letter/polish":{"post":{"tags":["quotes"],"summary":"Polish Proposal Cover Letter","description":"O-21 — LLM finomítás; nem menti automatikusan a proposal-t.","operationId":"polish_proposal_cover_letter_api_v1_quotes_proposals__proposal_id__cover_letter_polish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverLetterPolishBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/proposals/{proposal_id}/email-jobs":{"post":{"tags":["quotes"],"summary":"Create Email Job","operationId":"create_email_job_api_v1_quotes_proposals__proposal_id__email_jobs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailJobCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/email-jobs/{job_id}/approve":{"post":{"tags":["quotes"],"summary":"Approve Email Job","operationId":"approve_email_job_api_v1_quotes_email_jobs__job_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/email-jobs/{job_id}/reject":{"post":{"tags":["quotes"],"summary":"Reject Email Job","operationId":"reject_email_job_api_v1_quotes_email_jobs__job_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailJobRejectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/email-jobs/{job_id}/send":{"post":{"tags":["quotes"],"summary":"Send Email Job","operationId":"send_email_job_api_v1_quotes_email_jobs__job_id__send_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/email-jobs":{"get":{"tags":["quotes"],"summary":"List Email Jobs","operationId":"list_email_jobs_api_v1_quotes_email_jobs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/email-jobs/{job_id}/retry":{"post":{"tags":["quotes"],"summary":"Retry Email Job","operationId":"retry_email_job_api_v1_quotes_email_jobs__job_id__retry_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public/requests":{"post":{"tags":["quotes"],"summary":"Public Create Request","operationId":"public_create_request_api_v1_quotes_public_requests_post","parameters":[{"name":"quote_public_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Public Token"}},{"name":"X-Quote-Public-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Quote-Public-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRequestCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public/intake/handoff":{"post":{"tags":["quotes"],"summary":"Public Quote Intake Handoff","operationId":"public_quote_intake_handoff_api_v1_quotes_public_intake_handoff_post","parameters":[{"name":"quote_public_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Public Token"}},{"name":"X-Quote-Public-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Quote-Public-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteIntakeHandoffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRequestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quotes/public/requests/{request_id}":{"get":{"tags":["quotes"],"summary":"Public Get Request","operationId":"public_get_request_api_v1_quotes_public_requests__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"quote_public_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote Public Token"}},{"name":"X-Quote-Public-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Quote-Public-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicQuoteRequestStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/quotes/units":{"get":{"tags":["quotes-system"],"summary":"List Quote Units Catalog","description":"Mértékegység-katalógus (globális quote_unit tábla) — marketplace szerkesztő űrlaphoz.","operationId":"list_quote_units_catalog_api_v1_system_quotes_units_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/system/quotes/marketplace/templates":{"get":{"tags":["quotes-system"],"summary":"List Templates","operationId":"list_templates_api_v1_system_quotes_marketplace_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quotes-system"],"summary":"Create Template","operationId":"create_template_api_v1_system_quotes_marketplace_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceTemplateCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/quotes/marketplace/templates/{template_id}":{"get":{"tags":["quotes-system"],"summary":"Get Template","operationId":"get_template_api_v1_system_quotes_marketplace_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["quotes-system"],"summary":"Update Template","operationId":"update_template_api_v1_system_quotes_marketplace_templates__template_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceTemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["quotes-system"],"summary":"Delete Template","operationId":"delete_template_api_v1_system_quotes_marketplace_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/quotes/marketplace/templates/suggest-from-sample":{"post":{"tags":["quotes-system"],"summary":"Suggest From Sample","operationId":"suggest_from_sample_api_v1_system_quotes_marketplace_templates_suggest_from_sample_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestFromSampleBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/search":{"get":{"tags":["catalog"],"summary":"Katalógus keresés (tenant)","description":"Szöveges keresés (`q`) a cím és leírás mezőkben (ILIKE); facet szűrők JSONB-ben, ismétlődő `facet=kulcs=érték` query paraméterekkel (pl. `facet=category=ram`). REQ-022: **keyset** lapozás — első oldal: nincs `after_*`; következő: utolsó elem `title_hu` + `id`. A válasz **nem** tartalmaz teljes elemszámot (lásd `/search/count`). Költségkorlát: `q` max 200 karakter; `limit` max 50.","operationId":"catalog_search_api_v1_catalog_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Keresőszöveg (cím / leírás)","title":"Q"},"description":"Keresőszöveg (cím / leírás)"},{"name":"facet","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"Ismétlődő: facet=kulcs=érték","title":"Facet"},"description":"Ismétlődő: facet=kulcs=érték"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Oldalméret (max 50)","default":20,"title":"Limit"},"description":"Oldalméret (max 50)"},{"name":"after_title_hu","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"Keyset: előző válasz utolsó title_hu (after_id kötelező együtt).","title":"After Title Hu"},"description":"Keyset: előző válasz utolsó title_hu (after_id kötelező együtt)."},{"name":"after_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"Keyset: előző válasz utolsó sor id (UUID).","title":"After Id"},"description":"Keyset: előző válasz utolsó sor id (UUID)."},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","description":"Ha true, inaktív tételek is (alapértelmezés: csak aktív).","default":false,"title":"Include Inactive"},"description":"Ha true, inaktív tételek is (alapértelmezés: csak aktív)."},{"name":"open_catalog_only","in":"query","required":false,"schema":{"type":"boolean","description":"Ha true, csak scope nélküli tételek (teljes / nyitott katalógus sáv).","default":false,"title":"Open Catalog Only"},"description":"Ha true, csak scope nélküli tételek (teljes / nyitott katalógus sáv)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/search/count":{"get":{"tags":["catalog"],"summary":"Katalógus keresés — elemszám (külön, költséges)","description":"REQ-023: ugyanazok a szűrők mint `/search`, de COUNT(*). Postgres: max 2s statement timeout; túllépés → 503. Rate limit: env `QUOTE_CATALOG_COUNT_RPM` (default 10 / perc / tenant).","operationId":"catalog_search_count_api_v1_catalog_search_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Q"}},{"name":"facet","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Facet"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"open_catalog_only","in":"query","required":false,"schema":{"type":"boolean","description":"Ha true, csak scope nélküli tételek (teljes katalógus sáv).","default":false,"title":"Open Catalog Only"},"description":"Ha true, csak scope nélküli tételek (teljes katalógus sáv)."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogSearchCountResponse"}}}},"503":{"description":"Count lekérdezés timeout (count: null)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/recommended":{"get":{"tags":["catalog"],"summary":"Ajánlott 5 katalógus tétel (tenant)","description":"Első verzió: determinisztikus heurisztika + facet szűrők a katalógus sorok `facets` mezője alapján. Max 5 elem.","operationId":"catalog_recommended_api_v1_catalog_recommended_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_template_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Workflow Template Id"}},{"name":"workflow_step_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Workflow Step Id"}},{"name":"context_line_ids","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"Kontextus line_id lista a javaslathoz; üres lista = nincs ilyen szűkítés.","title":"Context Line Ids"},"description":"Kontextus line_id lista a javaslathoz; üres lista = nincs ilyen szűkítés."},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogRecommendedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/items/{catalog_item_id}":{"get":{"tags":["catalog"],"summary":"Katalógus sor lekérés (staff)","operationId":"catalog_get_item_api_v1_catalog_items__catalog_item_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"catalog_item_id","in":"path","required":true,"schema":{"type":"string","title":"Catalog Item Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["catalog"],"summary":"Katalógus sor frissítés (REQ-081, staff)","operationId":"catalog_patch_item_api_v1_catalog_items__catalog_item_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"catalog_item_id","in":"path","required":true,"schema":{"type":"string","title":"Catalog Item Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogItemPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/import-price-delta":{"post":{"tags":["catalog"],"summary":"Delta ár import (catalog_open, staff)","operationId":"catalog_import_price_delta_api_v1_catalog_import_price_delta_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogPriceDeltaImportBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/items":{"post":{"tags":["catalog"],"summary":"Katalógus sor létrehozás (REQ-081, staff)","operationId":"catalog_create_item_api_v1_catalog_items_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogItemCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/items/bulk":{"post":{"tags":["catalog"],"summary":"Katalógus tömeges import (REQ-081, staff)","operationId":"catalog_bulk_import_items_api_v1_catalog_items_bulk_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogBulkImportBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/facet-keys":{"get":{"tags":["catalog"],"summary":"Facet kulcs regiszter listázása (REQ-081, staff)","operationId":"catalog_list_facet_keys_api_v1_catalog_facet_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["catalog"],"summary":"Facet kulcs regisztrálása (REQ-081, staff)","operationId":"catalog_create_facet_key_api_v1_catalog_facet_keys_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacetKeyCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/facet-keys/{facet_key_id}":{"patch":{"tags":["catalog"],"summary":"Facet kulcs frissítése (REQ-081, staff)","operationId":"catalog_patch_facet_key_api_v1_catalog_facet_keys__facet_key_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"facet_key_id","in":"path","required":true,"schema":{"type":"string","title":"Facet Key Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacetKeyPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/facet-keys/{facet_key_id}/enum-members":{"post":{"tags":["catalog"],"summary":"Enum tag hozzáadása (REQ-081, staff)","operationId":"catalog_add_facet_enum_member_api_v1_catalog_facet_keys__facet_key_id__enum_members_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"facet_key_id","in":"path","required":true,"schema":{"type":"string","title":"Facet Key Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"X-Tenant-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Tenant-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacetEnumMemberCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/webshop/request-scrape":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Request Scrape","description":"Deprecated: webshop termékbevitel mostantól csak feed alapú.","operationId":"request_scrape_admin_webshop_request_scrape_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestScrapeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/webshop/request-selector":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Request Selector","description":"Deprecated: webshop termékbevitel mostantól csak feed alapú.","operationId":"request_selector_admin_webshop_request_selector_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/webshop/request-index":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Request Index","description":"Deprecated: indexelés a feed betöltés része, nincs külön kérés.","operationId":"request_index_admin_webshop_request_index_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/webshop/progress":{"get":{"tags":["Scraping & Indexing Queue"],"summary":"Get Webshop Progress","description":"Előrehaladás: scraped/total, indexed/total (tenant saját adatai).","operationId":"get_webshop_progress_admin_webshop_progress_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/scraping/queue":{"get":{"tags":["Scraping & Indexing Queue"],"summary":"Get Scraping Queue","description":"Scraping sor tartalma (System Admin only)","operationId":"get_scraping_queue_admin_scraping_queue_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/scraping/status":{"get":{"tags":["Scraping & Indexing Queue"],"summary":"Get Scraping Status","description":"Scraping státusz: fut-e, melyik tenant, can_stop, progress","operationId":"get_scraping_status_admin_scraping_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/scraping/stop":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Stop Scraping","description":"Scraping megállítása (System Admin only). A futó job paused lesz.","operationId":"stop_scraping_admin_scraping_stop_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/scraping/cancel-paused/{item_id}":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Cancel Paused Scraping","description":"Megállított (paused) elem törlése a sorból. A tenant ezután újra kérhet.","operationId":"cancel_paused_scraping_admin_scraping_cancel_paused__item_id__post","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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/scraping/force-reset":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Force Reset Scraping","description":"Beragadott scraping feloldása (System Admin only). \nA futó elem DB-ben paused lesz. A lock csak a szerver újraindításával szabadul. \nEzután indítsd újra az API szervert (uvicorn), majd „Scraping folytatása\" gombbal folytathatod.","operationId":"force_reset_scraping_admin_scraping_force_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/scraping/process-next":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Process Next Scraping","description":"Következő scraping elem futtatása (System Admin only). Ha van paused, azt folytatja.","operationId":"process_next_scraping_admin_scraping_process_next_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/selector/queue":{"get":{"tags":["Scraping & Indexing Queue"],"summary":"Get Selector Queue","description":"Selector sor tartalma (System Admin only)","operationId":"get_selector_queue_admin_selector_queue_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/selector/cancel-pending":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Cancel Pending Selector","description":"Pending/paused selector törlése a tenantnál (E2E teszt, SHOP_E2E_TEST_SPEC 7. hiány).","operationId":"cancel_pending_selector_admin_selector_cancel_pending_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":true,"schema":{"type":"string","description":"Tenant ID","title":"Tenant Id"},"description":"Tenant ID"},{"name":"force_reset_running","in":"query","required":false,"schema":{"type":"boolean","description":"Running elem failed-re állítása (E2E cleanup)","default":false,"title":"Force Reset Running"},"description":"Running elem failed-re állítása (E2E cleanup)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/selector/process-next":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Process Next Selector","description":"Következő Selector elem futtatása. Ugyanaz a lock mint a scraping (egyszerre csak egy).","operationId":"process_next_selector_admin_selector_process_next_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/indexing/queue":{"get":{"tags":["Scraping & Indexing Queue"],"summary":"Get Indexing Queue","description":"Indexelési sor tartalma (System Admin only)","operationId":"get_indexing_queue_admin_indexing_queue_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/indexing/status":{"get":{"tags":["Scraping & Indexing Queue"],"summary":"Get Indexing Status","description":"Indexelés státusz","operationId":"get_indexing_status_admin_indexing_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/indexing/reset-stuck":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Reset Stuck Indexing","description":"Beragadt indexelés feloldása: running elemek pending-re állítása, lock felszabadítása. \nHa az indexelés megszakadt (pl. szerver újraindítás), a sor 'running' marad és a UI \nfolyamatosan GET-et küld. Ez a végpont visszaállítja a running tételt pending-re.","operationId":"reset_stuck_indexing_admin_indexing_reset_stuck_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/indexing/process-next":{"post":{"tags":["Scraping & Indexing Queue"],"summary":"Process Next Indexing","description":"Következő indexelési elem futtatása (System Admin only). globális lock.","operationId":"process_next_indexing_admin_indexing_process_next_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/fb/profiles":{"get":{"tags":["Facebook"],"summary":"List Profiles","description":"List Facebook profiles for the tenant.","operationId":"list_profiles_admin_fb_profiles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbProfileListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Facebook"],"summary":"Create Profile","description":"Create profile (typically after OAuth callback).","operationId":"create_profile_admin_fb_profiles_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbProfileCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/fb/profiles/{profile_id}":{"get":{"tags":["Facebook"],"summary":"Get Profile","description":"Get profile by ID.","operationId":"get_profile_admin_fb_profiles__profile_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Facebook"],"summary":"Update Profile","description":"Update profile.","operationId":"update_profile_admin_fb_profiles__profile_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbProfileUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Facebook"],"summary":"Delete Profile","description":"Delete profile and all related data.","operationId":"delete_profile_admin_fb_profiles__profile_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/data-groups":{"get":{"tags":["Facebook"],"summary":"List Data Groups","description":"List data groups for a profile.","operationId":"list_data_groups_admin_fb_profiles__profile_id__data_groups_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbDataGroupListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Facebook"],"summary":"Create Data Group","description":"Create data group.","operationId":"create_data_group_admin_fb_profiles__profile_id__data_groups_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbDataGroupCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbDataGroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/data-groups/{group_id}":{"put":{"tags":["Facebook"],"summary":"Update Data Group","description":"Update data group.","operationId":"update_data_group_admin_fb_data_groups__group_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbDataGroupUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbDataGroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Facebook"],"summary":"Delete Data Group","description":"Delete data group and all contents (including vectors).","operationId":"delete_data_group_admin_fb_data_groups__group_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/data-groups/{group_id}/contents":{"get":{"tags":["Facebook"],"summary":"List Contents","description":"List contents for a data group.","operationId":"list_contents_admin_fb_data_groups__group_id__contents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbContentListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Facebook"],"summary":"Create Content","description":"Create content and index to vector store.","operationId":"create_content_admin_fb_data_groups__group_id__contents_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbContentCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbContentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/contents/{content_id}":{"put":{"tags":["Facebook"],"summary":"Update Content","description":"Update content and re-index to vector store.","operationId":"update_content_admin_fb_contents__content_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbContentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbContentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Facebook"],"summary":"Delete Content","description":"Delete content and remove from vector store.","operationId":"delete_content_admin_fb_contents__content_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/fallback":{"get":{"tags":["Facebook"],"summary":"Get Fallback","description":"Get fallback config for a profile.","operationId":"get_fallback_admin_fb_profiles__profile_id__fallback_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/FbFallbackConfigResponse"},{"type":"null"}],"title":"Response Get Fallback Admin Fb Profiles  Profile Id  Fallback Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Facebook"],"summary":"Update Fallback","description":"Create or update fallback config.","operationId":"update_fallback_admin_fb_profiles__profile_id__fallback_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbFallbackConfigUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbFallbackConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/load-response-template":{"post":{"tags":["Facebook"],"summary":"Load Response Template","description":"Copy system-admin FB response template (groups + contents + optional fallback) into this profile. Indexes new contents.","operationId":"load_response_template_admin_fb_profiles__profile_id__load_response_template_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/comments":{"get":{"tags":["Facebook"],"summary":"List Comments","description":"List comment audit log for a profile. Optional search and status filter. B2B: X-API-Key with scope fb_comment.","operationId":"list_comments_admin_fb_profiles__profile_id__comments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"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"},{"type":"null"}],"description":"Search in original_message and our_reply","title":"Search"},"description":"Search in original_message and our_reply"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbCommentListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/page-feed":{"get":{"tags":["Facebook"],"summary":"Get Page Feed","description":"Fetch Page posts from Graph API (pages_read_engagement). Returns list of posts \nposted by the Page so that the app UI can display Page content with Page identity.","operationId":"get_page_feed_admin_fb_profiles__profile_id__page_feed_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPageFeedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/posts/{post_id}":{"get":{"tags":["Facebook"],"summary":"Get Post Context","description":"Fetch a single Page post from Graph API for display (pages_read_engagement). \nIf comment_id is provided and that comment is posted with our_reply stored, return it as our_reply_from_graph (from DB).","operationId":"get_post_context_admin_fb_profiles__profile_id__posts__post_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"name":"post_id","in":"path","required":true,"schema":{"type":"string","title":"Post Id"}},{"name":"comment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"If provided and comment is posted, fetch our reply from Graph","title":"Comment Id"},"description":"If provided and comment is posted, fetch our reply from Graph"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPostContextResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/comments/retrieve":{"post":{"tags":["Facebook"],"summary":"Retrieve For Comment","description":"RAG retrieve for FB comment: run query (e.g. original_message) through tenant document store, \nreturn matches with chunk content for the admin to select and insert into the reply. \nAuth: JWT or X-API-Key with scope fb_comment.","operationId":"retrieve_for_comment_admin_fb_profiles__profile_id__comments_retrieve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbRetrieveForCommentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbRetrieveForCommentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/comments/retrieve-products":{"post":{"tags":["Facebook"],"summary":"Retrieve Products For Comment","description":"Product (shop) retrieve for FB comment: run query through tenant document store with doc_type=product, \nreturn matches for admin to select and insert into reply. Same retrieval logic as /shop chat. \nAuth: JWT or X-API-Key with scope fb_comment.","operationId":"retrieve_products_for_comment_admin_fb_profiles__profile_id__comments_retrieve_products_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbRetrieveForCommentProductRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbRetrieveForCommentProductResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/comments/format-reply/start":{"post":{"tags":["Facebook"],"summary":"Start Format Reply For Comment","description":"Formázott válasz generálás indítása háttérben (poszt + kérdés + RAG/Shop tartalom → LLM). \nAzonnal visszaad job_id-t; a frontend poll-olja a status endpointot.","operationId":"start_format_reply_for_comment_admin_fb_profiles__profile_id__comments_format_reply_start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbFormatReplyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/comments/format-reply/status":{"get":{"tags":["Facebook"],"summary":"Get Format Reply Status","description":"Poll: pending | done + formatted_reply | error. TTL után 404.","operationId":"get_format_reply_status_admin_fb_profiles__profile_id__comments_format_reply_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"name":"job_id","in":"query","required":true,"schema":{"type":"string","description":"start válaszából kapott job_id","title":"Job Id"},"description":"start válaszából kapott job_id"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbFormatReplyStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/comments/{comment_id}/send":{"post":{"tags":["Facebook"],"summary":"Send Comment","description":"Send a pending_approval or failed_manual comment to Facebook (optionally with edited our_reply). B2B: X-API-Key with scope fb_comment.","operationId":"send_comment_admin_fb_profiles__profile_id__comments__comment_id__send_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Profile Id"}},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Comment Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/FbCommentSendRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbCommentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/personas":{"get":{"tags":["Facebook"],"summary":"List Personas","description":"List all personas (system-wide). Tenant admin can only read; used for profile persona dropdown.","operationId":"list_personas_admin_fb_personas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPersonaListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/fb/oauth/start":{"get":{"tags":["Facebook"],"summary":"Oauth Start","description":"Start OAuth - returns redirect URL to Facebook.","operationId":"oauth_start_admin_fb_oauth_start_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/fb/oauth/pages":{"get":{"tags":["Facebook"],"summary":"Oauth Pages","description":"Oldal lista a valasztashoz (multi-page OAuth).","operationId":"oauth_pages_admin_fb_oauth_pages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"OAuth select token","title":"Token"},"description":"OAuth select token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/oauth/complete":{"post":{"tags":["Facebook"],"summary":"Oauth Complete","description":"OAuth befejezes a kivalasztott oldallal (multi-page).","operationId":"oauth_complete_admin_fb_oauth_complete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbOAuthCompleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/fb/diagnostic":{"get":{"tags":["Facebook"],"summary":"Fb Diagnostic","description":"Facebook webhook teljes diagnosztika API-n keresztül. \nEllenorzi: callback_url egyezes, app feed, page feed, webhook elerhetoseg.","operationId":"fb_diagnostic_admin_fb_diagnostic_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/fb/subscribe-app-feed":{"post":{"tags":["Facebook"],"summary":"Subscribe App Feed","description":"App szintu feed feliratkoztatas API-bol. \nPOST /{app-id}/subscriptions - object=page, fields=feed, callback_url, verify_token. \nA Meta ezutan GET-tel ellenorzi a webhookot - mar kezeljuk.","operationId":"subscribe_app_feed_admin_fb_subscribe_app_feed_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/fb/profiles/{profile_id}/subscription-status":{"get":{"tags":["Facebook"],"summary":"Get Subscription Status","description":"Meta feliratkozás állapot ellenőrzése – Page és App szint. \nA feed csak akkor működik, ha MINDKÉT szinten fel van iratkozva.","operationId":"get_subscription_status_admin_fb_profiles__profile_id__subscription_status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","title":"Profile Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/profiles/{profile_id}/resubscribe":{"post":{"tags":["Facebook"],"summary":"Resubscribe Webhook","description":"Page webhook ujrafeliratkoztatas (subscribed_apps) - ha a webhook nem erkezik.","operationId":"resubscribe_webhook_admin_fb_profiles__profile_id__resubscribe_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","title":"Profile Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/fb/worker/status":{"get":{"tags":["Facebook"],"summary":"Get Worker Status","description":"Worker status (stub - always returns not running until worker is implemented).","operationId":"get_worker_status_admin_fb_worker_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbWorkerStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/script-patterns/groups":{"get":{"tags":["Script Patterns"],"summary":"List Groups","description":"List script pattern groups for the tenant.","operationId":"list_groups_admin_script_patterns_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GroupResponse"},"type":"array","title":"Response List Groups Admin Script Patterns Groups Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Script Patterns"],"summary":"Create Group","description":"Create a new script pattern group.","operationId":"create_group_admin_script_patterns_groups_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/admin/script-patterns/groups/{group_id}":{"get":{"tags":["Script Patterns"],"summary":"Get Group","description":"Get group by ID with pattern_state.","operationId":"get_group_admin_script_patterns_groups__group_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Script Patterns"],"summary":"Update Group","description":"Update group.","operationId":"update_group_admin_script_patterns_groups__group_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Script Patterns"],"summary":"Delete Group","description":"Delete group and its samples.","operationId":"delete_group_admin_script_patterns_groups__group_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/script-patterns/groups/{group_id}/samples":{"get":{"tags":["Script Patterns"],"summary":"List Samples","description":"List samples for a group.","operationId":"list_samples_admin_script_patterns_groups__group_id__samples_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SampleResponse"},"title":"Response List Samples Admin Script Patterns Groups  Group Id  Samples Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Script Patterns"],"summary":"Create Sample","description":"Add a new sample to the group.","operationId":"create_sample_admin_script_patterns_groups__group_id__samples_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/script-patterns/samples/{sample_id}/analyze":{"post":{"tags":["Script Patterns"],"summary":"Analyze Sample","description":"Run LLM extraction on the sample and store extraction_result.","operationId":"analyze_sample_admin_script_patterns_samples__sample_id__analyze_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sample Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/script-patterns/samples/{sample_id}/approve":{"post":{"tags":["Script Patterns"],"summary":"Approve Sample","description":"Approve sample and merge extraction into group pattern_state.","operationId":"approve_sample_admin_script_patterns_samples__sample_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sample Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/script-patterns/samples/{sample_id}/reject":{"post":{"tags":["Script Patterns"],"summary":"Reject Sample","description":"Reject sample.","operationId":"reject_sample_admin_script_patterns_samples__sample_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sample_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Sample Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/fb/oauth/callback":{"get":{"tags":["Facebook OAuth"],"summary":"Oauth Callback","description":"OAuth callback - Facebook redirects here. Exchange code, create profile, redirect to frontend.","operationId":"oauth_callback_fb_oauth_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},{"name":"error_reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Reason"}},{"name":"probe","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"probe=1 → plain text, teszteléshez","title":"Probe"},"description":"probe=1 → plain text, teszteléshez"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fb/webhook":{"get":{"tags":["Facebook Webhook"],"summary":"Webhook Verify","description":"Meta webhook verification - return hub.challenge if verify_token matches.","operationId":"webhook_verify_api_fb_webhook_get","parameters":[{"name":"hub.mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hub.Mode"}},{"name":"hub.challenge","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hub.Challenge"}},{"name":"hub.verify_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hub.Verify Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Facebook Webhook"],"summary":"Webhook Event","description":"Receive webhook events from Meta. Verify signature, parse, enqueue.","operationId":"webhook_event_api_fb_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system-admin/tenant-admins":{"get":{"tags":["System Admin"],"summary":"Get All Tenant Admins","description":"Összes tenant admin lekérése (csak SYSTEM_ADMIN számára) \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_all_tenant_admins_system_admin_tenant_admins_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/tenants/{tenant_id}/token-balance":{"get":{"tags":["System Admin"],"summary":"Get Tenant Token Balance","description":"Tenant egyenleg (Ft) + utolsó tranzakciók. \nRBAC: SYSTEM_ADMIN","operationId":"get_tenant_token_balance_system_admin_tenants__tenant_id__token_balance_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/tenants/{tenant_id}/llm-token":{"put":{"tags":["System Admin"],"summary":"Put Tenant Llm Token","description":"Tenant egyenleg feltöltés (Ft). \nRBAC: SYSTEM_ADMIN","operationId":"put_tenant_llm_token_system_admin_tenants__tenant_id__llm_token_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantTokenTopupRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/balance-topup-orders":{"get":{"tags":["System Admin"],"summary":"List Balance Topup Orders","description":"Összes egyenleg megrendelés listázása, kereshető és szűrhető. SYSTEM_ADMIN.","operationId":"list_balance_topup_orders_system_admin_balance_topup_orders_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"payment_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Status"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/balance-topup-orders/{order_id}":{"patch":{"tags":["System Admin"],"summary":"Update Balance Topup Order","description":"Fizetési státusz és/vagy számlaszám beállítása. SYSTEM_ADMIN.","operationId":"update_balance_topup_order_system_admin_balance_topup_orders__order_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceTopupOrderPatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/balance-topup-orders/{order_id}/invoice":{"post":{"tags":["System Admin"],"summary":"Upload Balance Topup Order Invoice","description":"Számla PDF feltöltése a megrendeléshez. SYSTEM_ADMIN.","operationId":"upload_balance_topup_order_invoice_system_admin_balance_topup_orders__order_id__invoice_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_balance_topup_order_invoice_system_admin_balance_topup_orders__order_id__invoice_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["System Admin"],"summary":"Download Balance Topup Order Invoice Sysadmin","description":"Számla PDF letöltés (system admin). SYSTEM_ADMIN.","operationId":"download_balance_topup_order_invoice_sysadmin_system_admin_balance_topup_orders__order_id__invoice_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/balance-topup-orders/{order_id}/reverse":{"post":{"tags":["System Admin"],"summary":"Reverse Balance Topup Order","description":"Nem fizetett megrendelés visszavonása: egyenlegből levonás, státusz reversed. Mínusz egyenleg megengedett. SYSTEM_ADMIN.","operationId":"reverse_balance_topup_order_system_admin_balance_topup_orders__order_id__reverse_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/system-config":{"get":{"tags":["System Admin"],"summary":"Get System Config","description":"System config lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_system_config_system_admin_system_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/system-config/validate":{"post":{"tags":["System Admin"],"summary":"Validate System Config","description":"System config validálás \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"validate_system_config_system_admin_system_config_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemConfigValidateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/system-config/save":{"post":{"tags":["System Admin"],"summary":"Save System Config","description":"System config mentés + backup + audit \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"save_system_config_system_admin_system_config_save_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemConfigRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/system-config/backups":{"get":{"tags":["System Admin"],"summary":"Get System Config Backups","description":"System config backups listázása \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_system_config_backups_system_admin_system_config_backups_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"backup_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"'global' | 'tenant'","title":"Backup Type"},"description":"'global' | 'tenant'"},{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/system-config/restore":{"post":{"tags":["System Admin"],"summary":"Restore System Config","description":"System config restore backupból + új backup + audit \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"restore_system_config_system_admin_system_config_restore_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemConfigRestoreRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/system-config/effective":{"get":{"tags":["System Admin"],"summary":"Get Effective System Config","description":"Effective config (global + tenant override merge) \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_effective_system_config_system_admin_system_config_effective_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/prompt-templates":{"get":{"tags":["System Admin"],"summary":"List Prompt Templates","description":"Prompt template-ek listázása \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"list_prompt_templates_system_admin_prompt_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["System Admin"],"summary":"Create Prompt Template","description":"Prompt template létrehozása \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"create_prompt_template_system_admin_prompt_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/prompt-templates/{template_id}":{"get":{"tags":["System Admin"],"summary":"Get Prompt Template","description":"Prompt template lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_prompt_template_system_admin_prompt_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["System Admin"],"summary":"Delete Prompt Template","description":"Prompt template törlése (csak inaktív template-eket lehet törölni) \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"delete_prompt_template_system_admin_prompt_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"version","in":"query","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"tenant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/prompt-templates/{template_id}/activate":{"post":{"tags":["System Admin"],"summary":"Activate Prompt Template","description":"Prompt template aktiválása \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"activate_prompt_template_system_admin_prompt_templates__template_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptActivateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/prompt-templates/{template_id}/usage":{"get":{"tags":["System Admin"],"summary":"Get Template Usage","description":"Template használat ellenőrzése - hol van aktiválva \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"get_template_usage_system_admin_prompt_templates__template_id__usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/prompt-templates/{template_id}/deactivate":{"post":{"tags":["System Admin"],"summary":"Deactivate Prompt Template","description":"Prompt template deaktiválása \n\nSECURITY: JWT token required (Authorization: Bearer <token>)","operationId":"deactivate_prompt_template_system_admin_prompt_templates__template_id__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptDeactivateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/public-settings":{"get":{"tags":["System Admin"],"summary":"Get Public Settings","description":"Global public channel settings lekérése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nRBAC: csak System Admin","operationId":"get_public_settings_system_admin_public_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["System Admin"],"summary":"Update Public Settings","description":"Global public channel settings frissítése \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nRBAC: csak System Admin","operationId":"update_public_settings_system_admin_public_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/landing-content":{"get":{"tags":["System Admin"],"summary":"Get Landing Content","description":"Nyitóoldal tartalom lekérése (tudás, chat alatti szöveg, lapalji oldalak). \nSECURITY: JWT + SYSTEM_ADMIN.","operationId":"get_landing_content_system_admin_landing_content_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["System Admin"],"summary":"Update Landing Content","description":"Nyitóoldal tartalom frissítése (HTML mezők a lapalji oldalakhoz). \nSECURITY: JWT + SYSTEM_ADMIN.","operationId":"update_landing_content_system_admin_landing_content_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LandingContentUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/tenants/{tenant_id}/public-stats":{"get":{"tags":["System Admin"],"summary":"Get Tenant Public Stats","description":"Tenant szintű public widget statisztikák \n\nSECURITY: JWT token required (Authorization: Bearer <token>) \nRBAC: csak System Admin","operationId":"get_tenant_public_stats_system_admin_tenants__tenant_id__public_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/rag-reindex":{"post":{"tags":["System Admin"],"summary":"Rag Reindex All","description":"A tenant összes dokumentumának RAG újraindexelése: \n1) RAG chunkok törlése doc_id alapján (ahol van), 2) COMPLETED jobok PENDING-re állítása. \nA worker ezután újra feldolgozza a PENDING jobokat. \nCsak SYSTEM_ADMIN. Opcionális body: { \"tenant_id\": \"...\" } – ha nincs megadva, a bejelentkezett user tenant_id-ja. \nCOMPLETED jobok doc_id nélkül is PENDING-re kerülnek (pl. régi formátum), így a worker újra feldolgozza őket.","operationId":"rag_reindex_all_system_admin_rag_reindex_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RagReindexRequest"},{"type":"null"}],"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/fb-personas":{"get":{"tags":["System Admin"],"summary":"System Admin List Fb Personas","description":"List all FB personas (system-admin).","operationId":"system_admin_list_fb_personas_system_admin_fb_personas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPersonaListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["System Admin"],"summary":"System Admin Create Fb Persona","description":"Create FB persona (system-admin only).","operationId":"system_admin_create_fb_persona_system_admin_fb_personas_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPersonaCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPersonaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/fb-personas/{persona_id}":{"put":{"tags":["System Admin"],"summary":"System Admin Update Fb Persona","description":"Update FB persona (system-admin only).","operationId":"system_admin_update_fb_persona_system_admin_fb_personas__persona_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"persona_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Persona Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPersonaUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbPersonaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["System Admin"],"summary":"System Admin Delete Fb Persona","description":"Delete FB persona (system-admin only).","operationId":"system_admin_delete_fb_persona_system_admin_fb_personas__persona_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"persona_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Persona Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/fb-response-template/groups":{"get":{"tags":["System Admin"],"summary":"System Admin List Fb Response Template Groups","description":"List all template groups (categories).","operationId":"system_admin_list_fb_response_template_groups_system_admin_fb_response_template_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateGroupListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["System Admin"],"summary":"System Admin Create Fb Response Template Group","description":"Create template group.","operationId":"system_admin_create_fb_response_template_group_system_admin_fb_response_template_groups_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateGroupCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateGroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/fb-response-template/groups/{group_id}":{"put":{"tags":["System Admin"],"summary":"System Admin Update Fb Response Template Group","description":"Update template group.","operationId":"system_admin_update_fb_response_template_group_system_admin_fb_response_template_groups__group_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateGroupUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateGroupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["System Admin"],"summary":"System Admin Delete Fb Response Template Group","description":"Delete template group and its contents.","operationId":"system_admin_delete_fb_response_template_group_system_admin_fb_response_template_groups__group_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/fb-response-template/groups/{group_id}/contents":{"get":{"tags":["System Admin"],"summary":"System Admin List Fb Response Template Contents","description":"List contents of a template group.","operationId":"system_admin_list_fb_response_template_contents_system_admin_fb_response_template_groups__group_id__contents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateContentListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["System Admin"],"summary":"System Admin Create Fb Response Template Content","description":"Create template content (response text) in a group.","operationId":"system_admin_create_fb_response_template_content_system_admin_fb_response_template_groups__group_id__contents_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateContentCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateContentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/fb-response-template/contents/{content_id}":{"put":{"tags":["System Admin"],"summary":"System Admin Update Fb Response Template Content","description":"Update template content.","operationId":"system_admin_update_fb_response_template_content_system_admin_fb_response_template_contents__content_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateContentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateContentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["System Admin"],"summary":"System Admin Delete Fb Response Template Content","description":"Delete template content.","operationId":"system_admin_delete_fb_response_template_content_system_admin_fb_response_template_contents__content_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/fb-response-template/fallback":{"get":{"tags":["System Admin"],"summary":"System Admin Get Fb Response Template Fallback","description":"Get template fallback (single row).","operationId":"system_admin_get_fb_response_template_fallback_system_admin_fb_response_template_fallback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/FbResponseTemplateFallbackResponse"},{"type":"null"}],"title":"Response System Admin Get Fb Response Template Fallback System Admin Fb Response Template Fallback Get"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["System Admin"],"summary":"System Admin Update Fb Response Template Fallback","description":"Create or update template fallback (single row).","operationId":"system_admin_update_fb_response_template_fallback_system_admin_fb_response_template_fallback_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateFallbackUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FbResponseTemplateFallbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/system-admin/workflow-templates":{"get":{"tags":["System Admin"],"summary":"List Workflow Templates","description":"Workflow sablonok listája (SYSTEM_ADMIN, TENANT_ADMIN, EDITOR).","operationId":"list_workflow_templates_system_admin_workflow_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["System Admin"],"summary":"Create Workflow Template","description":"Új folyamatsablon (SYSTEM_ADMIN). A definition_json tartalmazza a teljes folyamatot.","operationId":"create_workflow_template_system_admin_workflow_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTemplateCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system-admin/workflow-templates/{template_id}":{"get":{"tags":["System Admin"],"summary":"Get Workflow Template","description":"Egy workflow sablon lekérése (SYSTEM_ADMIN, TENANT_ADMIN, EDITOR).","operationId":"get_workflow_template_system_admin_workflow_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["System Admin"],"summary":"Update Workflow Template","description":"Folyamatsablon módosítása.","operationId":"update_workflow_template_system_admin_workflow_templates__template_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTemplateUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["System Admin"],"summary":"Delete Workflow Template","description":"Workflow sablon törlése.","operationId":"delete_workflow_template_system_admin_workflow_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/landing/chat/stream":{"post":{"tags":["Landing"],"summary":"Landing Chat Stream","description":"Nyitóoldal chat: streamelt válasz a landing tudás alapján. Nincs JWT. \nLLM/index: attila; költség / usage / ledger: support tenant; Audit trace: trace_blobs (support).","operationId":"landing_chat_stream_landing_chat_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LandingChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/landing/content":{"get":{"tags":["Landing"],"summary":"Get Landing Content","description":"Nyitóoldal tartalom: chat alatti szöveg + lapalji oldalak (Impresszum, ÁSZF, Adatvédelmi, Süti, Árlista). \nPublikus, nincs JWT.","operationId":"get_landing_content_landing_content_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/landing/pricing":{"get":{"tags":["Landing"],"summary":"Get Landing Pricing","description":"Árlista: összes (globális) végpont neve + éles/fallback input és output ár (Ft / 1M token, HUF). \nPublikus. Az adat az adatbázisból (global_config) jön: llm_endpoint_prices, llm_endpoint_fallback1_prices.","operationId":"get_landing_pricing_landing_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/debug/logs":{"get":{"tags":["Debug"],"summary":"Get Debug Logs","description":"Debug logok lekérése szűréssel (típus, dátum/idő). \nSECURITY: JWT token required (Authorization: Bearer <token>) \nRBAC: tenant_admin vagy system_admin.","operationId":"get_debug_logs_debug_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ERROR,WARNING,INFO,DEBUG","title":"Level"},"description":"ERROR,WARNING,INFO,DEBUG"},{"name":"from_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO datetime","title":"From Ts"},"description":"ISO datetime"},{"name":"to_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO datetime","title":"To Ts"},"description":"ISO datetime"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/debug/logs/clear":{"post":{"tags":["Debug"],"summary":"Clear Debug Logs","description":"Összes debug log törlése. \nSECURITY: JWT token required (Authorization: Bearer <token>) \nRBAC: csak system_admin.","operationId":"clear_debug_logs_debug_logs_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"ActiveProposalSummaryPublic":{"properties":{"id":{"type":"string","title":"Id"},"proposal_row_status":{"type":"string","title":"Proposal Row Status"},"payload_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payload Status"},"scope_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope Summary"},"line_items_count":{"type":"integer","title":"Line Items Count","default":0}},"type":"object","required":["id","proposal_row_status"],"title":"ActiveProposalSummaryPublic","description":"REQ-083: nyilvános GET igény státusz — rövid ACTIVE proposal összegzés (OpenAPI)."},"AdminCreateReservationRequest":{"properties":{"booking_type_id":{"type":"string","title":"Booking Type Id"},"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"customer_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Email"},"customer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Name"},"customer_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Phone"},"channel":{"type":"string","enum":["phone","in_person","web","chat","panel","voice"],"title":"Channel","default":"phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"skip_policy_check":{"type":"boolean","title":"Skip Policy Check","default":false},"party_size":{"type":"integer","title":"Party Size","default":1},"intake_responses":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Intake Responses"}},"type":"object","required":["booking_type_id"],"title":"AdminCreateReservationRequest"},"AdminReservationDetailResponse":{"properties":{"reservation":{"$ref":"#/components/schemas/ReservationResponse"},"customer":{"$ref":"#/components/schemas/CustomerResponse"},"booking_type_name":{"type":"string","title":"Booking Type Name"},"allocations":{"items":{"$ref":"#/components/schemas/ReservationAllocationDetail"},"type":"array","title":"Allocations"},"intake_responses":{"items":{"$ref":"#/components/schemas/IntakeResponseItem"},"type":"array","title":"Intake Responses"}},"type":"object","required":["reservation","customer","booking_type_name","allocations","intake_responses"],"title":"AdminReservationDetailResponse"},"AdminUpdateReservationRequest":{"properties":{"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"unit_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Unit Ids"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Party Size"}},"type":"object","title":"AdminUpdateReservationRequest","description":"Admin / tool: foglalás módosítása (idő, egység, megjegyzés)."},"ApiChatRequest":{"properties":{"text":{"type":"string","title":"Text"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"}},"type":"object","required":["text"],"title":"ApiChatRequest","description":"API v1 Chat request model"},"ApiChatResponse":{"properties":{"trace_id":{"type":"string","title":"Trace Id"},"status_code":{"type":"string","title":"Status Code"},"text":{"type":"string","title":"Text"},"sources":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Sources"},"products":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Products"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"}},"type":"object","required":["trace_id","status_code","text"],"title":"ApiChatResponse","description":"API v1 Chat response model"},"ApiKeyCreateRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"rate_limit_policy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rate Limit Policy Id"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["tenant_id","name"],"title":"ApiKeyCreateRequest","description":"API Key create request model"},"ApiKeyUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"rate_limit_policy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rate Limit Policy Id"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","title":"ApiKeyUpdateRequest","description":"API Key update request model"},"ApplyProposalLinesToWorkflowBody":{"properties":{"workflow_template_id":{"type":"string","maxLength":80,"minLength":8,"title":"Workflow Template Id"}},"type":"object","required":["workflow_template_id"],"title":"ApplyProposalLinesToWorkflowBody"},"ApplyTemplateRequest":{"properties":{"template_slug":{"type":"string","maxLength":80,"minLength":1,"title":"Template Slug"}},"type":"object","required":["template_slug"],"title":"ApplyTemplateRequest","description":"POST /admin/templates/apply – iparági sablon slug."},"ApplyTemplateResponse":{"properties":{"applied":{"type":"boolean","title":"Applied"},"booking_type_ids":{"items":{"type":"string"},"type":"array","title":"Booking Type Ids"},"template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Id"}},"type":"object","required":["applied","booking_type_ids"],"title":"ApplyTemplateResponse"},"ArchiveCreateRequest":{"properties":{"item_type":{"type":"string","title":"Item Type"},"content":{"additionalProperties":true,"type":"object","title":"Content"},"explicit_command":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Explicit Command","default":false}},"type":"object","required":["item_type","content"],"title":"ArchiveCreateRequest","description":"Archive create request model"},"AttachmentCreateRequest":{"properties":{"attachment_type":{"type":"string","title":"Attachment Type"},"ref_id":{"type":"string","title":"Ref Id"},"meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"}},"type":"object","required":["attachment_type","ref_id"],"title":"AttachmentCreateRequest"},"AutoDetectSelectorsRequest":{"properties":{"category_url":{"type":"string","title":"Category Url"},"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform"},"selectors":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Selectors"}},"type":"object","required":["category_url"],"title":"AutoDetectSelectorsRequest","description":"Auto selector detection request. \n \nHa a felhasználó a formban kiválasztja a platformot/selectors-t, de még nem mentett, \nezeket a request-ben kell elküldeni - különben a backend a DB config-ot használja, \nami lehet üres vagy elavult. "},"AvailabilityRuleCreateRequest":{"properties":{"unit_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Id"},"booking_type_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Booking Type Id"},"weekday":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weekday"},"start_time":{"type":"string","format":"time","title":"Start Time"},"end_time":{"type":"string","format":"time","title":"End Time"},"rule_type":{"type":"string","enum":["available","closed"],"title":"Rule Type","default":"available"},"priority":{"type":"integer","title":"Priority","default":0},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To"}},"type":"object","required":["start_time","end_time"],"title":"AvailabilityRuleCreateRequest"},"AvailabilityRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"target_type":{"type":"string","title":"Target Type"},"unit_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Id"},"booking_type_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Booking Type Id"},"weekday":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weekday"},"start_time":{"type":"string","format":"time","title":"Start Time"},"end_time":{"type":"string","format":"time","title":"End Time"},"rule_type":{"type":"string","title":"Rule Type"},"priority":{"type":"integer","title":"Priority"},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","tenant_id","target_type","start_time","end_time","rule_type","priority","active","created_at","updated_at"],"title":"AvailabilityRuleResponse"},"AvailabilityRuleUpdateRequest":{"properties":{"weekday":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weekday"},"start_time":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"End Time"},"rule_type":{"anyOf":[{"type":"string","enum":["available","closed"]},{"type":"null"}],"title":"Rule Type"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To"}},"type":"object","title":"AvailabilityRuleUpdateRequest"},"BalanceTopupOrderPatchRequest":{"properties":{"payment_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Status"},"invoice_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoice Number"}},"type":"object","title":"BalanceTopupOrderPatchRequest"},"BalanceTopupOrderRequest":{"properties":{"amount_ft":{"type":"integer","title":"Amount Ft"},"billing_name":{"type":"string","title":"Billing Name"},"billing_company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Company"},"billing_tax_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Tax Number"},"billing_address":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Billing Address"}},"type":"object","required":["amount_ft","billing_name"],"title":"BalanceTopupOrderRequest","description":"Egyenleg feltöltés megrendelés body."},"BenchmarkStartRequest":{"properties":{"test_count":{"type":"integer","maximum":100.0,"minimum":5.0,"title":"Test Count","description":"Grid kombinációk száma (hányféleképp próbálja a min_score × top_k beállításokat). Értékek: 10, 20, 30, 50, 100","default":10},"benchmark_type":{"type":"string","title":"Benchmark Type","description":"'api' | 'web' | 'full'","default":"full"},"golden_set_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Golden Set Id","description":"Golden set ID (kötelező)"},"grid_search":{"type":"boolean","title":"Grid Search","description":"Grid search engedélyezése (default: smart search)","default":false},"use_smart_search":{"type":"boolean","title":"Use Smart Search","description":"Smart search engedélyezése","default":true},"smart_search_max_iterations":{"type":"integer","maximum":100.0,"minimum":5.0,"title":"Smart Search Max Iterations","description":"Max próbálkozások száma","default":30}},"type":"object","title":"BenchmarkStartRequest","description":"Benchmark indítási kérés"},"BenchmarkStartResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["job_id","status"],"title":"BenchmarkStartResponse","description":"Benchmark indítási válasz"},"BenchmarkStatusResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"status":{"type":"string","title":"Status"},"progress":{"type":"integer","title":"Progress"},"current_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Step"},"eta_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Eta Seconds"},"result_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Result Id"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["job_id","tenant_id","status","progress","current_step","eta_seconds","result_id","error_message","started_at","completed_at"],"title":"BenchmarkStatusResponse","description":"Benchmark státusz válasz"},"Body_add_client_form_document_admin_tasks_tasks__task_id__client_forms__form_id__documents_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_add_client_form_document_admin_tasks_tasks__task_id__client_forms__form_id__documents_post"},"Body_create_job_upload_api_v1_tools_stt_jobs_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"language":{"type":"string","title":"Language","default":"hu"}},"type":"object","required":["file"],"title":"Body_create_job_upload_api_v1_tools_stt_jobs_upload_post"},"Body_create_workflow_rule_draft_from_document_admin_tasks_workflow_rules_from_document_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_create_workflow_rule_draft_from_document_admin_tasks_workflow_rules_from_document_post"},"Body_extract_info_file_admin_info_extract_file__post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_extract_info_file_admin_info_extract_file__post"},"Body_extract_info_file_admin_info_extract_file_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_extract_info_file_admin_info_extract_file_post"},"Body_extract_info_file_api_admin_info_extract_file__post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_extract_info_file_api_admin_info_extract_file__post"},"Body_extract_info_file_api_admin_info_extract_file_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_extract_info_file_api_admin_info_extract_file_post"},"Body_extract_workflow_process_from_document_admin_tasks_workflow_process_from_document_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction","description":"Opcionális instrukció az LLMnek (pl. fázis sorrend)"}},"type":"object","required":["file"],"title":"Body_extract_workflow_process_from_document_admin_tasks_workflow_process_from_document_post"},"Body_import_catalog_contract_api_v1_quotes_catalog_import_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"dry_run":{"type":"string","title":"Dry Run","default":"false"},"source_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"},"catalog_scope_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catalog Scope Id"}},"type":"object","required":["file"],"title":"Body_import_catalog_contract_api_v1_quotes_catalog_import_post"},"Body_ingest_document_ingest_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"scope":{"type":"string","title":"Scope","default":"internal"},"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"}},"type":"object","required":["file"],"title":"Body_ingest_document_ingest_post"},"Body_load_feed_start_file_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post":{"properties":{"file":{"type":"string","format":"binary","title":"File","description":"XML vagy JSON feed fájl"},"format":{"type":"string","title":"Format","description":"Formátum: shopify, google_merchant, woocommerce_store, simple"}},"type":"object","required":["file","format"],"title":"Body_load_feed_start_file_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post"},"Body_load_feed_start_file_api_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post":{"properties":{"file":{"type":"string","format":"binary","title":"File","description":"XML vagy JSON feed fájl"},"format":{"type":"string","title":"Format","description":"Formátum: shopify, google_merchant, woocommerce_store, simple"}},"type":"object","required":["file","format"],"title":"Body_load_feed_start_file_api_admin_webshop_config__config_tenant_id__products_load_feed_start_file_post"},"Body_start_catalog_contract_import_api_v1_quotes_catalog_import_start_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"dry_run":{"type":"string","title":"Dry Run","default":"false"},"source_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"},"catalog_scope_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catalog Scope Id"}},"type":"object","required":["file"],"title":"Body_start_catalog_contract_import_api_v1_quotes_catalog_import_start_post"},"Body_start_workflow_process_from_document_admin_tasks_workflow_process_from_document_start_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction","description":"Opcionális instrukció az LLMnek (pl. fázis sorrend)"}},"type":"object","required":["file"],"title":"Body_start_workflow_process_from_document_admin_tasks_workflow_process_from_document_start_post"},"Body_start_workflow_rule_from_document_admin_tasks_workflow_rules_from_document_start_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_start_workflow_rule_from_document_admin_tasks_workflow_rules_from_document_start_post"},"Body_submit_client_form_public_api_client_form__token__post":{"properties":{"answers":{"type":"string","title":"Answers","description":"JSON: {\"answers\": [{\"question_id\": \"...\", \"answer\": \"...\"}]}"},"files":{"anyOf":[{"items":{"type":"string","format":"binary"},"type":"array"},{"type":"null"}],"title":"Files"}},"type":"object","required":["answers"],"title":"Body_submit_client_form_public_api_client_form__token__post"},"Body_transcribe_audio_chat_transcribe_post":{"properties":{"audio":{"type":"string","format":"binary","title":"Audio"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"}},"type":"object","required":["audio"],"title":"Body_transcribe_audio_chat_transcribe_post"},"Body_upload_attachment_api_v1_quotes_requests__request_id__attachments_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_attachment_api_v1_quotes_requests__request_id__attachments_post"},"Body_upload_balance_topup_order_invoice_system_admin_balance_topup_orders__order_id__invoice_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_balance_topup_order_invoice_system_admin_balance_topup_orders__order_id__invoice_post"},"Body_upload_internal_file_admin_tasks_internal_files_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_internal_file_admin_tasks_internal_files_post"},"Body_upload_project_file_admin_tasks_projects__project_id__files_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_project_file_admin_tasks_projects__project_id__files_post"},"BookingDisplayTokenCreateRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids"},"show_phone":{"type":"boolean","title":"Show Phone","default":false},"show_email":{"type":"boolean","title":"Show Email","default":false},"show_notes":{"type":"boolean","title":"Show Notes","default":false},"customer_name_format":{"type":"string","maxLength":64,"title":"Customer Name Format","default":"first_last_initial"},"date_range":{"type":"string","maxLength":20,"title":"Date Range","default":"today"},"auto_refresh_seconds":{"type":"integer","maximum":3600.0,"minimum":10.0,"title":"Auto Refresh Seconds","default":60},"view_type":{"type":"string","maxLength":20,"title":"View Type","default":"lane"}},"type":"object","required":["name"],"title":"BookingDisplayTokenCreateRequest"},"BookingDisplayTokenCreatedResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids"},"show_phone":{"type":"boolean","title":"Show Phone","default":false},"show_email":{"type":"boolean","title":"Show Email","default":false},"show_notes":{"type":"boolean","title":"Show Notes","default":false},"customer_name_format":{"type":"string","title":"Customer Name Format","default":"first_last_initial"},"date_range":{"type":"string","title":"Date Range","default":"today"},"auto_refresh_seconds":{"type":"integer","title":"Auto Refresh Seconds","default":60},"view_type":{"type":"string","title":"View Type","default":"lane"},"is_active":{"type":"boolean","title":"Is Active","default":true},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"raw_token":{"type":"string","title":"Raw Token"}},"type":"object","required":["id","name","unit_ids","created_at","raw_token"],"title":"BookingDisplayTokenCreatedResponse"},"BookingDisplayTokenPublic":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids"},"show_phone":{"type":"boolean","title":"Show Phone","default":false},"show_email":{"type":"boolean","title":"Show Email","default":false},"show_notes":{"type":"boolean","title":"Show Notes","default":false},"customer_name_format":{"type":"string","title":"Customer Name Format","default":"first_last_initial"},"date_range":{"type":"string","title":"Date Range","default":"today"},"auto_refresh_seconds":{"type":"integer","title":"Auto Refresh Seconds","default":60},"view_type":{"type":"string","title":"View Type","default":"lane"},"is_active":{"type":"boolean","title":"Is Active","default":true},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","unit_ids","created_at"],"title":"BookingDisplayTokenPublic"},"BookingDisplayTokenUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"unit_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Unit Ids"},"show_phone":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Phone"},"show_email":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Email"},"show_notes":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Notes"},"customer_name_format":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Customer Name Format"},"date_range":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Date Range"},"auto_refresh_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":10.0},{"type":"null"}],"title":"Auto Refresh Seconds"},"view_type":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"View Type"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"BookingDisplayTokenUpdateRequest"},"BookingPanelTokenCreateRequest":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"booking_type_ids":{"items":{"type":"string"},"type":"array","title":"Booking Type Ids"},"theme_color":{"anyOf":[{"type":"string","maxLength":7},{"type":"null"}],"title":"Theme Color"},"locale":{"type":"string","maxLength":8,"title":"Locale","default":"hu"},"max_advance_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Advance Days"},"show_services_on_open":{"type":"boolean","title":"Show Services On Open","default":true}},"type":"object","required":["name"],"title":"BookingPanelTokenCreateRequest"},"BookingPanelTokenCreatedResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"booking_type_ids":{"items":{"type":"string"},"type":"array","title":"Booking Type Ids"},"is_active":{"type":"boolean","title":"Is Active"},"theme_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme Color"},"locale":{"type":"string","title":"Locale"},"max_advance_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Advance Days"},"show_services_on_open":{"type":"boolean","title":"Show Services On Open","default":true},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"raw_token":{"type":"string","title":"Raw Token"}},"type":"object","required":["id","name","booking_type_ids","is_active","locale","created_at","raw_token"],"title":"BookingPanelTokenCreatedResponse"},"BookingPanelTokenPublic":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"booking_type_ids":{"items":{"type":"string"},"type":"array","title":"Booking Type Ids"},"is_active":{"type":"boolean","title":"Is Active"},"theme_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme Color"},"locale":{"type":"string","title":"Locale"},"max_advance_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Advance Days"},"show_services_on_open":{"type":"boolean","title":"Show Services On Open","default":true},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","booking_type_ids","is_active","locale","created_at"],"title":"BookingPanelTokenPublic"},"BookingPanelTokenUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"booking_type_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Booking Type Ids"},"theme_color":{"anyOf":[{"type":"string","maxLength":7},{"type":"null"}],"title":"Theme Color"},"locale":{"anyOf":[{"type":"string","maxLength":8},{"type":"null"}],"title":"Locale"},"max_advance_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Advance Days"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"show_services_on_open":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Services On Open"}},"type":"object","title":"BookingPanelTokenUpdateRequest"},"BookingStatsByChannel":{"properties":{"channel":{"type":"string","title":"Channel"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["channel","count"],"title":"BookingStatsByChannel"},"BookingStatsByType":{"properties":{"booking_type_id":{"type":"string","title":"Booking Type Id"},"booking_type_name":{"type":"string","title":"Booking Type Name"},"total":{"type":"integer","title":"Total"},"confirmed":{"type":"integer","title":"Confirmed"},"cancelled":{"type":"integer","title":"Cancelled"}},"type":"object","required":["booking_type_id","booking_type_name","total","confirmed","cancelled"],"title":"BookingStatsByType"},"BookingStatsSummary":{"properties":{"today_count":{"type":"integer","title":"Today Count"},"tomorrow_count":{"type":"integer","title":"Tomorrow Count"},"week_count":{"type":"integer","title":"Week Count"},"pending_count":{"type":"integer","title":"Pending Count"},"cancel_rate_30d":{"type":"number","title":"Cancel Rate 30D"},"no_show_rate_30d":{"type":"number","title":"No Show Rate 30D"}},"type":"object","required":["today_count","tomorrow_count","week_count","pending_count","cancel_rate_30d","no_show_rate_30d"],"title":"BookingStatsSummary"},"BookingTenantLlmResponse":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"llm_assistant_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Assistant Instructions"}},"type":"object","required":["tenant_id"],"title":"BookingTenantLlmResponse"},"BookingTenantLlmUpdateRequest":{"properties":{"llm_assistant_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Assistant Instructions"}},"type":"object","title":"BookingTenantLlmUpdateRequest"},"BookingTypeCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"time_model":{"type":"string","enum":["slot","interval"],"title":"Time Model","default":"slot"},"default_duration_min":{"type":"integer","title":"Default Duration Min","default":30},"pool_occupancy_mode":{"type":"string","enum":["exclusive","cross_reference","shared_capacity"],"title":"Pool Occupancy Mode","default":"exclusive"},"requires_capacity":{"type":"boolean","title":"Requires Capacity","default":false},"requires_intake":{"type":"boolean","title":"Requires Intake","default":false},"confirmation_mode":{"type":"string","enum":["auto","manual"],"title":"Confirmation Mode","default":"auto"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"base_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Base Price"},"currency":{"type":"string","title":"Currency","default":"HUF"},"min_advance_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Advance Hours"},"max_advance_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Advance Days"},"min_party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Party Size"},"max_party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Party Size"},"buffer_before_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buffer Before Min"},"buffer_after_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buffer After Min"},"slot_step_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slot Step Min"},"cancellation_window_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cancellation Window Hours"}},"type":"object","required":["name"],"title":"BookingTypeCreateRequest"},"BookingTypeResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"time_model":{"type":"string","enum":["slot","interval"],"title":"Time Model"},"default_duration_min":{"type":"integer","title":"Default Duration Min"},"pool_occupancy_mode":{"type":"string","enum":["exclusive","cross_reference","shared_capacity"],"title":"Pool Occupancy Mode","description":"Pool/időablak foglaltság: exclusive és cross_reference bináris; shared_capacity létszámösszeg.","default":"exclusive"},"requires_capacity":{"type":"boolean","title":"Requires Capacity","description":"Ha igaz, a foglalás létszáma nem haladhatja meg a kiválasztott egység kapacitását.","default":false},"requires_intake":{"type":"boolean","title":"Requires Intake"},"confirmation_mode":{"type":"string","enum":["auto","manual"],"title":"Confirmation Mode"},"active":{"type":"boolean","title":"Active"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"base_price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Base Price"},"currency":{"type":"string","title":"Currency","default":"HUF"},"min_advance_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Advance Hours"},"max_advance_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Advance Days"},"min_party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Party Size"},"max_party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Party Size"},"buffer_before_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buffer Before Min"},"buffer_after_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buffer After Min"},"slot_step_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slot Step Min","description":"Kezdő időpontok lépésköze percben (slot/interval lista). Hiány/nem pozitív: szerver 15 perc."},"cancellation_window_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cancellation Window Hours"},"active_intake_definition_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Active Intake Definition Id","description":"Aktív kérdőív definíció UUID-ja ehhez a foglalástípushoz (érvényes időszak + legfrissebb verzió)."},"intake_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intake Version","description":"Az aktív intake definíció verziószáma."},"intake_question_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intake Question Count","description":"Kérdések száma az aktív intake sémában."},"intake_first_question_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intake First Question Preview","description":"Az első kérdés rövid szövege — LLM és UI kontextus."},"reservation_count":{"type":"integer","title":"Reservation Count","description":"Foglalások száma ehhez a foglalástípushoz (admin UI: időmodell szerkesztés)","default":0}},"type":"object","required":["id","tenant_id","name","time_model","default_duration_min","requires_intake","confirmation_mode","active"],"title":"BookingTypeResponse"},"BookingTypeUnitCreateRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"Megjelenő név (terem, pálya, rendelő…)"},"capacity":{"type":"integer","maximum":9999.0,"minimum":1.0,"title":"Capacity","default":1},"unit_kind":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Unit Kind"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["name"],"title":"BookingTypeUnitCreateRequest"},"BookingTypeUnitResponse":{"properties":{"id":{"type":"string","title":"Id"},"booking_type_id":{"type":"string","title":"Booking Type Id"},"name":{"type":"string","title":"Name"},"capacity":{"type":"integer","title":"Capacity"},"active":{"type":"boolean","title":"Active"},"unit_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Kind"}},"type":"object","required":["id","booking_type_id","name","capacity","active"],"title":"BookingTypeUnitResponse"},"BookingTypeUnitUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"capacity":{"anyOf":[{"type":"integer","maximum":9999.0,"minimum":1.0},{"type":"null"}],"title":"Capacity"},"unit_kind":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Unit Kind"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"BookingTypeUnitUpdateRequest"},"BookingTypeUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"time_model":{"anyOf":[{"type":"string","enum":["slot","interval"]},{"type":"null"}],"title":"Time Model"},"default_duration_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Default Duration Min"},"pool_occupancy_mode":{"anyOf":[{"type":"string","enum":["exclusive","cross_reference","shared_capacity"]},{"type":"null"}],"title":"Pool Occupancy Mode"},"requires_capacity":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Requires Capacity"},"requires_intake":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Requires Intake"},"confirmation_mode":{"anyOf":[{"type":"string","enum":["auto","manual"]},{"type":"null"}],"title":"Confirmation Mode"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"base_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Base Price"},"currency":{"anyOf":[{"type":"string","maxLength":3,"minLength":3},{"type":"null"}],"title":"Currency"},"min_advance_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Advance Hours"},"max_advance_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Advance Days"},"min_party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Party Size"},"max_party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Party Size"},"buffer_before_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buffer Before Min"},"buffer_after_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buffer After Min"},"slot_step_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slot Step Min"},"cancellation_window_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cancellation Window Hours"}},"type":"object","title":"BookingTypeUpdateRequest"},"BudgetRequest":{"properties":{"amount":{"type":"number","title":"Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency","default":"HUF"}},"type":"object","required":["amount"],"title":"BudgetRequest"},"BulkCancelRequest":{"properties":{"reservation_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Reservation Ids"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["reservation_ids"],"title":"BulkCancelRequest"},"BulkCancelResponse":{"properties":{"cancelled":{"type":"integer","title":"Cancelled"},"failed":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Failed"}},"type":"object","required":["cancelled","failed"],"title":"BulkCancelResponse"},"BulkDeleteDocumentsRequest":{"properties":{"document_ids":{"items":{"type":"string"},"type":"array","title":"Document Ids"}},"type":"object","required":["document_ids"],"title":"BulkDeleteDocumentsRequest","description":"Bulk delete documents request"},"BulkUpdateScopeRequest":{"properties":{"document_ids":{"items":{"type":"string"},"type":"array","title":"Document Ids"},"scope":{"type":"string","title":"Scope"}},"type":"object","required":["document_ids","scope"],"title":"BulkUpdateScopeRequest","description":"Bulk update scope request"},"CalendarSettingsUpdateRequest":{"properties":{"caldav_url":{"type":"string","title":"Caldav Url"},"caldav_username":{"type":"string","title":"Caldav Username"},"caldav_password":{"type":"string","title":"Caldav Password"}},"type":"object","required":["caldav_url","caldav_username","caldav_password"],"title":"CalendarSettingsUpdateRequest","description":"CalDAV beállítások (Profil → Naptár API)"},"CatalogBulkImportBody":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CatalogItemCreateBody"},"type":"array","maxItems":200,"minItems":1,"title":"Items"},"continue_on_error":{"type":"boolean","title":"Continue On Error","default":false}},"type":"object","required":["items"],"title":"CatalogBulkImportBody","description":"REQ-081: tömeges katalógus import (staff). Max 200 sor / kérés."},"CatalogContractImportErrorItem":{"properties":{"row":{"type":"integer","title":"Row","default":0},"column":{"type":"string","title":"Column","default":""},"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"}},"type":"object","required":["code","message"],"title":"CatalogContractImportErrorItem"},"CatalogContractImportJobStatusResponse":{"properties":{"status":{"type":"string","title":"Status"},"result":{"anyOf":[{"$ref":"#/components/schemas/CatalogContractImportResponse"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"errors":{"items":{"$ref":"#/components/schemas/CatalogContractImportErrorItem"},"type":"array","title":"Errors"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["status"],"title":"CatalogContractImportJobStatusResponse"},"CatalogContractImportResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"dry_run":{"type":"boolean","title":"Dry Run","default":false},"row_count":{"type":"integer","title":"Row Count","default":0},"imported_count":{"type":"integer","title":"Imported Count","default":0},"deactivated_count":{"type":"integer","title":"Deactivated Count","default":0},"created_count":{"type":"integer","title":"Created Count","default":0},"updated_count":{"type":"integer","title":"Updated Count","default":0},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"errors":{"items":{"$ref":"#/components/schemas/CatalogContractImportErrorItem"},"type":"array","title":"Errors"},"import_batch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Import Batch Id"},"catalog_scope_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catalog Scope Id"},"preview_titles":{"items":{"type":"string"},"type":"array","title":"Preview Titles"}},"type":"object","required":["ok"],"title":"CatalogContractImportResponse"},"CatalogContractImportStartResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status","default":"pending"}},"type":"object","required":["job_id"],"title":"CatalogContractImportStartResponse"},"CatalogContractSettingsBody":{"properties":{"catalog_contract_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catalog Contract Version"},"column_order":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Column Order"},"custom_keys":{"anyOf":[{"items":{"$ref":"#/components/schemas/CatalogCustomKeyBody"},"type":"array"},{"type":"null"}],"title":"Custom Keys"}},"type":"object","title":"CatalogContractSettingsBody"},"CatalogCustomKeyBody":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Name","description":"Megjelenő oszlopnév (egyetlen mező a UI-ban)."},"key":{"anyOf":[{"type":"string","maxLength":48},{"type":"null"}],"title":"Key"},"label_hu":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Label Hu"},"header":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Header"}},"type":"object","title":"CatalogCustomKeyBody"},"CatalogItemCreateBody":{"properties":{"catalog_item_id":{"type":"string","maxLength":256,"minLength":1,"title":"Catalog Item Id"},"title_hu":{"type":"string","maxLength":512,"minLength":1,"title":"Title Hu"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"facets":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Facets"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["catalog_item_id","title_hu"],"title":"CatalogItemCreateBody","description":"REQ-081: katalógus sor létrehozás (staff)."},"CatalogItemPatchBody":{"properties":{"title_hu":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Title Hu"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"facets":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Facets"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"CatalogItemPatchBody","description":"REQ-081: katalógus sor részleges frissítés."},"CatalogPriceDeltaImportBody":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CatalogPriceDeltaRow"},"type":"array","maxItems":500,"minItems":1,"title":"Items"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["items"],"title":"CatalogPriceDeltaImportBody","description":"catalog_open: delta ár — csak unit_price_net frissítés meglévő SKU-kon."},"CatalogPriceDeltaRow":{"properties":{"catalog_item_id":{"type":"string","maxLength":256,"minLength":1,"title":"Catalog Item Id"},"unit_price_net":{"type":"string","maxLength":32,"minLength":1,"title":"Unit Price Net"}},"type":"object","required":["catalog_item_id","unit_price_net"],"title":"CatalogPriceDeltaRow"},"CatalogProposalFromRequestBody":{"properties":{"request_text":{"type":"string","maxLength":120000,"minLength":3,"title":"Request Text"},"project_parameters":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Project Parameters"},"catalog_scope_id":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Catalog Scope Id"},"step_hints":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":12},{"type":"null"}],"title":"Step Hints"},"ignore_failed_attachments":{"type":"boolean","title":"Ignore Failed Attachments","default":false}},"type":"object","required":["request_text"],"title":"CatalogProposalFromRequestBody"},"CatalogProposalFromRequestResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"request_id":{"type":"string","title":"Request Id"},"proposal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proposal Id"},"request_status":{"type":"string","title":"Request Status","default":""},"proposal_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proposal Status"},"workflow_plan":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Plan"},"candidates_count":{"type":"integer","title":"Candidates Count","default":0},"elements_count":{"type":"integer","title":"Elements Count","default":0}},"type":"object","required":["request_id"],"title":"CatalogProposalFromRequestResponse"},"CatalogRecommendedResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CatalogSearchItem"},"type":"array","title":"Items"},"workflow_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Template Id"},"workflow_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Step Id"}},"type":"object","required":["items"],"title":"CatalogRecommendedResponse","description":"CAT-2.3: max 5 determinisztikus ajánlott katalógus tétel."},"CatalogScopeCreateBody":{"properties":{"scope_id":{"type":"string","maxLength":80,"minLength":1,"pattern":"^[a-zA-Z0-9_.-]+$","title":"Scope Id"},"name_hu":{"type":"string","maxLength":256,"minLength":1,"title":"Name Hu"},"description_hu":{"type":"string","maxLength":50000,"minLength":1,"title":"Description Hu"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["scope_id","name_hu","description_hu"],"title":"CatalogScopeCreateBody"},"CatalogScopePatchBody":{"properties":{"name_hu":{"anyOf":[{"type":"string","maxLength":256,"minLength":1},{"type":"null"}],"title":"Name Hu"},"description_hu":{"anyOf":[{"type":"string","maxLength":50000,"minLength":1},{"type":"null"}],"title":"Description Hu"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"CatalogScopePatchBody"},"CatalogSearchCountResponse":{"properties":{"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"},"count_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Count Error"}},"type":"object","title":"CatalogSearchCountResponse","description":"REQ-023: külön count útvonal; timeout esetén 503 + üres count."},"CatalogSearchItem":{"properties":{"id":{"type":"string","title":"Id"},"catalog_item_id":{"type":"string","title":"Catalog Item Id"},"title_hu":{"type":"string","title":"Title Hu"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"facets":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Facets"},"active":{"type":"boolean","title":"Active","default":true},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","catalog_item_id","title_hu"],"title":"CatalogSearchItem","description":"Egy katalógus-sor a keresési válaszban (CAT-2.2)."},"CatalogSearchResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CatalogSearchItem"},"type":"array","title":"Items"},"has_next":{"type":"boolean","title":"Has Next"},"next_after_title_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next After Title Hu"},"next_after_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next After Id"},"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["items","has_next","limit"],"title":"CatalogSearchResponse","description":"REQ-022 / REQ-023: keyset válasz; **nincs** kötelező COUNT a listázón."},"ChatRequest":{"properties":{"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"channel":{"type":"string","enum":["internal","public"],"title":"Channel"},"text":{"type":"string","title":"Text"},"session_id":{"type":"string","title":"Session Id"},"public_widget_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Widget Token"},"ui_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ui Action"},"slash_command":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slash Command"},"attached_internal_file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attached Internal File Id"},"attached_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attached Filename"},"recent_messages":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Recent Messages"},"debug_info":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Debug Info"}},"type":"object","required":["channel","text","session_id"],"title":"ChatRequest","description":"Chat request model\nSpecifikáció: 3.1\n\nPublic channel esetén:\n- tenant_id: Opcionális (tokenből oldódik fel)\n- public_widget_token: Kötelező (tenant_id feloldásához)\n- session_id: Kötelező (kliens generálja)\n- user_id: Opcionális (ha nincs, generálunk anonymous_{session_id})\n\nInternal channel esetén:\n- tenant_id: Kötelező\n- user_id: Kötelező\n- session_id: Kötelező"},"ClientFormCreateRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"is_blocking":{"type":"boolean","title":"Is Blocking","default":true},"questions":{"anyOf":[{"items":{"$ref":"#/components/schemas/ClientFormQuestionItem"},"type":"array"},{"type":"null"}],"title":"Questions"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"recipient_company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Company Id"},"recipient_person_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Person Id"}},"type":"object","title":"ClientFormCreateRequest"},"ClientFormQuestionItem":{"properties":{"question_text":{"type":"string","title":"Question Text"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order","default":0},"is_blocking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Blocking","default":false}},"type":"object","required":["question_text"],"title":"ClientFormQuestionItem"},"CompanyCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"headquarters_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters Address"},"headquarters_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters City"},"headquarters_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters Zip"},"headquarters_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters Country"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"billing_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Name"},"billing_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Address"},"billing_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing City"},"billing_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Zip"},"billing_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Country"},"tax_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tax Number"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Id"},"bank_account":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Account"}},"type":"object","required":["name"],"title":"CompanyCreateRequest"},"CompanyUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"headquarters_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters Address"},"headquarters_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters City"},"headquarters_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters Zip"},"headquarters_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headquarters Country"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"billing_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Name"},"billing_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Address"},"billing_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing City"},"billing_zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Zip"},"billing_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Country"},"tax_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tax Number"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Id"},"bank_account":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Account"}},"type":"object","title":"CompanyUpdateRequest"},"CompatRuleCreateBody":{"properties":{"rule_id":{"type":"string","maxLength":128,"minLength":1,"title":"Rule Id"},"rule_type":{"type":"string","enum":["FORBID_PAIR","FORBID_VALUE_WITH_CATEGORY","REQUIRES_FACET","REQUIRES_COMPATIBLE_SOCKET"],"title":"Rule Type"},"rule_set_version":{"type":"string","maxLength":64,"title":"Rule Set Version","default":"m7_4_default_v1"},"severity":{"type":"string","enum":["BLOCK","WARN"],"title":"Severity","default":"BLOCK"},"message_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Hu"},"spec_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string"}],"title":"Spec Json"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["rule_id","rule_type"],"title":"CompatRuleCreateBody","description":"REQ-080 / M.7.4: új compat szabály (tenant ``quote_compat_rule``)."},"CompatRulePatchBody":{"properties":{"rule_set_version":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Rule Set Version"},"severity":{"anyOf":[{"type":"string","enum":["BLOCK","WARN"]},{"type":"null"}],"title":"Severity"},"message_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Hu"},"spec_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Spec Json"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"CompatRulePatchBody","description":"Részleges frissítés (staff). ``rule_id`` / ``rule_type`` nem módosítható — töröld és hozz létre újat."},"CostEntryCreateRequest":{"properties":{"amount":{"type":"number","title":"Amount"},"type":{"type":"string","title":"Type"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency","default":"HUF"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"quantity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Quantity"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"occurred_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Occurred At"}},"type":"object","required":["amount","type"],"title":"CostEntryCreateRequest"},"CostTypeCreateRequest":{"properties":{"code":{"type":"string","title":"Code"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","required":["code"],"title":"CostTypeCreateRequest"},"CostTypeUpdateRequest":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"CostTypeUpdateRequest"},"CoverLetterPolishBody":{"properties":{"cover_letter_hu":{"type":"string","maxLength":12000,"minLength":1,"title":"Cover Letter Hu"},"scope_summary":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Scope Summary"}},"type":"object","required":["cover_letter_hu"],"title":"CoverLetterPolishBody"},"CreateJobUrlRequest":{"properties":{"source_url":{"type":"string","maxLength":4000,"minLength":8,"title":"Source Url"},"title":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Title"},"language":{"type":"string","maxLength":16,"title":"Language","default":"hu"}},"type":"object","required":["source_url"],"title":"CreateJobUrlRequest"},"CreateReservationRequest":{"properties":{"booking_type_id":{"type":"string","title":"Booking Type Id"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"customer_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Email"},"customer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Name"},"customer_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Phone"},"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"party_size":{"type":"integer","title":"Party Size","default":1},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids"},"intake_responses":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Intake Responses"},"channel":{"type":"string","enum":["web","chat","phone","panel","voice","in_person"],"title":"Channel","default":"web"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"panel_multi_unit_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Panel Multi Unit Session Id","description":"Panel: második+ egység ugyanarra az időpontra — előző válaszból kapott session UUID."},"skip_availability_window_fit":{"type":"boolean","title":"Skip Availability Window Fit","description":"Csak belső/admin útvonal: ne futtasson evaluate_single_unit_window_fit-et (pl. skip_policy_check).","default":false}},"type":"object","required":["booking_type_id"],"title":"CreateReservationRequest"},"CreateTtsJobRequest":{"properties":{"text":{"type":"string","maxLength":100000,"minLength":1,"title":"Text"},"voice_id":{"type":"string","maxLength":128,"minLength":1,"title":"Voice Id"},"speed":{"type":"number","maximum":2.0,"minimum":0.3,"title":"Speed","default":1.0},"title":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Title"},"language":{"type":"string","maxLength":16,"title":"Language","default":"hu"}},"type":"object","required":["text","voice_id"],"title":"CreateTtsJobRequest"},"CustomerQuickSearchResult":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"reservation_count":{"type":"integer","title":"Reservation Count"}},"type":"object","required":["id","name","email","reservation_count"],"title":"CustomerQuickSearchResult"},"CustomerResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"customer_type":{"type":"string","title":"Customer Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","name","customer_type","created_at"],"title":"CustomerResponse","description":"Ügyfél API válasz (PLAN-06)."},"DisplayScheduleResponse":{"properties":{"slots":{"items":{"$ref":"#/components/schemas/DisplayScheduleSlot"},"type":"array","title":"Slots"},"auto_refresh_seconds":{"type":"integer","title":"Auto Refresh Seconds","default":60},"view_type":{"type":"string","title":"View Type","default":"lane"},"date_range":{"type":"string","title":"Date Range","default":"today"},"timezone":{"type":"string","title":"Timezone","default":"Europe/Budapest"},"window_date_from":{"type":"string","format":"date","title":"Window Date From"},"window_date_to":{"type":"string","format":"date","title":"Window Date To"}},"type":"object","required":["slots","window_date_from","window_date_to"],"title":"DisplayScheduleResponse"},"DisplayScheduleSlot":{"properties":{"unit_id":{"type":"string","title":"Unit Id"},"unit_name":{"type":"string","title":"Unit Name"},"reservation_id":{"type":"string","title":"Reservation Id"},"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"duration_min":{"type":"integer","title":"Duration Min"},"booking_type_name":{"type":"string","title":"Booking Type Name"},"display_name":{"type":"string","title":"Display Name"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["unit_id","unit_name","reservation_id","duration_min","booking_type_name","display_name"],"title":"DisplayScheduleSlot","description":"Egy foglalás megjelenítése a kijelzőn (szűrt ügyfél-adatokkal)."},"DocumentScopeUpdateRequest":{"properties":{"scope":{"type":"string","title":"Scope"}},"type":"object","required":["scope"],"title":"DocumentScopeUpdateRequest","description":"Document scope update request"},"EmailJobCreate":{"properties":{"to":{"type":"string","maxLength":512,"minLength":3,"title":"To"},"cc":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cc"},"subject":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Subject"}},"type":"object","required":["to"],"title":"EmailJobCreate"},"EmailJobRejectBody":{"properties":{"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","title":"EmailJobRejectBody"},"EndpointIdsResponse":{"properties":{"endpoint_ids":{"items":{"type":"string"},"type":"array","title":"Endpoint Ids"}},"type":"object","required":["endpoint_ids"],"title":"EndpointIdsResponse","description":"Config-ban definiált LLM endpoint id-k – statisztika érvényességhez (csak ezekhez tartozó sor számít LLM hívásként)."},"EndpointStatus":{"properties":{"id":{"type":"string","title":"Id"},"base_url":{"type":"string","title":"Base Url"},"model":{"type":"string","title":"Model"},"description":{"type":"string","title":"Description"},"is_online":{"type":"boolean","title":"Is Online","default":false},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"input_price_per_1m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Price Per 1M"},"output_price_per_1m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Output Price Per 1M"}},"type":"object","required":["id","base_url","model","description"],"title":"EndpointStatus","description":"Egy LLM endpoint állapota (config + online + token árak / 1M token)"},"EndpointsListResponse":{"properties":{"models":{"items":{"$ref":"#/components/schemas/EndpointStatus"},"type":"array","title":"Models"},"online_count":{"type":"integer","title":"Online Count"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["models","online_count","total_count"],"title":"EndpointsListResponse","description":"Összes endpoint listája"},"FacetEnumMemberCreateBody":{"properties":{"value":{"type":"string","maxLength":256,"minLength":1,"title":"Value"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["value"],"title":"FacetEnumMemberCreateBody","description":"REQ-081: enum tag (opcionális aliasokkal)."},"FacetKeyCreateBody":{"properties":{"key":{"type":"string","maxLength":128,"minLength":1,"title":"Key"},"value_kind":{"type":"string","enum":["enum","number","bool","string_normalized"],"title":"Value Kind"},"unit":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Unit"},"description_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Hu"},"numeric_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Numeric Min","description":"REQ-081: csak value_kind=number"},"numeric_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Numeric Max","description":"REQ-081: csak value_kind=number"},"string_pattern":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"String Pattern","description":"REQ-081: csak value_kind=string_normalized; Python re, teljes egyezés (fullmatch) a trimelt értéken"}},"type":"object","required":["key","value_kind"],"title":"FacetKeyCreateBody","description":"REQ-081 / M.7.1: facet kulcs a tenant regiszterben."},"FacetKeyPatchBody":{"properties":{"unit":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Unit"},"description_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Hu"},"numeric_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Numeric Min"},"numeric_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Numeric Max"},"string_pattern":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"String Pattern"}},"type":"object","title":"FacetKeyPatchBody","description":"REQ-081: facet kulcs meta / numerikus tartomány (PATCH)."},"FbCommentListResponse":{"properties":{"comments":{"items":{"$ref":"#/components/schemas/FbCommentResponse"},"type":"array","title":"Comments"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["comments","total","page","page_size"],"title":"FbCommentListResponse"},"FbCommentResponse":{"properties":{"id":{"type":"string","title":"Id"},"fb_comment_id":{"type":"string","title":"Fb Comment Id"},"fb_post_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fb Post Id"},"post_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Post Message"},"from_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From User Id"},"original_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Message"},"our_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Our Reply"},"data_groups_used":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Data Groups Used"},"status":{"type":"string","title":"Status"},"retry_count":{"type":"integer","title":"Retry Count","default":0},"next_retry_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Retry At"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"processed_at":{"type":"string","format":"date-time","title":"Processed At"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"classification_debug":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Classification Debug"}},"type":"object","required":["id","fb_comment_id","fb_post_id","original_message","our_reply","data_groups_used","status","processed_at","trace_id"],"title":"FbCommentResponse"},"FbCommentSendRequest":{"properties":{"our_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Our Reply"}},"type":"object","title":"FbCommentSendRequest","description":"Optional edited reply text when sending pending_approval / failed_manual comment."},"FbContentCreate":{"properties":{"content":{"type":"string","maxLength":500,"minLength":1,"title":"Content"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["content"],"title":"FbContentCreate"},"FbContentListResponse":{"properties":{"contents":{"items":{"$ref":"#/components/schemas/FbContentResponse"},"type":"array","title":"Contents"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["contents","total"],"title":"FbContentListResponse"},"FbContentResponse":{"properties":{"content":{"type":"string","maxLength":500,"minLength":1,"title":"Content"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"id":{"type":"string","title":"Id"},"fb_data_group_id":{"type":"string","title":"Fb Data Group Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["content","id","fb_data_group_id","created_at","updated_at"],"title":"FbContentResponse"},"FbContentUpdate":{"properties":{"content":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Content"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"FbContentUpdate"},"FbDataGroupCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"},"sort_order":{"type":"integer","minimum":0.0,"title":"Sort Order","default":0},"persona_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Id"}},"type":"object","required":["name"],"title":"FbDataGroupCreate"},"FbDataGroupListResponse":{"properties":{"data_groups":{"items":{"$ref":"#/components/schemas/FbDataGroupResponse"},"type":"array","title":"Data Groups"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["data_groups","total"],"title":"FbDataGroupListResponse"},"FbDataGroupResponse":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"},"sort_order":{"type":"integer","minimum":0.0,"title":"Sort Order","default":0},"persona_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Id"},"id":{"type":"string","title":"Id"},"fb_profile_id":{"type":"string","title":"Fb Profile Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"contents_count":{"type":"integer","title":"Contents Count","default":0}},"type":"object","required":["name","id","fb_profile_id","created_at","updated_at"],"title":"FbDataGroupResponse"},"FbDataGroupUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"sort_order":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sort Order"},"persona_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Id"}},"type":"object","title":"FbDataGroupUpdate"},"FbFallbackConfigResponse":{"properties":{"fallback_instructions":{"type":"string","maxLength":2000,"minLength":10,"title":"Fallback Instructions"},"id":{"type":"string","title":"Id"},"fb_profile_id":{"type":"string","title":"Fb Profile Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["fallback_instructions","id","fb_profile_id","created_at","updated_at"],"title":"FbFallbackConfigResponse"},"FbFallbackConfigUpdate":{"properties":{"fallback_instructions":{"type":"string","maxLength":2000,"minLength":10,"title":"Fallback Instructions"}},"type":"object","required":["fallback_instructions"],"title":"FbFallbackConfigUpdate"},"FbFormatReplyRequest":{"properties":{"post_text":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Post Text","description":"Facebook poszt szövege (amelyik alatt a komment van)"},"query":{"type":"string","maxLength":2000,"minLength":1,"title":"Query","description":"A kérdező kommentje"},"source":{"type":"string","enum":["rag","shop"],"title":"Source","description":"rag = dokumentum részletek, shop = termékek"},"selected_contents":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Selected Contents","description":"Kiválasztott tartalom blokkok"},"trace_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["query","source","selected_contents"],"title":"FbFormatReplyRequest","description":"Request for format-reply start: poszt + kérdés + RAG/Shop tartalom → formázott válasz."},"FbFormatReplyStatusResponse":{"properties":{"status":{"type":"string","enum":["pending","done","error"],"title":"Status"},"formatted_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formatted Reply"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["status"],"title":"FbFormatReplyStatusResponse","description":"Format-reply job status (poll response)."},"FbOAuthCompleteRequest":{"properties":{"token":{"type":"string","title":"Token"},"page_id":{"type":"string","title":"Page Id"}},"type":"object","required":["token","page_id"],"title":"FbOAuthCompleteRequest","description":"OAuth page selection complete - token + selected page_id."},"FbPageFeedPost":{"properties":{"id":{"type":"string","title":"Id"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created Time"},"full_picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Picture"},"permalink_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Permalink Url"}},"type":"object","required":["id"],"title":"FbPageFeedPost","description":"Single post in Page feed from Graph API (pages_read_engagement)."},"FbPageFeedResponse":{"properties":{"page_id":{"type":"string","title":"Page Id"},"page_name":{"type":"string","title":"Page Name"},"posts":{"items":{"$ref":"#/components/schemas/FbPageFeedPost"},"type":"array","title":"Posts"}},"type":"object","required":["page_id","page_name","posts"],"title":"FbPageFeedResponse","description":"Page feed (posts) from Graph API for pages_read_engagement Meta review."},"FbPersonaCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"text":{"type":"string","minLength":1,"title":"Text"},"sort_order":{"type":"integer","minimum":0.0,"title":"Sort Order","default":0}},"type":"object","required":["name","text"],"title":"FbPersonaCreate"},"FbPersonaListResponse":{"properties":{"personas":{"items":{"$ref":"#/components/schemas/FbPersonaResponse"},"type":"array","title":"Personas"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["personas","total"],"title":"FbPersonaListResponse"},"FbPersonaResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"text":{"type":"string","title":"Text"},"sort_order":{"type":"integer","title":"Sort Order"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","text","sort_order","created_at","updated_at"],"title":"FbPersonaResponse"},"FbPersonaUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"text":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Text"},"sort_order":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"FbPersonaUpdate"},"FbPostContextResponse":{"properties":{"id":{"type":"string","title":"Id"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created Time"},"full_picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Picture"},"permalink_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Permalink Url"},"page_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Id"},"page_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Name"},"our_reply_from_graph":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Our Reply From Graph"}},"type":"object","required":["id"],"title":"FbPostContextResponse","description":"Single post from Graph API for Page content display (pages_read_engagement)."},"FbProfileCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"enabled":{"type":"boolean","title":"Enabled","default":true},"fb_page_id":{"type":"string","maxLength":100,"title":"Fb Page Id"},"fb_page_access_token":{"type":"string","title":"Fb Page Access Token"}},"type":"object","required":["name","fb_page_id","fb_page_access_token"],"title":"FbProfileCreate"},"FbProfileListResponse":{"properties":{"profiles":{"items":{"$ref":"#/components/schemas/FbProfileResponse"},"type":"array","title":"Profiles"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["profiles","total"],"title":"FbProfileListResponse"},"FbProfileResponse":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"enabled":{"type":"boolean","title":"Enabled","default":true},"id":{"type":"string","title":"Id"},"fb_page_id":{"type":"string","title":"Fb Page Id"},"fb_page_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fb Page Name"},"token_valid":{"type":"boolean","title":"Token Valid","default":true},"reply_mode":{"type":"string","title":"Reply Mode","default":"auto"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"data_groups_count":{"type":"integer","title":"Data Groups Count","default":0},"contents_count":{"type":"integer","title":"Contents Count","default":0}},"type":"object","required":["name","id","fb_page_id","created_at","updated_at"],"title":"FbProfileResponse"},"FbProfileUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"reply_mode":{"anyOf":[{"type":"string","pattern":"^(auto|manual)$"},{"type":"null"}],"title":"Reply Mode"}},"type":"object","title":"FbProfileUpdate"},"FbResponseTemplateContentCreate":{"properties":{"content":{"type":"string","maxLength":10000,"minLength":1,"title":"Content"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["content"],"title":"FbResponseTemplateContentCreate"},"FbResponseTemplateContentListResponse":{"properties":{"contents":{"items":{"$ref":"#/components/schemas/FbResponseTemplateContentResponse"},"type":"array","title":"Contents"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["contents","total"],"title":"FbResponseTemplateContentListResponse"},"FbResponseTemplateContentResponse":{"properties":{"content":{"type":"string","maxLength":10000,"minLength":1,"title":"Content"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"id":{"type":"string","title":"Id"},"template_group_id":{"type":"string","title":"Template Group Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["content","id","template_group_id","created_at","updated_at"],"title":"FbResponseTemplateContentResponse"},"FbResponseTemplateContentUpdate":{"properties":{"content":{"anyOf":[{"type":"string","maxLength":10000,"minLength":1},{"type":"null"}],"title":"Content"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"FbResponseTemplateContentUpdate"},"FbResponseTemplateFallbackResponse":{"properties":{"id":{"type":"string","title":"Id"},"fallback_instructions":{"type":"string","title":"Fallback Instructions"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","fallback_instructions","created_at","updated_at"],"title":"FbResponseTemplateFallbackResponse"},"FbResponseTemplateFallbackUpdate":{"properties":{"fallback_instructions":{"type":"string","maxLength":2000,"minLength":10,"title":"Fallback Instructions"}},"type":"object","required":["fallback_instructions"],"title":"FbResponseTemplateFallbackUpdate"},"FbResponseTemplateGroupCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"},"sort_order":{"type":"integer","minimum":0.0,"title":"Sort Order","default":0},"persona_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Id"}},"type":"object","required":["name"],"title":"FbResponseTemplateGroupCreate"},"FbResponseTemplateGroupListResponse":{"properties":{"data_groups":{"items":{"$ref":"#/components/schemas/FbResponseTemplateGroupResponse"},"type":"array","title":"Data Groups"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["data_groups","total"],"title":"FbResponseTemplateGroupListResponse"},"FbResponseTemplateGroupResponse":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"},"sort_order":{"type":"integer","minimum":0.0,"title":"Sort Order","default":0},"persona_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Id"},"id":{"type":"string","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"contents_count":{"type":"integer","title":"Contents Count","default":0}},"type":"object","required":["name","id","created_at","updated_at"],"title":"FbResponseTemplateGroupResponse"},"FbResponseTemplateGroupUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"sort_order":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sort Order"},"persona_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Id"}},"type":"object","title":"FbResponseTemplateGroupUpdate"},"FbRetrieveForCommentProductRequest":{"properties":{"query":{"type":"string","maxLength":2000,"minLength":1,"title":"Query"}},"type":"object","required":["query"],"title":"FbRetrieveForCommentProductRequest","description":"Request body for product retrieve for FB comment (query = search text for shop)."},"FbRetrieveForCommentProductResponse":{"properties":{"matches":{"items":{"$ref":"#/components/schemas/FbRetrieveProductMatch"},"type":"array","title":"Matches"}},"type":"object","title":"FbRetrieveForCommentProductResponse","description":"Product matches for FB comment 'Keresés a shopban'."},"FbRetrieveForCommentRequest":{"properties":{"query":{"type":"string","maxLength":2000,"minLength":1,"title":"Query"}},"type":"object","required":["query"],"title":"FbRetrieveForCommentRequest","description":"Request body for RAG retrieve for FB comment (query = original_message or user text)."},"FbRetrieveForCommentResponse":{"properties":{"matches":{"items":{"$ref":"#/components/schemas/FbRetrieveMatch"},"type":"array","title":"Matches"}},"type":"object","title":"FbRetrieveForCommentResponse","description":"RAG matches with content for FB comment 'Dokumentumok keresése'."},"FbRetrieveMatch":{"properties":{"doc_id":{"type":"string","title":"Doc Id"},"chunk_id":{"type":"string","title":"Chunk Id"},"score":{"type":"number","title":"Score"},"filename":{"type":"string","title":"Filename"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","required":["doc_id","chunk_id","score","filename"],"title":"FbRetrieveMatch","description":"Single RAG match with content for FB comment reply enrichment."},"FbRetrieveProductMatch":{"properties":{"doc_id":{"type":"string","title":"Doc Id"},"chunk_id":{"type":"string","title":"Chunk Id"},"score":{"type":"number","title":"Score"},"name":{"type":"string","title":"Name"},"price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"product_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Url"}},"type":"object","required":["doc_id","chunk_id","score","name"],"title":"FbRetrieveProductMatch","description":"Single product match for FB comment 'Keresés a shopban'."},"FbWorkerStatusResponse":{"properties":{"running":{"type":"boolean","title":"Running"},"last_activity":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity"},"queue_pending":{"type":"integer","title":"Queue Pending","default":0},"queue_processing":{"type":"integer","title":"Queue Processing","default":0},"queue_failed":{"type":"integer","title":"Queue Failed","default":0}},"type":"object","required":["running"],"title":"FbWorkerStatusResponse"},"ForgotPasswordRequest":{"properties":{"email":{"type":"string","title":"Email"},"tenant_id":{"type":"string","title":"Tenant Id"}},"type":"object","required":["email","tenant_id"],"title":"ForgotPasswordRequest","description":"Elfelejtett jelszó request"},"GenerateTemplateRequest":{"properties":{"base_url":{"type":"string","title":"Base Url"},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"}},"type":"object","required":["base_url"],"title":"GenerateTemplateRequest","description":"AI template generálás request"},"GenerateTemplateWithCategoriesRequest":{"properties":{"base_url":{"type":"string","title":"Base Url"},"category_urls":{"items":{"type":"string"},"type":"array","title":"Category Urls"},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"}},"type":"object","required":["base_url","category_urls"],"title":"GenerateTemplateWithCategoriesRequest","description":"Request model template generáláshoz kiválasztott kategóriákkal"},"GoldenSetCreateRequest":{"properties":{"name":{"type":"string","title":"Name","default":"default"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"queries":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Queries","description":"Teszt query-k listája"}},"type":"object","required":["queries"],"title":"GoldenSetCreateRequest","description":"Golden set létrehozási kérés"},"GoldenSetGenerateRequest":{"properties":{"test_count":{"type":"integer","maximum":100.0,"minimum":5.0,"title":"Test Count","description":"Tesztek száma. Engedélyezett értékek: 10, 20, 30, 50, 100","default":10},"name":{"type":"string","title":"Name","default":"auto-generated"}},"type":"object","title":"GoldenSetGenerateRequest","description":"Golden set generálási kérés"},"GoldenSetResponse":{"properties":{"id":{"type":"integer","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"test_count":{"type":"integer","title":"Test Count"},"queries":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Queries"},"is_auto_generated":{"type":"boolean","title":"Is Auto Generated"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","tenant_id","name","description","test_count","queries","is_auto_generated","created_at","updated_at"],"title":"GoldenSetResponse","description":"Golden set válasz"},"GoldenSetUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"queries":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Queries"}},"type":"object","title":"GoldenSetUpdateRequest","description":"Golden set frissítési kérés"},"GoogleAuthRequest":{"properties":{"id_token":{"type":"string","title":"Id Token"},"flow":{"type":"string","title":"Flow"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},"type":"object","required":["id_token","flow"],"title":"GoogleAuthRequest"},"GroupCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"type":"string","title":"Description","default":""},"type":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Type"}},"type":"object","required":["name"],"title":"GroupCreate"},"GroupResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"pattern_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Pattern State"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"samples_count":{"type":"integer","title":"Samples Count","default":0},"approved_count":{"type":"integer","title":"Approved Count","default":0}},"type":"object","required":["id","tenant_id","name","description","type","pattern_state","created_at","updated_at"],"title":"GroupResponse"},"GroupUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"type":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Type"}},"type":"object","title":"GroupUpdate"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthStatusRunBody":{"properties":{"endpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint Id"}},"type":"object","title":"HealthStatusRunBody","description":"Body: endpoint_id null = mind, egy string = csak az az endpoint."},"IndustryTemplateDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"is_active":{"type":"boolean","title":"Is Active"},"usage_count":{"type":"integer","title":"Usage Count"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"default_booking_types":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Booking Types"},"default_intake_schemas":{"items":{},"type":"array","title":"Default Intake Schemas"},"default_policies":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Policies"},"default_availability_rules":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Availability Rules"},"default_units":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Units"}},"type":"object","required":["id","slug","name","is_active","usage_count"],"title":"IndustryTemplateDetailResponse","description":"Teljes sablon – JSON tömbök szerkesztéshez (GET /system/booking/templates/{id})."},"IndustryTemplateResponse":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"is_active":{"type":"boolean","title":"Is Active"},"usage_count":{"type":"integer","title":"Usage Count"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"}},"type":"object","required":["id","slug","name","is_active","usage_count"],"title":"IndustryTemplateResponse","description":"System admin + tenant lista – iparági sablon."},"InfoChatSettingsUpdateRequest":{"properties":{"info_general_knowledge_enabled":{"type":"boolean","title":"Info General Knowledge Enabled"},"info_geo_enabled":{"type":"boolean","title":"Info Geo Enabled"}},"type":"object","required":["info_general_knowledge_enabled","info_geo_enabled"],"title":"InfoChatSettingsUpdateRequest"},"InfoDescriptionGenerateRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"content":{"type":"string","title":"Content"},"example_question_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Example Question Count","default":12}},"type":"object","required":["content"],"title":"InfoDescriptionGenerateRequest"},"InfoItemCreateRequest":{"properties":{"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"content":{"type":"string","title":"Content","default":""},"scope":{"type":"string","title":"Scope","default":"internal"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["title"],"title":"InfoItemCreateRequest","description":"Info item create request"},"InfoItemUpdateRequest":{"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"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"InfoItemUpdateRequest","description":"Info item update request"},"IntakeDefinitionCreateRequest":{"properties":{"schema_json":{"additionalProperties":true,"type":"object","title":"Schema Json"},"version":{"type":"integer","title":"Version","default":1},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To"},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["schema_json"],"title":"IntakeDefinitionCreateRequest"},"IntakeDefinitionResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"booking_type_id":{"type":"string","title":"Booking Type Id"},"schema_json":{"additionalProperties":true,"type":"object","title":"Schema Json"},"version":{"type":"integer","title":"Version"},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","tenant_id","booking_type_id","schema_json","version","active","created_at"],"title":"IntakeDefinitionResponse","description":"API: JSON mező neve továbbra is ``schema_json`` (alias); Python attr ``form_schema`` — elkerüli a BaseModel.schema_json ütközést."},"IntakeDefinitionUpdateRequest":{"properties":{"schema_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Schema Json"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"valid_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Valid To"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"IntakeDefinitionUpdateRequest"},"IntakeResponseItem":{"properties":{"question_id":{"type":"string","title":"Question Id"},"answer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer"},"question_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Label"},"answer_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer Label"}},"type":"object","required":["question_id"],"title":"IntakeResponseItem"},"IntakeStepRequest":{"properties":{"booking_type_id":{"type":"string","title":"Booking Type Id"},"answers":{"additionalProperties":{"type":"string"},"type":"object","title":"Answers"}},"type":"object","required":["booking_type_id"],"title":"IntakeStepRequest","description":"Publikus panel: aktuális válaszokkal következő kérdés vagy befejezés."},"IntakeStepResponse":{"properties":{"done":{"type":"boolean","title":"Done"},"next_question":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Next Question"},"outcome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outcome"},"message_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Key"},"unit_filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Unit Filter"}},"type":"object","required":["done"],"title":"IntakeStepResponse"},"JobCreateResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"}},"type":"object","required":["job_id","status"],"title":"JobCreateResponse"},"JobDetail":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"source_type":{"type":"string","title":"Source Type"},"source_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"status":{"type":"string","title":"Status"},"status_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Label"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"},"progress_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Progress Pct"},"language":{"type":"string","title":"Language"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"source_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Bytes"},"llm_correct_plain_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Correct Plain Status"},"llm_correct_srt_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Correct Srt Status"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview"},"mcp_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcp Job Id"},"staging_object_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staging Object Id"},"audio_deleted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Deleted At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"estimated_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Estimated Hint"}},"type":"object","required":["id","source_type","status","language"],"title":"JobDetail"},"JobListItem":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"source_type":{"type":"string","title":"Source Type"},"source_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Filename"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"status":{"type":"string","title":"Status"},"status_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Label"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"},"progress_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Progress Pct"},"language":{"type":"string","title":"Language"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"source_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Bytes"},"llm_correct_plain_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Correct Plain Status"},"llm_correct_srt_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Correct Srt Status"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview"}},"type":"object","required":["id","source_type","status","language"],"title":"JobListItem"},"JobListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/JobListItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"JobListResponse"},"JobResultResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"text_raw":{"type":"string","title":"Text Raw"},"srt_raw":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Srt Raw"},"text_corrected":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Corrected"},"srt_corrected":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Srt Corrected"},"segments":{"anyOf":[{},{"type":"null"}],"title":"Segments"}},"type":"object","required":["job_id","text_raw"],"title":"JobResultResponse"},"LandingChatMessage":{"properties":{"role":{"type":"string","title":"Role"},"content":{"type":"string","title":"Content"}},"type":"object","required":["role","content"],"title":"LandingChatMessage"},"LandingChatRequest":{"properties":{"text":{"type":"string","title":"Text"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"history":{"anyOf":[{"items":{"$ref":"#/components/schemas/LandingChatMessage"},"type":"array"},{"type":"null"}],"title":"History"}},"type":"object","required":["text"],"title":"LandingChatRequest"},"LandingContentUpdateRequest":{"properties":{"knowledge":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledge"},"landing_knowledge_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Landing Knowledge Enabled"},"below_chat":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Below Chat"},"impresszum":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Impresszum"},"aszf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aszf"},"adatvedelmi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adatvedelmi"},"suti":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suti"},"arlista":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arlista"},"html_head":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Head"},"html_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Body"},"inject_head_zones":{"items":{"type":"string"},"type":"array","title":"Inject Head Zones"},"inject_body_zones":{"items":{"type":"string"},"type":"array","title":"Inject Body Zones"}},"type":"object","required":["inject_head_zones","inject_body_zones"],"title":"LandingContentUpdateRequest","description":"Landing (nyitóoldal) tartalom frissítés. inject_head_zones és inject_body_zones kötelezők (új fejlesztés)."},"LlmCorrectRequest":{"properties":{"targets":{"items":{"type":"string","enum":["plain","srt"]},"type":"array","title":"Targets"}},"type":"object","title":"LlmCorrectRequest"},"LlmPricesUpdate":{"properties":{"prices":{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object","title":"Prices","default":{}}},"type":"object","title":"LlmPricesUpdate","description":"Token árak / 1M token: endpoint_id -> { input_per_1m, output_per_1m }"},"LoadFeedStartRequest":{"properties":{"feed_urls":{"items":{"type":"string"},"type":"array","title":"Feed Urls"},"format":{"type":"string","title":"Format"}},"type":"object","required":["feed_urls","format"],"title":"LoadFeedStartRequest","description":"Feed betöltés indítása: feed_urls + format. (Fájl feltöltés később: multipart endpoint.)"},"LoginRequest":{"properties":{"user_id":{"type":"string","title":"User Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"password":{"type":"string","title":"Password"}},"type":"object","required":["user_id","tenant_id","password"],"title":"LoginRequest","description":"Login request model"},"LoginResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"user_id":{"type":"string","title":"User Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"role":{"type":"string","title":"Role"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["access_token","user_id","tenant_id","role","expires_in"],"title":"LoginResponse","description":"Login response model"},"MarketplaceTemplateCreate":{"properties":{"title":{"type":"string","maxLength":500,"minLength":1,"title":"Title"},"industry_tag":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Industry Tag"},"template_kind":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Template Kind"},"usage_brief_hu":{"anyOf":[{"type":"string","maxLength":50000},{"type":"null"}],"title":"Usage Brief Hu"},"version":{"type":"integer","minimum":1.0,"title":"Version","default":1},"payload_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string"}],"title":"Payload Json"}},"type":"object","required":["title","payload_json"],"title":"MarketplaceTemplateCreate"},"MarketplaceTemplateUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Title"},"industry_tag":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Industry Tag"},"template_kind":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Template Kind"},"usage_brief_hu":{"anyOf":[{"type":"string","maxLength":50000},{"type":"null"}],"title":"Usage Brief Hu"},"version":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Version"},"payload_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"}},"type":"object","title":"MarketplaceTemplateUpdate"},"MergeCustomersRequest":{"properties":{"source_customer_id":{"type":"string","title":"Source Customer Id"},"target_customer_id":{"type":"string","title":"Target Customer Id"}},"type":"object","required":["source_customer_id","target_customer_id"],"title":"MergeCustomersRequest","description":"POST /admin/customers/merge – két ügyfél összevonása."},"MessageCreateRequest":{"properties":{"content":{"type":"string","title":"Content"}},"type":"object","required":["content"],"title":"MessageCreateRequest"},"OpenCatalogRequestPatchBody":{"properties":{"status":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Status"},"catalog_item_id":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Catalog Item Id"}},"type":"object","title":"OpenCatalogRequestPatchBody"},"OpenCatalogRequestPromoteBody":{"properties":{"catalog_item_id":{"type":"string","maxLength":80,"minLength":1,"title":"Catalog Item Id"},"title_hu":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Title Hu"},"description":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Description"},"facets":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Facets"}},"type":"object","required":["catalog_item_id"],"title":"OpenCatalogRequestPromoteBody"},"OpenLaneCustomerPatch":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"request_note_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Note Hu"},"project_title_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Title Hu"},"delivery_address_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Address Hu"},"delivery_details_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Details Hu"},"staff_note_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staff Note Hu"}},"type":"object","title":"OpenLaneCustomerPatch"},"OpenLaneDraftPatch":{"properties":{"customer":{"anyOf":[{"$ref":"#/components/schemas/OpenLaneCustomerPatch"},{"type":"null"}]},"line_items":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Line Items"},"line_ops":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Line Ops"}},"type":"object","title":"OpenLaneDraftPatch"},"OpenLaneOrderPatch":{"properties":{"delivered":{"type":"boolean","title":"Delivered","description":"Kiszállítva jelölés"}},"type":"object","required":["delivered"],"title":"OpenLaneOrderPatch"},"OpenLaneSendBody":{"properties":{"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To","description":"Címzett e-mail"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"E-mail tárgy"},"dry_run":{"type":"boolean","title":"Dry Run","description":"Ha true, csak előnézet HTML — nem küld","default":false},"customer":{"anyOf":[{"$ref":"#/components/schemas/OpenLaneCustomerPatch"},{"type":"null"}]},"line_items":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Line Items"},"line_ops":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Line Ops"},"staff_note_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staff Note Hu"},"delivery_details_hu":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Details Hu"}},"type":"object","title":"OpenLaneSendBody"},"PaginatedCustomersResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CustomerQuickSearchResult"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"PaginatedCustomersResponse"},"PaginatedReservationResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ReservationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"PaginatedReservationResponse"},"PersonCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name"],"title":"PersonCreateRequest"},"PersonUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"PersonUpdateRequest"},"PhaseCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"order":{"type":"integer","title":"Order","default":0}},"type":"object","required":["name"],"title":"PhaseCreateRequest"},"PhaseUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","title":"PhaseUpdateRequest"},"PricingReconcileBody":{"properties":{"updates":{"items":{"$ref":"#/components/schemas/PricingReconcileLineUpdate"},"type":"array","maxItems":2000,"minItems":1,"title":"Updates","description":"Egy vagy több ár-rekonciliációs frissítés."},"reviewer_note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reviewer Note","description":"Globális megjegyzés a teljes batch-re; az audit-history-ba mentődik."}},"type":"object","required":["updates"],"title":"PricingReconcileBody","description":"REQ-095: tömeges ár-rekonciliáció a workflow-template ON. Egy publikálás\nelőtti admin-akcióban több sort is lehet javítani. A response visszaadja\na frissített `quote_pricing_audit`-ot és a sablon publikálhatóságát."},"PricingReconcileLineUpdate":{"properties":{"index":{"type":"integer","minimum":0.0,"title":"Index","description":"line_item_templates[] index (0-based)."},"unit_price_net":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Unit Price Net","description":"Új nettó egységár stringként; `null` esetén `pricing_status` automatikusan `missing`."},"pricing_status":{"anyOf":[{"type":"string","enum":["priced","ambiguous","missing","zero"]},{"type":"null"}],"title":"Pricing Status","description":"Felülbírált pricing_status; ha nincs megadva, a rendszer az árból vezeti le."},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note","description":"Opcionális rövid megjegyzés (pl. `'beszerzői ajánlat alapján'`) — az audit-history-ba kerül."}},"type":"object","required":["index"],"title":"PricingReconcileLineUpdate","description":"REQ-095: egy `line_item_templates[i]` ár-rekonciliációs frissítése.\n\nAz `index` a sablon `line_item_templates[]` indexére mutat.\nA `unit_price_net` lehet decimális string (`\"12500\"`, `\"12.500,50\"`) vagy\n`None` (ha az admin szándékosan üresen hagyja — pl. külön tárgyalandó).\nA `pricing_status` opcionális; ha nincs megadva, az új árból automatikusan\nlevezetett érték kerül a sablonba (>0 → `priced`, 0 → `zero`, None → `missing`)."},"ProjectClientCreateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Id"},"person_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Id"}},"type":"object","title":"ProjectClientCreateRequest"},"ProjectClientUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Id"},"person_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Person Id"}},"type":"object","title":"ProjectClientUpdateRequest"},"ProjectCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"ProjectCreateRequest"},"ProjectSummaryExportPdfBody":{"properties":{"summary":{"type":"string","title":"Summary"},"project_name":{"type":"string","title":"Project Name"},"stats":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Stats"}},"type":"object","required":["summary","project_name"],"title":"ProjectSummaryExportPdfBody"},"ProjectSummaryStartBody":{"properties":{"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction"},"use_llm":{"type":"boolean","title":"Use Llm","default":true}},"type":"object","title":"ProjectSummaryStartBody"},"ProjectUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"ProjectUpdateRequest"},"PromptActivateRequest":{"properties":{"version":{"type":"integer","title":"Version"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},"type":"object","required":["version"],"title":"PromptActivateRequest"},"PromptDeactivateRequest":{"properties":{"version":{"type":"integer","title":"Version"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},"type":"object","required":["version"],"title":"PromptDeactivateRequest"},"PublicQuoteRequestStatusResponse":{"properties":{"request_id":{"type":"string","title":"Request Id"},"status":{"type":"string","title":"Status"},"questions_count":{"type":"integer","title":"Questions Count","default":0},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"contact_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Hint"},"active_proposal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Active Proposal Id"},"active_proposal_summary":{"anyOf":[{"$ref":"#/components/schemas/ActiveProposalSummaryPublic"},{"type":"null"}]}},"type":"object","required":["request_id","status"],"title":"PublicQuoteRequestStatusResponse","description":"Nyilvános tokenes ``GET …/public/requests/{id}`` válasz (REQ-083 / widget)."},"PublicRequestCreate":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"workflow_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Template Id"},"questions_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Questions Json","description":"Strukturált intake; a szerver séma szerint tárolja (widget / integráció)."}},"type":"object","title":"PublicRequestCreate"},"PublicRequestResponse":{"properties":{"request_id":{"type":"string","title":"Request Id"},"status":{"type":"string","title":"Status"},"status_url":{"type":"string","title":"Status Url"},"message":{"type":"string","title":"Message","default":"Köszönjük, megkaptuk az igényét."},"expected_human_response":{"type":"string","title":"Expected Human Response","default":"Munkanapokon általában 1–2 napon belül felvesszük a kapcsolatot."},"contact_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Hint"}},"type":"object","required":["request_id","status","status_url"],"title":"PublicRequestResponse"},"PublicSettingsUpdateRequest":{"properties":{"rate_limit_defaults":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rate Limit Defaults"},"origin_policy_defaults":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Origin Policy Defaults"},"retrieval_defaults":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Retrieval Defaults"},"debug_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Debug Mode"}},"type":"object","title":"PublicSettingsUpdateRequest","description":"Public settings update request model"},"PublicWidgetTokenCreateRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"allowed_origins":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Origins"},"rate_limit_policy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rate Limit Policy Id"},"requests_per_minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Requests Per Minute"},"requests_per_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Requests Per Hour"},"quota_per_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quota Per Hour"}},"type":"object","required":["tenant_id"],"title":"PublicWidgetTokenCreateRequest","description":"Public Widget Token create request model"},"PublicWidgetTokenUpdateRequest":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"allowed_origins":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Origins"},"rate_limit_policy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rate Limit Policy Id"},"requests_per_minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Requests Per Minute"},"requests_per_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Requests Per Hour"},"quota_per_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quota Per Hour"}},"type":"object","title":"PublicWidgetTokenUpdateRequest","description":"Public Widget Token update request model"},"QuoteBillingProfileUpdate":{"properties":{"company_name":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Company Name"},"country":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Country"},"tax_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tax Id"},"address_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Address Json"},"default_currency":{"anyOf":[{"type":"string","maxLength":8},{"type":"null"}],"title":"Default Currency"},"invoice_email":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Invoice Email"},"nav_integration_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Nav Integration Enabled"},"nav_api_credentials_ref":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Nav Api Credentials Ref"},"header_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Header Html"},"footer_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Footer Html"}},"type":"object","title":"QuoteBillingProfileUpdate"},"QuoteIntakeHandoffRequest":{"properties":{"session_id":{"type":"string","maxLength":256,"minLength":4,"pattern":"^[a-zA-Z0-9_.-]{4,256}$","title":"Session Id","description":"Widget / belső chat session azonosító — path traversal és vezérlőkarakterek nélkül."},"name":{"type":"string","maxLength":200,"minLength":2,"title":"Name"},"email":{"type":"string","maxLength":255,"minLength":3,"title":"Email"},"phone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Phone"},"consent_privacy":{"type":"boolean","title":"Consent Privacy","default":false},"consent_non_binding":{"type":"boolean","title":"Consent Non Binding","default":false},"workflow_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Template Id"},"request_note_hu":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Request Note Hu"},"delivery_requested":{"type":"boolean","title":"Delivery Requested","default":false},"shipping_address":{"anyOf":[{"$ref":"#/components/schemas/ShippingAddressHandoff"},{"type":"null"}]}},"type":"object","required":["session_id","name","email"],"title":"QuoteIntakeHandoffRequest","description":"Belső chat session quote_intake → quote_request (docs/quote-intake-mvp-spec.md)."},"QuoteIntakeHandoffResponse":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","title":"Status"},"workflow_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Template Id"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"},"admin_hint":{"type":"string","title":"Admin Hint","description":"Régi, tab-only útmutató (megmarad kompatibilitásra).","default":"/admin?tab=quote-module"},"admin_open_path":{"type":"string","title":"Admin Open Path","description":"Relatív útvonal request ID-val (pl. /admin?tab=quote-module&request=…)."},"admin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Url","description":"FRONTEND_URL + admin_open_path, ha a szerver ismeri a bázis URL-t."}},"type":"object","required":["id","status","admin_open_path"],"title":"QuoteIntakeHandoffResponse","description":"Belső handoff válasz — spec §10 admin_open_path / admin_url."},"QuoteIntakeRevalidateBody":{"properties":{"intake":{"additionalProperties":true,"type":"object","title":"Intake"},"rule_key":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Rule Key"}},"type":"object","required":["intake"],"title":"QuoteIntakeRevalidateBody"},"QuoteIntakeSessionPatchBody":{"properties":{"session_id":{"type":"string","maxLength":256,"minLength":4,"pattern":"^[a-zA-Z0-9_.-]{4,256}$","title":"Session Id","description":"Belső chat session azonosító (JWT user_id + tenant scope szerint)."},"patch":{"additionalProperties":true,"type":"object","title":"Patch","description":"Részleges quote_intake (intake_profile / draft_snapshot / …) — merge_quote_intake_state."}},"type":"object","required":["session_id","patch"],"title":"QuoteIntakeSessionPatchBody","description":"CAT-6.1: UI-driven merge a session `quote_intake` blobra (LLM nélkül)."},"QuoteJobCreate":{"properties":{"job_type":{"type":"string","enum":["PROPOSAL_GENERATE_MULTROUND","ATTACHMENT_EXTRACT_XLSX"],"title":"Job Type"},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"attachment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachment Id"}},"type":"object","required":["job_type","idempotency_key"],"title":"QuoteJobCreate","description":"REQ-034 / M.4 — háttér job indítás (idempotens kulcs)."},"QuoteProposalPatch":{"properties":{"payload_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"},"regenerate_html":{"type":"boolean","title":"Regenerate Html","default":false},"status":{"anyOf":[{"type":"string","const":"ACTIVE"},{"type":"null"}],"title":"Status","description":"REQ-083: staff — PENDING_STAFF_APPROVAL → ACTIVE (ügyfélnek látható / QUOTED igény)."},"action":{"anyOf":[{"type":"string","enum":["OVERRIDE_COMPAT","EDIT_AND_REEVALUATE"]},{"type":"null"}],"title":"Action","description":"REQ-080 / M.7.7: OVERRIDE_COMPAT — compat BLOCK utáni auditált közzététel; EDIT_AND_REEVALUATE — staff szerkesztett payload + compat újraértékelés (payload_json kötelező, status nélkül)."},"reason_text":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Reason Text","description":"M.7.7: kötelező OVERRIDE_COMPAT és EDIT_AND_REEVALUATE esetén (min. 20 nem üres karakter)."},"attachment_note":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Attachment Note"}},"type":"object","title":"QuoteProposalPatch"},"QuotePublicAbandonBody":{"properties":{"quote_public_token":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Quote Public Token"},"abandon_token":{"type":"string","maxLength":4096,"minLength":16,"title":"Abandon Token"}},"type":"object","required":["abandon_token"],"title":"QuotePublicAbandonBody"},"QuotePublicAbandonSessionBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"}},"type":"object","required":["quote_public_token","session_id"],"title":"QuotePublicAbandonSessionBody"},"QuotePublicBrowseDomainBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"},"browse_domain_scope_id":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Browse Domain Scope Id"}},"type":"object","required":["quote_public_token","session_id"],"title":"QuotePublicBrowseDomainBody"},"QuotePublicHandoffBody":{"properties":{"session_id":{"type":"string","maxLength":256,"minLength":4,"pattern":"^[a-zA-Z0-9_.-]{4,256}$","title":"Session Id","description":"Widget / belső chat session azonosító — path traversal és vezérlőkarakterek nélkül."},"name":{"type":"string","maxLength":200,"minLength":2,"title":"Name"},"email":{"type":"string","maxLength":255,"minLength":3,"title":"Email"},"phone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Phone"},"consent_privacy":{"type":"boolean","title":"Consent Privacy","default":false},"consent_non_binding":{"type":"boolean","title":"Consent Non Binding","default":false},"workflow_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Template Id"},"request_note_hu":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Request Note Hu"},"delivery_requested":{"type":"boolean","title":"Delivery Requested","default":false},"shipping_address":{"anyOf":[{"$ref":"#/components/schemas/ShippingAddressHandoff"},{"type":"null"}]},"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"}},"type":"object","required":["session_id","name","email","quote_public_token"],"title":"QuotePublicHandoffBody"},"QuotePublicPatchRequest":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"},"patch":{"additionalProperties":true,"type":"object","title":"Patch"}},"type":"object","required":["quote_public_token","session_id","patch"],"title":"QuotePublicPatchRequest"},"QuotePublicPauseEmailBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"email":{"type":"string","maxLength":255,"minLength":3,"title":"Email"}},"type":"object","required":["quote_public_token","session_id","email"],"title":"QuotePublicPauseEmailBody"},"QuotePublicResumeBody":{"properties":{"quote_public_token":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Quote Public Token"},"resume_token":{"type":"string","maxLength":4096,"minLength":16,"title":"Resume Token"}},"type":"object","required":["resume_token"],"title":"QuotePublicResumeBody"},"QuotePublicReviewActionBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"},"request_id":{"type":"string","maxLength":64,"minLength":8,"title":"Request Id"},"note_hu":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Note Hu"}},"type":"object","required":["quote_public_token","session_id","request_id"],"title":"QuotePublicReviewActionBody"},"QuotePublicReviewCatalogPickBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"},"catalog_item_id":{"type":"string","maxLength":256,"minLength":1,"title":"Catalog Item Id"},"op":{"type":"string","maxLength":32,"title":"Op","default":"add"},"line_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Line Id"},"qty":{"anyOf":[{"type":"number","maximum":99999.0,"minimum":0.0},{"type":"null"}],"title":"Qty"},"fulfills_requirement_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Fulfills Requirement Id"}},"type":"object","required":["quote_public_token","session_id","catalog_item_id"],"title":"QuotePublicReviewCatalogPickBody"},"QuotePublicReviewFromTokenBody":{"properties":{"quote_public_token":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Quote Public Token"},"review_token":{"type":"string","maxLength":4096,"minLength":16,"title":"Review Token"}},"type":"object","required":["review_token"],"title":"QuotePublicReviewFromTokenBody"},"QuotePublicReviewPatchBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"},"patch":{"additionalProperties":true,"type":"object","title":"Patch"}},"type":"object","required":["quote_public_token","session_id","patch"],"title":"QuotePublicReviewPatchBody"},"QuotePublicReviewStartBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"request_id":{"type":"string","maxLength":64,"minLength":8,"title":"Request Id"}},"type":"object","required":["quote_public_token","request_id"],"title":"QuotePublicReviewStartBody"},"QuotePublicReviewTurnBody":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"type":"string","maxLength":256,"minLength":4,"title":"Session Id"},"text":{"type":"string","maxLength":4000,"minLength":1,"title":"Text"}},"type":"object","required":["quote_public_token","session_id","text"],"title":"QuotePublicReviewTurnBody"},"QuotePublicTokenCreate":{"properties":{"allowed_origins":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allowed Origins","description":"Vesszővel elválasztott Origin URL-ek (üres = minden)."},"rate_limit_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rate Limit Json","description":"Opcionális: requests_per_minute, requests_per_hour, ip_requests_per_minute."},"label_hu":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Label Hu","description":"Admin lista cím."},"display_intro_hu":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Display Intro Hu","description":"Widget beköszönő / intro szöveg."},"widget_config":{"anyOf":[{"$ref":"#/components/schemas/QuotePublicWidgetConfigBody"},{"type":"null"}]}},"type":"object","title":"QuotePublicTokenCreate"},"QuotePublicTokenUpdate":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"allowed_origins":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allowed Origins"},"rate_limit_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rate Limit Json"},"label_hu":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Label Hu"},"display_intro_hu":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Display Intro Hu"},"widget_config":{"anyOf":[{"$ref":"#/components/schemas/QuotePublicWidgetConfigBody"},{"type":"null"}]}},"type":"object","title":"QuotePublicTokenUpdate"},"QuotePublicTurnRequest":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"text":{"anyOf":[{"type":"string","maxLength":12000},{"type":"null"}],"title":"Text"},"ui_action":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Ui Action"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"}},"type":"object","required":["quote_public_token"],"title":"QuotePublicTurnRequest"},"QuotePublicWidgetConfigBody":{"properties":{"catalog_surface":{"anyOf":[{"type":"string","enum":["closed","open"]},{"type":"null"}],"title":"Catalog Surface","description":"Zárt (/quote-public) vs teljes katalógus (/quote-public-open) widget."},"label_hu":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Label Hu"},"display_intro_hu":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Display Intro Hu"},"welcome_title_hu":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Welcome Title Hu"},"theme_primary_color":{"anyOf":[{"type":"string","maxLength":7},{"type":"null"}],"title":"Theme Primary Color","description":"#RRGGBB"},"theme_background_color":{"anyOf":[{"type":"string","maxLength":7},{"type":"null"}],"title":"Theme Background Color"},"fab_color":{"anyOf":[{"type":"string","maxLength":7},{"type":"null"}],"title":"Fab Color"},"fab_position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fab Position","description":"bottom_right | bottom_left"},"launcher_label_hu":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Launcher Label Hu"},"open_on_load":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Open On Load"}},"type":"object","title":"QuotePublicWidgetConfigBody","description":"Beágyazott widget megjelenés — tenant admin (widget_config JSON)."},"QuoteRequestCreate":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"workflow_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Template Id"},"questions_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Questions Json","description":"Strukturált intake (intake_profile, draft_snapshot) — dict vagy JSON string (REQ-092)."},"attachment_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attachment Ids","description":"Nincs implementálva: üres vagy elhagyva. Nem üres lista → 422 (használd a POST …/attachments végpontot)."}},"type":"object","title":"QuoteRequestCreate"},"QuoteRequestPatch":{"properties":{"status":{"anyOf":[{"type":"string","enum":["RECEIVED","NEEDS_INFO","QUOTED","GENERATION_FAILED","PENDING_STAFF_APPROVAL"]},{"type":"null"}],"title":"Status"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Ha megadod, lecseréli a teljes igény szöveget. Üres string is érvényes."},"text_append":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Append"},"workflow_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Template Id","description":"Új törzs sablon ID; küldj explicit null-t a leválasztáshoz."},"questions_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Questions Json","description":"Chat/widget intake — dict vagy JSON string; szerver validálja (REQ-092)."}},"type":"object","title":"QuoteRequestPatch"},"RagConfigCreateRequest":{"properties":{"branch_name":{"type":"string","title":"Branch Name","description":"Branch neve (egyedi)"},"min_score":{"type":"number","maximum":1.0,"minimum":0.1,"title":"Min Score","default":0.48},"top_k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Top K","default":4},"enable_multi_query":{"type":"boolean","title":"Enable Multi Query","default":true},"enable_llm_enhancement":{"type":"boolean","title":"Enable Llm Enhancement","default":true},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json","description":"Extra: rag_sandbox (context_window_before/after, enable_multi_answer, multi_answer_candidates), retrieval overrides"}},"type":"object","required":["branch_name"],"title":"RagConfigCreateRequest","description":"RAG konfiguráció létrehozási kérés"},"RagConfigResponse":{"properties":{"id":{"type":"integer","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"branch_name":{"type":"string","title":"Branch Name"},"is_active":{"type":"boolean","title":"Is Active"},"min_score":{"type":"number","title":"Min Score"},"top_k":{"type":"integer","title":"Top K"},"enable_multi_query":{"type":"boolean","title":"Enable Multi Query"},"enable_llm_enhancement":{"type":"boolean","title":"Enable Llm Enhancement"},"benchmark_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Benchmark Score"},"benchmark_test_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Test Count"},"benchmark_passed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Benchmark Passed Count"},"benchmark_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Benchmark Date"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","tenant_id","branch_name","is_active","min_score","top_k","enable_multi_query","enable_llm_enhancement","benchmark_score","benchmark_test_count","benchmark_passed_count","benchmark_date","notes","created_at","updated_at"],"title":"RagConfigResponse","description":"RAG konfiguráció válasz"},"RagConfigUpdateRequest":{"properties":{"min_score":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.1},{"type":"null"}],"title":"Min Score"},"top_k":{"anyOf":[{"type":"integer","maximum":20.0,"minimum":1.0},{"type":"null"}],"title":"Top K"},"enable_multi_query":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Multi Query"},"enable_llm_enhancement":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Llm Enhancement"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"config_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config Json"}},"type":"object","title":"RagConfigUpdateRequest","description":"RAG konfiguráció frissítési kérés"},"RagReindexRequest":{"properties":{"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},"type":"object","title":"RagReindexRequest","description":"RAG teljes újraindexelés – opcionális tenant (csak SYSTEM_ADMIN)"},"RegisterRequest":{"properties":{"username":{"type":"string","title":"Username"},"tenant_id":{"type":"string","title":"Tenant Id"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"password_confirm":{"type":"string","title":"Password Confirm"},"accepted_privacy_and_terms":{"type":"boolean","title":"Accepted Privacy And Terms","default":false}},"type":"object","required":["username","tenant_id","email","password","password_confirm"],"title":"RegisterRequest","description":"Regisztráció request"},"ReindexRequest":{"properties":{"doc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Id"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},"type":"object","title":"ReindexRequest","description":"Reindex request model"},"RequestScrapeBody":{"properties":{"full_scrape":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Full Scrape"},"product_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Product Ids"}},"type":"object","title":"RequestScrapeBody"},"ResendConfirmationRequest":{"properties":{"email":{"type":"string","title":"Email"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"}},"type":"object","required":["email"],"title":"ResendConfirmationRequest","description":"Megerősítő link újraküldés request"},"ReservationAllocationDetail":{"properties":{"unit_id":{"type":"string","title":"Unit Id"},"unit_name":{"type":"string","title":"Unit Name"}},"type":"object","required":["unit_id","unit_name"],"title":"ReservationAllocationDetail"},"ReservationResponse":{"properties":{"id":{"type":"string","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"booking_type_id":{"type":"string","title":"Booking Type Id"},"customer_id":{"type":"string","title":"Customer Id"},"status":{"type":"string","title":"Status"},"payment_status":{"type":"string","title":"Payment Status"},"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"check_in_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Check In Date"},"check_out_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Check Out Date"},"party_size":{"type":"integer","title":"Party Size"},"channel":{"type":"string","title":"Channel"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"customer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Name"},"customer_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Email"},"customer_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Phone"},"booking_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Booking Type Name"},"unit_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Summary","description":"Admin lista: foglalt egységek nevei (több: vesszővel)."},"panel_multi_unit_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Panel Multi Unit Session Id","description":"Panel multi-unit: nyitott session UUID a következő rész-foglaláshoz."},"panel_multi_unit_remaining_party":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Panel Multi Unit Remaining Party","description":"Panel multi-unit: hátralévő fő (0 = kész)."},"panel_multi_unit_session_expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Panel Multi Unit Session Expires At","description":"Panel multi-unit: a nyitott session lejárata (UTC). Csúszik minden sikeres rész-foglalásnál; max. néhány óra az első lépéstől."}},"type":"object","required":["id","tenant_id","booking_type_id","customer_id","status","payment_status","party_size","channel","created_at"],"title":"ReservationResponse"},"ReservationStatusResponse":{"properties":{"status":{"type":"string","title":"Status"},"payment_status":{"type":"string","title":"Payment Status"}},"type":"object","required":["status","payment_status"],"title":"ReservationStatusResponse"},"ResetIndexRequest":{"properties":{"doc_id":{"type":"string","title":"Doc Id"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","default":"internal"}},"type":"object","required":["doc_id"],"title":"ResetIndexRequest","description":"Index reset kérés – doc_id chunkjainak törlése, hogy újra lehessen indexelni."},"ResetIndexingJobsToPendingRequest":{"properties":{"job_ids":{"items":{"type":"string"},"type":"array","title":"Job Ids"}},"type":"object","required":["job_ids"],"title":"ResetIndexingJobsToPendingRequest","description":"Beragadt (PROCESSING) jobok visszaállítása PENDING-re."},"ResetPasswordRequest":{"properties":{"token":{"type":"string","title":"Token"},"new_password":{"type":"string","title":"New Password"},"new_password_confirm":{"type":"string","title":"New Password Confirm"}},"type":"object","required":["token","new_password","new_password_confirm"],"title":"ResetPasswordRequest","description":"Jelszó visszaállítás request"},"ResponseEnvelope":{"properties":{"trace_id":{"type":"string","title":"Trace Id","description":"Unique trace identifier"},"mode":{"type":"string","enum":["DOC","HISTORY","CREATIVE","TOOL_PROPOSAL","SHOPPING","SCRIPT","TASKS"],"title":"Mode"},"status_code":{"type":"string","enum":["OK","NO_RESULT_DOC","NO_RESULT_PUBLIC","POLICY_DENY","TOOL_CONFIRM_REQUIRED","RETRIEVE_ERROR","FILTER_ENFORCEMENT_FAILED","CROSS_TENANT_LEAK_DETECTED","NO_PRODUCTS","NO_GROUP","NO_INPUT","ERROR"],"title":"Status Code"},"text":{"type":"string","title":"Text"},"sources":{"items":{"$ref":"#/components/schemas/SourceDocument"},"type":"array","title":"Sources"},"tool_proposal":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Proposal"},"ux_hints":{"additionalProperties":true,"type":"object","title":"Ux Hints"},"blocked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blocked Reason"},"internal_debug":{"anyOf":[{},{"type":"null"}],"title":"Internal Debug"},"archive_items":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Archive Items"},"deleted_items":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Deleted Items"},"restored_items":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Restored Items"},"products":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Products"},"tasks_projects":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tasks Projects"},"tasks_list":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tasks List"},"tasks_created":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tasks Created"},"clients_list":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Clients List"}},"additionalProperties":false,"type":"object","required":["mode","status_code","text"],"title":"ResponseEnvelope","description":"ResponseEnvelope - fix mezőnevekkel\n\nChat / widget válasz — nem tartalmaz foglalás-modul payloadot (booking_data).\nA manuális foglalás a booking REST API-kon keresztül történik.","example":{"mode":"DOC","sources":[],"status_code":"OK","text":"Válasz szövege","trace_id":"550e8400-e29b-41d4-a716-446655440000","ux_hints":{}}},"RetrieveRequest":{"properties":{"query":{"type":"string","title":"Query"},"tenant_id":{"type":"string","title":"Tenant Id"},"user_id":{"type":"string","title":"User Id"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","default":"internal"},"top_k":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top K","default":5},"user_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Role"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel","default":"internal"}},"type":"object","required":["query","tenant_id","user_id"],"title":"RetrieveRequest","description":"Retrieve request model"},"SampleCreate":{"properties":{"content":{"type":"string","minLength":1,"title":"Content"}},"type":"object","required":["content"],"title":"SampleCreate"},"SampleResponse":{"properties":{"id":{"type":"string","title":"Id"},"group_id":{"type":"string","title":"Group Id"},"content":{"type":"string","title":"Content"},"extraction_result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extraction Result"},"status":{"type":"string","title":"Status"},"approved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By"},"approved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Approved At"},"rejected_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejected By"},"rejected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Rejected At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","group_id","content","extraction_result","status","approved_by","approved_at","rejected_by","rejected_at","created_at","updated_at"],"title":"SampleResponse"},"SelfModifyReservationRequest":{"properties":{"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},"type":"object","title":"SelfModifyReservationRequest"},"ShippingAddressHandoff":{"properties":{"country_hu":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Country Hu","default":"Magyarország"},"country_code":{"anyOf":[{"type":"string","maxLength":8},{"type":"null"}],"title":"Country Code"},"postal_code":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Postal Code"},"city":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"City"},"street_address_hu":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Street Address Hu"},"address_note_hu":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Address Note Hu"}},"type":"object","title":"ShippingAddressHandoff"},"ShoppingProductCard":{"properties":{"product_id":{"type":"string","title":"Product Id"},"name":{"type":"string","title":"Name"},"price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price"},"currency":{"type":"string","title":"Currency","default":"HUF"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"product_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Url"},"description":{"type":"string","title":"Description","default":""},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"in_stock":{"type":"boolean","title":"In Stock","default":true},"score":{"type":"number","title":"Score","default":0.0}},"type":"object","required":["product_id","name"],"title":"ShoppingProductCard","description":"Termék kártya a /shopping válaszban \n\nF6: Shopping Module "},"ShoppingRequest":{"properties":{"text":{"type":"string","title":"Text"},"session_id":{"type":"string","title":"Session Id"},"public_widget_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Widget Token"},"token_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Id"}},"type":"object","required":["text","session_id"],"title":"ShoppingRequest","description":"/shopping endpoint request \n\nF6: Shopping Module "},"ShoppingResponse":{"properties":{"trace_id":{"type":"string","title":"Trace Id"},"status_code":{"type":"string","title":"Status Code"},"body":{"$ref":"#/components/schemas/ShoppingResponseBody"},"ux_context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ux Context"}},"type":"object","required":["trace_id","status_code","body"],"title":"ShoppingResponse","description":"/shopping endpoint válasz \n\nF6: Shopping Module "},"ShoppingResponseBody":{"properties":{"text":{"type":"string","title":"Text"},"products":{"items":{"$ref":"#/components/schemas/ShoppingProductCard"},"type":"array","title":"Products","default":[]}},"type":"object","required":["text"],"title":"ShoppingResponseBody","description":"/shopping válasz body \n\nF6: Shopping Module "},"SlotAvailabilityResponse":{"properties":{"booking_type_id":{"type":"string","title":"Booking Type Id"},"date":{"type":"string","format":"date","title":"Date"},"slots":{"items":{"$ref":"#/components/schemas/SlotDTO"},"type":"array","title":"Slots"}},"type":"object","required":["booking_type_id","date","slots"],"title":"SlotAvailabilityResponse"},"SlotDTO":{"properties":{"start_time":{"type":"string","format":"date-time","title":"Start Time"},"end_time":{"type":"string","format":"date-time","title":"End Time"},"duration_min":{"type":"integer","title":"Duration Min"},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids"},"unit_labels":{"anyOf":[{"items":{"$ref":"#/components/schemas/UnitLabelItem"},"type":"array"},{"type":"null"}],"title":"Unit Labels","description":"A unit_ids sorrendjében: megjelenítési név és kapacitás."},"booking_type_id":{"type":"string","title":"Booking Type Id"},"available_capacity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Available Capacity","description":"slot: tipikusan nincs kitöltve. interval: az egység max. létszáma egy foglalásra (capacity), nem „maradék hely” másik foglalásnak."},"base_price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Base Price"},"currency":{"type":"string","title":"Currency","default":"HUF"}},"type":"object","required":["start_time","end_time","duration_min","booking_type_id"],"title":"SlotDTO","description":"Szabad slot (slot / interval módhoz) – AvailabilityService adja vissza."},"SocketCompatPairCreateBody":{"properties":{"cpu_socket":{"type":"string","maxLength":64,"minLength":1,"title":"Cpu Socket"},"board_socket":{"type":"string","maxLength":64,"minLength":1,"title":"Board Socket"}},"type":"object","required":["cpu_socket","board_socket"],"title":"SocketCompatPairCreateBody","description":"REQ-080 M.7.4: CPU↔alaplap foglalat páros a ``quote_socket_compat`` táblában."},"SocketCompatPairDeleteBody":{"properties":{"cpu_socket":{"type":"string","maxLength":64,"minLength":1,"title":"Cpu Socket"},"board_socket":{"type":"string","maxLength":64,"minLength":1,"title":"Board Socket"}},"type":"object","required":["cpu_socket","board_socket"],"title":"SocketCompatPairDeleteBody"},"SourceDocument":{"properties":{"doc_id":{"type":"string","title":"Doc Id"},"chunk_id":{"type":"string","title":"Chunk Id"},"chunk_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Index"},"filename":{"type":"string","title":"Filename"},"file_path":{"type":"string","title":"File Path"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"content_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Hash"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","required":["doc_id","chunk_id","filename","file_path"],"title":"SourceDocument","description":"Source document/chunk model"},"SuggestFromSampleBody":{"properties":{"sample_text":{"type":"string","minLength":10,"title":"Sample Text"},"billing_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Tenant Id","description":"SYSTEM_ADMIN: explicit tenant a usage / naplózáshoz (ajánlott)."},"suggest_mode":{"type":"string","enum":["task_outline","priced_sample"],"title":"Suggest Mode","description":"task_outline: rövid feladat / szolgáltatás leírás → folyamat, anyagjavaslatok, mértékegység; árak helyett 0.00. priced_sample: hosszabb minta árajánlat, a szövegben lévő nettó árak másolhatók.","default":"task_outline"}},"type":"object","required":["sample_text"],"title":"SuggestFromSampleBody"},"SurveyFieldCreateRequest":{"properties":{"field_type":{"type":"string","title":"Field Type"},"label":{"type":"string","title":"Label","default":""},"required_field":{"type":"boolean","title":"Required Field","default":false},"options_json":{"anyOf":[{},{"type":"null"}],"title":"Options Json"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["field_type"],"title":"SurveyFieldCreateRequest"},"SurveyFieldUpdateRequest":{"properties":{"field_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field Type"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"required_field":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Required Field"},"options_json":{"anyOf":[{},{"type":"null"}],"title":"Options Json"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"SurveyFieldUpdateRequest"},"SurveyGroupCreateRequest":{"properties":{"title":{"type":"string","title":"Title","default":""},"user_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Description"},"llm_description":{"type":"string","title":"Llm Description","default":""},"is_active":{"type":"boolean","title":"Is Active","default":true},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","title":"SurveyGroupCreateRequest"},"SurveyGroupUpdateRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"user_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Description"},"llm_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Description"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"SurveyGroupUpdateRequest"},"SurveyQuestionnaireCreateRequest":{"properties":{"group_id":{"type":"string","title":"Group Id"},"title":{"type":"string","title":"Title","default":""},"is_active":{"type":"boolean","title":"Is Active","default":true},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["group_id"],"title":"SurveyQuestionnaireCreateRequest"},"SurveyQuestionnaireUpdateRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"},"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"}},"type":"object","title":"SurveyQuestionnaireUpdateRequest"},"SurveySettingsUpdateRequest":{"properties":{"info_surveys_enabled":{"type":"boolean","title":"Info Surveys Enabled"},"survey_notification_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Survey Notification Email"}},"type":"object","required":["info_surveys_enabled"],"title":"SurveySettingsUpdateRequest"},"SystemConfigRequest":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config"},"version":{"type":"string","title":"Version"}},"type":"object","required":["config","version"],"title":"SystemConfigRequest","description":"System config save request"},"SystemConfigRestoreRequest":{"properties":{"backup_id":{"type":"string","title":"Backup Id"}},"type":"object","required":["backup_id"],"title":"SystemConfigRestoreRequest","description":"System config restore request"},"SystemConfigValidateRequest":{"properties":{"config":{"additionalProperties":true,"type":"object","title":"Config"}},"type":"object","required":["config"],"title":"SystemConfigValidateRequest","description":"System config validate request"},"SystemTemplateCreateRequest":{"properties":{"slug":{"type":"string","maxLength":50,"minLength":1,"title":"Slug"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"industry":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Industry"},"default_booking_types":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Booking Types"},"default_intake_schemas":{"items":{},"type":"array","title":"Default Intake Schemas"},"default_policies":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Policies"},"default_availability_rules":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Availability Rules"},"default_units":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Default Units"}},"type":"object","required":["slug","name"],"title":"SystemTemplateCreateRequest"},"SystemTemplateUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"industry":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Industry"},"default_booking_types":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Default Booking Types"},"default_intake_schemas":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Default Intake Schemas"},"default_policies":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Default Policies"},"default_availability_rules":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Default Availability Rules"},"default_units":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Default Units"}},"type":"object","title":"SystemTemplateUpdateRequest"},"TaskBulkUpdateRequest":{"properties":{"task_ids":{"items":{"type":"string"},"type":"array","title":"Task Ids"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"assignee_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Id"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"due_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due At"},"clear_due_at":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clear Due At"}},"type":"object","required":["task_ids"],"title":"TaskBulkUpdateRequest"},"TaskCreateRequest":{"properties":{"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"},"assignee_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Id"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority","default":"NORMAL"},"due_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due At"},"phase_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase Id"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","required":["title"],"title":"TaskCreateRequest"},"TaskMessagesSummaryStartBody":{"properties":{"use_llm":{"type":"boolean","title":"Use Llm","default":true}},"type":"object","title":"TaskMessagesSummaryStartBody"},"TaskSummaryExportPdfBody":{"properties":{"summary":{"type":"string","title":"Summary"}},"type":"object","required":["summary"],"title":"TaskSummaryExportPdfBody"},"TaskUpdateRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"assignee_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Id"},"due_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due At"},"clear_due_at":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clear Due At"},"phase_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase Id"},"clear_phase_id":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clear Phase Id"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","title":"TaskUpdateRequest"},"TemplateCreateRequest":{"properties":{"template_id":{"type":"string","title":"Template Id"},"template_text":{"type":"string","title":"Template Text"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["template_id","template_text"],"title":"TemplateCreateRequest","description":"Template create request model"},"TenantDeleteRequest":{"properties":{"confirmation":{"type":"string","title":"Confirmation"}},"type":"object","required":["confirmation"],"title":"TenantDeleteRequest","description":"Megerősítés a tenant teljes törléséhez."},"TenantDisplayProfileUpdateRequest":{"properties":{"display_name":{"type":"string","title":"Display Name","default":""},"contact_name":{"type":"string","title":"Contact Name","default":""},"company_name":{"type":"string","title":"Company Name","default":""},"tax_number":{"type":"string","title":"Tax Number","default":""},"address_zip":{"type":"string","title":"Address Zip","default":""},"address_city":{"type":"string","title":"Address City","default":""},"address_street":{"type":"string","title":"Address Street","default":""},"address_country":{"type":"string","title":"Address Country","default":"Magyarország"}},"type":"object","title":"TenantDisplayProfileUpdateRequest"},"TenantTokenTopupRequest":{"properties":{"amount_ft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Ft"},"token_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Token Amount"}},"type":"object","title":"TenantTokenTopupRequest","description":"Egyenleg feltöltés kérés (Ft). amount_ft vagy token_amount (deprecated, kompat)."},"ToggleStockRequest":{"properties":{"in_stock":{"type":"boolean","title":"In Stock"}},"type":"object","required":["in_stock"],"title":"ToggleStockRequest","description":"Toggle stock status request"},"ToolConfirmRequest":{"properties":{"tool_run_id":{"type":"string","title":"Tool Run Id"},"modified_parameters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Modified Parameters"}},"type":"object","required":["tool_run_id"],"title":"ToolConfirmRequest","description":"Tool confirm request model"},"TtsJobCreateResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"}},"type":"object","required":["job_id","status"],"title":"TtsJobCreateResponse"},"TtsJobDetail":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status":{"type":"string","title":"Status"},"status_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Label"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"},"progress_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Progress Pct"},"voice_id":{"type":"string","title":"Voice Id"},"voice_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Label"},"language":{"type":"string","title":"Language"},"speed":{"type":"number","title":"Speed"},"char_count":{"type":"integer","title":"Char Count"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"elapsed_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Elapsed Sec"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview"},"estimated_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Estimated Hint"},"has_audio":{"type":"boolean","title":"Has Audio","default":false},"source_text":{"type":"string","title":"Source Text"},"mcp_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcp Job Id"},"result_audio_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Result Audio Bytes"},"result_sample_rate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Result Sample Rate"},"result_mime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Mime"}},"type":"object","required":["id","status","voice_id","language","speed","char_count","source_text"],"title":"TtsJobDetail"},"TtsJobListItem":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status":{"type":"string","title":"Status"},"status_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Label"},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message"},"progress_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Progress Pct"},"voice_id":{"type":"string","title":"Voice Id"},"voice_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Label"},"language":{"type":"string","title":"Language"},"speed":{"type":"number","title":"Speed"},"char_count":{"type":"integer","title":"Char Count"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"elapsed_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Elapsed Sec"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview"},"estimated_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Estimated Hint"},"has_audio":{"type":"boolean","title":"Has Audio","default":false}},"type":"object","required":["id","status","voice_id","language","speed","char_count"],"title":"TtsJobListItem"},"TtsJobListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TtsJobListItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"TtsJobListResponse"},"UnitLabelItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"capacity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Capacity"}},"type":"object","required":["id"],"title":"UnitLabelItem","description":"Egység UUID ↔ megjelenítési név / kapacitás (slot payload, LLM + UI)."},"UnitScheduleEntry":{"properties":{"reservation_id":{"type":"string","title":"Reservation Id"},"customer_name":{"type":"string","title":"Customer Name"},"booking_type_name":{"type":"string","title":"Booking Type Name"},"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"status":{"type":"string","title":"Status"}},"type":"object","required":["reservation_id","customer_name","booking_type_name","status"],"title":"UnitScheduleEntry"},"UpdateCalendarEventBody":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"}},"type":"object","title":"UpdateCalendarEventBody","description":"Body for PATCH /admin/me/calendar/events/{event_uid}"},"UserCreateRequest":{"properties":{"user_id":{"type":"string","title":"User Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"role":{"type":"string","title":"Role"},"password":{"type":"string","title":"Password"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["user_id","tenant_id","role","password"],"title":"UserCreateRequest","description":"User create request model"},"UserUpdateRequest":{"properties":{"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","title":"UserUpdateRequest","description":"User update request model"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VoiceItem":{"properties":{"id":{"type":"string","title":"Id"},"language":{"type":"string","title":"Language","default":"hu"},"label":{"type":"string","title":"Label"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","label"],"title":"VoiceItem"},"VoicesResponse":{"properties":{"voices":{"items":{"$ref":"#/components/schemas/VoiceItem"},"type":"array","title":"Voices"},"default_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Voice Id"}},"type":"object","required":["voices"],"title":"VoicesResponse"},"WebCrawlCreateRequest":{"properties":{"url":{"type":"string","title":"Url"},"urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Urls"},"depth":{"type":"integer","title":"Depth","default":2},"max_pages":{"type":"integer","title":"Max Pages","default":100},"scope":{"type":"string","title":"Scope","default":"public"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["url"],"title":"WebCrawlCreateRequest"},"WebshopConfigCreateRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url"},"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform","default":"generic"},"scrape_schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scrape Schedule"},"scraper_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Scraper Config"},"feed_urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Feed Urls"},"feed_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feed Format"}},"type":"object","required":["tenant_id"],"title":"WebshopConfigCreateRequest","description":"Webshop konfiguráció létrehozása. Feed-only: feed_urls + feed_format; base_url/platform opcionális."},"WebshopConfigUpdateRequest":{"properties":{"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url"},"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform"},"scrape_schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scrape Schedule"},"scraper_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Scraper Config"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"feed_urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Feed Urls"},"feed_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feed Format"}},"type":"object","title":"WebshopConfigUpdateRequest","description":"Webshop konfiguráció frissítése request"},"WidgetChatRequest":{"properties":{"text":{"type":"string","title":"Text","default":""},"token_id":{"type":"string","title":"Token Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"ui_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ui Action"}},"type":"object","required":["token_id"],"title":"WidgetChatRequest","description":"Widget Chat Request - egyszerűsített request token_id-val"},"WidgetSurveySubmitRequest":{"properties":{"token_id":{"type":"string","title":"Token Id"},"session_id":{"type":"string","title":"Session Id"},"questionnaire_id":{"type":"string","title":"Questionnaire Id"},"answers":{"additionalProperties":true,"type":"object","title":"Answers"}},"type":"object","required":["token_id","session_id","questionnaire_id","answers"],"title":"WidgetSurveySubmitRequest"},"WorkflowImportBody":{"properties":{"marketplace_template_id":{"type":"string","title":"Marketplace Template Id"},"import_mode":{"type":"string","enum":["COPY","FORK"],"title":"Import Mode","default":"COPY"}},"type":"object","required":["marketplace_template_id"],"title":"WorkflowImportBody"},"WorkflowProcessCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"deadline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deadline"},"phases":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Phases"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"edges":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Edges"}},"type":"object","required":["name"],"title":"WorkflowProcessCreateRequest"},"WorkflowRuleBatchRequest":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/WorkflowRuleCreateRequest"},"type":"array","title":"Rules"},"process":{"anyOf":[{"$ref":"#/components/schemas/WorkflowProcessCreateRequest"},{"type":"null"}]},"tasks":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tasks"},"internal_file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Internal File Id"}},"type":"object","required":["rules"],"title":"WorkflowRuleBatchRequest","description":"Tömb workflow szabály létrehozásához (dokumentumból → Összes mentése)."},"WorkflowRuleCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"trigger_type":{"type":"string","title":"Trigger Type"},"actions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Actions"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"trigger_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trigger Config"},"conditions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Conditions"},"definition_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Definition Json"},"process_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Id"},"phase_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase Id"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","required":["name","trigger_type","actions"],"title":"WorkflowRuleCreateRequest"},"WorkflowRuleUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"trigger_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Type"},"trigger_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trigger Config"},"conditions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Conditions"},"actions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Actions"},"definition_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Definition Json"},"process_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process Id"},"phase_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phase Id"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"}},"type":"object","title":"WorkflowRuleUpdateRequest"},"WorkflowSuggestEditRequest":{"properties":{"current_rule":{"additionalProperties":true,"type":"object","title":"Current Rule"},"user_message":{"type":"string","title":"User Message"}},"type":"object","required":["current_rule","user_message"],"title":"WorkflowSuggestEditRequest","description":"Jelenlegi szabály + felhasználói kérés az LLM javaslathoz."},"WorkflowSuggestTemplatesRequest":{"properties":{"query":{"type":"string","title":"Query"},"projects":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Projects"}},"type":"object","required":["query"],"title":"WorkflowSuggestTemplatesRequest"},"WorkflowTemplateCreate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Title"},"marketplace_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Marketplace Template Id"},"import_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Import Mode","description":"COPY vagy FORK"},"template_kind":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Template Kind"},"usage_brief_hu":{"anyOf":[{"type":"string","maxLength":50000},{"type":"null"}],"title":"Usage Brief Hu"},"payload_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"}},"type":"object","title":"WorkflowTemplateCreate"},"WorkflowTemplateCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"definition_json":{"additionalProperties":true,"type":"object","title":"Definition Json"}},"type":"object","required":["name","definition_json"],"title":"WorkflowTemplateCreateRequest","description":"Folyamatsablon – teljes snapshot (process, rules, tasks, edges)."},"WorkflowTemplateUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Title"},"template_kind":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Template Kind"},"usage_brief_hu":{"anyOf":[{"type":"string","maxLength":50000},{"type":"null"}],"title":"Usage Brief Hu"},"payload_json":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload Json"}},"type":"object","title":"WorkflowTemplateUpdate"},"WorkflowTemplateUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"definition_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Definition Json"}},"type":"object","title":"WorkflowTemplateUpdateRequest"},"src__api__quote_public_open_widget_router__QuotePublicPatchRequest":{"properties":{"quote_public_token":{"type":"string","maxLength":512,"minLength":8,"title":"Quote Public Token"},"session_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Session Id"},"patch":{"additionalProperties":true,"type":"object","title":"Patch"}},"type":"object","required":["quote_public_token","patch"],"title":"QuotePublicPatchRequest"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}