{"openapi":"3.1.0","info":{"title":"Traffic Ecosystem SuperApp 2.0","version":"2.0.0"},"paths":{"/api/v1/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_api_v1_auth_register_post","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"password","in":"query","required":true,"schema":{"type":"string","title":"Password"}},{"name":"first_name","in":"query","required":true,"schema":{"type":"string","title":"First Name"}},{"name":"last_name","in":"query","required":true,"schema":{"type":"string","title":"Last Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/verify":{"get":{"tags":["auth"],"summary":"Verify Account","operationId":"verify_account_api_v1_auth_verify_get","parameters":[{"name":"token","in":"query","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"}}}}}}},"/api/v1/users/me":{"get":{"tags":["users"],"summary":"Read Users Me","description":"Visszaadja a bejelentkezett felhasználó profilját (Hírnévvel!)","operationId":"read_users_me_api_v1_users_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}}}},"/api/v1/billing/balance":{"get":{"tags":["billing"],"summary":"Get Balance","description":"Visszaadja a felhasználó aktuális kreditegyenlegét és a Széfje (Cége) nevét.","operationId":"get_balance_api_v1_billing_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/billing/history":{"get":{"tags":["billing"],"summary":"Get History","description":"Kilistázza a kreditmozgásokat (bevételek, költések, voucherek).","operationId":"get_history_api_v1_billing_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/billing/vouchers/redeem":{"post":{"tags":["billing"],"summary":"Redeem Voucher","description":"Bevált egy kódot, és jóváírja az értékét a felhasználó egyenlegén.","operationId":"redeem_voucher_api_v1_billing_vouchers_redeem_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/vouchers/generate":{"post":{"tags":["billing"],"summary":"Generate Vouchers","description":"Tömeges voucher generálás az admin felületről.","operationId":"generate_vouchers_api_v1_billing_vouchers_generate_post","parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Count"}},{"name":"value","in":"query","required":false,"schema":{"type":"number","default":500.0,"title":"Value"}},{"name":"batch_name","in":"query","required":false,"schema":{"type":"string","default":"ADMIN_GEN","title":"Batch Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vehicles/search/brands":{"get":{"tags":["vehicles"],"summary":"Search Brands","operationId":"search_brands_api_v1_vehicles_search_brands_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vehicles/search/providers":{"get":{"tags":["vehicles"],"summary":"Search Providers","operationId":"search_providers_api_v1_vehicles_search_providers_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vehicles/register":{"post":{"tags":["vehicles"],"summary":"Register User Vehicle","operationId":"register_user_vehicle_api_v1_vehicles_register_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/fleet/vehicles":{"get":{"tags":["fleet"],"summary":"Get My Vehicles","operationId":"get_my_vehicles_api_v1_fleet_vehicles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"post":{"tags":["fleet"],"summary":"Add Vehicle","operationId":"add_vehicle_api_v1_fleet_vehicles_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Vehicle In"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/expenses/add":{"post":{"tags":["expenses"],"summary":"Add Expense","description":"Új költség rögzítése egy járműhöz.","operationId":"add_expense_api_v1_expenses_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpenseCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/reports/summary/{vehicle_id}":{"get":{"tags":["reports"],"summary":"Get Vehicle Summary","description":"Összesített jelentés egy járműhöz: kategóriánkénti költségek.","operationId":"get_vehicle_summary_api_v1_reports_summary__vehicle_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"string","title":"Vehicle Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reports/trends/{vehicle_id}":{"get":{"tags":["reports"],"summary":"Get Monthly Trends","description":"Visszaadja az utolsó 6 hónap költéseit havi bontásban.","operationId":"get_monthly_trends_api_v1_reports_trends__vehicle_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"vehicle_id","in":"path","required":true,"schema":{"type":"string","title":"Vehicle Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v2/auth/register":{"post":{"tags":["Authentication V2"],"summary":"Register","operationId":"register_api_v2_auth_register_post","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"password","in":"query","required":true,"schema":{"type":"string","title":"Password"}},{"name":"first_name","in":"query","required":true,"schema":{"type":"string","title":"First Name"}},{"name":"last_name","in":"query","required":true,"schema":{"type":"string","title":"Last Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v2/auth/login":{"post":{"tags":["Authentication V2"],"summary":"Login","operationId":"login_api_v2_auth_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_login_api_v2_auth_login_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v2/auth/forgot-password":{"post":{"tags":["Authentication V2"],"summary":"Forgot Password","operationId":"forgot_password_api_v2_auth_forgot_password_post","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"tags":["health"],"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"Body_login_api_v2_auth_login_post":{"properties":{"grant_type":{"anyOf":[{"type":"string","pattern":"^password$"},{"type":"null"}],"title":"Grant Type"},"username":{"type":"string","title":"Username"},"password":{"type":"string","format":"password","title":"Password"},"scope":{"type":"string","title":"Scope","default":""},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"password","title":"Client Secret"}},"type":"object","required":["username","password"],"title":"Body_login_api_v2_auth_login_post"},"ExpenseCreate":{"properties":{"vehicle_id":{"type":"string","title":"Vehicle Id"},"category":{"type":"string","title":"Category"},"amount":{"type":"number","title":"Amount"},"date":{"type":"string","format":"date","title":"Date"},"odometer_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Odometer Value"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["vehicle_id","category","amount","date"],"title":"ExpenseCreate"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"UserResponse":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"is_superuser":{"type":"boolean","title":"Is Superuser","default":false},"region_code":{"type":"string","title":"Region Code","default":"HU"},"id":{"type":"integer","title":"Id"},"is_company":{"type":"boolean","title":"Is Company"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"}},"type":"object","required":["email","id","is_company"],"title":"UserResponse"},"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"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/api/v2/auth/login"}}}}}}