{"openapi":"3.1.0","info":{"title":"Core FastAPI Template","version":"0.1.0"},"paths":{"/api/v1/auth/signup":{"post":{"tags":["auth"],"summary":"Signup","description":"Create a new user, or return ``{registered: true}`` if the phone already exists.","operationId":"signup_api_v1_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UserRead"},{"$ref":"#/components/schemas/PhoneRegisteredRead"}],"title":"Response Signup Api V1 Auth Signup Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/form_data/login":{"post":{"tags":["auth"],"summary":"Form Data Login","description":"Authenticate with OAuth2 form data (``username`` is SSID or phone).","operationId":"form_data_login_api_v1_auth_form_data_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_form_data_login_api_v1_auth_form_data_login_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["auth"],"summary":"Login","description":"Authenticate with a JSON body (phone or SSID and password).","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["auth"],"summary":"Refresh Tokens","description":"Exchange a valid refresh token for a new access and refresh token pair.","operationId":"refresh_tokens_api_v1_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","description":"Revoke this device session and all of its refresh tokens.","operationId":"logout_api_v1_auth_logout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capella-os/auth/send_otp":{"post":{"tags":["capella-os-auth"],"summary":"Send Otp","description":"Send a phone OTP through Capella OS.","operationId":"send_otp_api_v1_capella_os_auth_send_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOTPRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capella-os/auth/verify_otp":{"post":{"tags":["capella-os-auth"],"summary":"Verify Otp","description":"Verify a phone OTP through Capella OS.","operationId":"verify_otp_api_v1_capella_os_auth_verify_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOTPRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capella-os/auth/login":{"post":{"tags":["capella-os-auth"],"summary":"Login","description":"Authenticate against Capella OS with phone or SSID and password.","operationId":"login_api_v1_capella_os_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/LoginRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capella-os/ssid/registered":{"post":{"tags":["capella-os-ssid"],"summary":"Phone Registered","description":"Check whether a phone number is already registered in Capella OS.","operationId":"phone_registered_api_v1_capella_os_ssid_registered_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneRegisteredRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneRegisteredRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/businesses":{"get":{"tags":["business"],"summary":"List My Businesses","description":"List businesses the current user belongs to.","operationId":"list_my_businesses_api_v1_businesses_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BusinessRead"},"type":"array","title":"Response List My Businesses Api V1 Businesses Get"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/businesses/me":{"get":{"tags":["business"],"summary":"Get Current Business","description":"Return the business from the current JWT scope.","operationId":"get_current_business_api_v1_businesses_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessRead"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/businesses/slug/{slug}":{"get":{"tags":["business"],"summary":"Get Business By Slug","description":"Get a business by its unique slug.","operationId":"get_business_by_slug_api_v1_businesses_slug__slug__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/businesses/{business_id}":{"patch":{"tags":["business"],"summary":"Update Business","description":"Update a business and invalidate the slug cache.","operationId":"update_business_api_v1_businesses__business_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"business_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Business Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["business"],"summary":"Get Business","description":"Get a business by id.","operationId":"get_business_api_v1_businesses__business_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"business_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Business Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates":{"post":{"tags":["example-template"],"summary":"Create","description":"Create a record.","operationId":"create_api_v1_example_templates_post","security":[{"OAuth2PasswordBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateRead"}}}},"409":{"description":"Duplicate or conflicting value"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["example-template"],"summary":"List All","description":"List records with filter, search, sort, and pagination.","operationId":"list_all_api_v1_example_templates_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"title":"Active"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at.","title":"Sort"},"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at."},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"any_val","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search across all model columns (strings partial, typed columns exact)","title":"Any Val"},"description":"Search across all model columns (strings partial, typed columns exact)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedExampleTemplate"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/archive":{"patch":{"tags":["example-template"],"summary":"Archive Many","description":"Soft-delete a record by setting its active flag to false.","operationId":"archive_many_api_v1_example_templates_archive_patch","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Record Ids"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/example-templates/unarchive":{"patch":{"tags":["example-template"],"summary":"Unarchive Many","description":"Restore an archived record by setting its active flag to true.","operationId":"unarchive_many_api_v1_example_templates_unarchive_patch","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Record Ids"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/example-templates/count":{"get":{"tags":["example-template"],"summary":"Count All","operationId":"count_all_api_v1_example_templates_count_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"title":"Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/name_search":{"get":{"tags":["example-template"],"summary":"Name Search","description":"Search records for autocomplete (id + label; same column filters as list).","operationId":"name_search_api_v1_example_templates_name_search_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"Search by model display/search field","title":"Q"},"description":"Search by model display/search field"},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"title":"Active"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at.","title":"Sort"},"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at."},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"any_val","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search across all model columns (strings partial, typed columns exact)","title":"Any Val"},"description":"Search across all model columns (strings partial, typed columns exact)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NameSearchRead"},"title":"Response Name Search Api V1 Example Templates Name Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/export":{"get":{"tags":["example-template"],"summary":"Export Csv","description":"Download records as CSV (same filters as list; not paginated).","operationId":"export_csv_api_v1_example_templates_export_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"title":"Active"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at.","title":"Sort"},"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at."},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"any_val","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search across all model columns (strings partial, typed columns exact)","title":"Any Val"},"description":"Search across all model columns (strings partial, typed columns exact)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/import/template":{"get":{"tags":["example-template"],"summary":"Download Import Template","description":"Download an empty CSV template for bulk import.","operationId":"download_import_template_api_v1_example_templates_import_template_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/example-templates/import":{"post":{"tags":["example-template"],"summary":"Import Csv","description":"Import records from CSV. Rows with ``id`` update; others create.","operationId":"import_csv_api_v1_example_templates_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_csv_api_v1_example_templates_import_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportResult"}}}},"422":{"description":"Validation error"}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/example-templates/{record_id}/archive":{"patch":{"tags":["example-template"],"summary":"Archive One","description":"Soft-delete a record by setting its active flag to false.","operationId":"archive_one_api_v1_example_templates__record_id__archive_patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/{record_id}/unarchive":{"patch":{"tags":["example-template"],"summary":"Unarchive One","description":"Restore an archived record by setting its active flag to true.","operationId":"unarchive_one_api_v1_example_templates__record_id__unarchive_patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/{record_id}":{"get":{"tags":["example-template"],"summary":"Get One","description":"Get a record by ID.","operationId":"get_one_api_v1_example_templates__record_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["example-template"],"summary":"Update One","description":"Update a record.","operationId":"update_one_api_v1_example_templates__record_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateRead"}}}},"404":{"description":"Record not found"},"409":{"description":"Duplicate or conflicting value"},"422":{"description":"Validation error"}}},"delete":{"tags":["example-template"],"summary":"Delete One","description":"Delete a record.","operationId":"delete_one_api_v1_example_templates__record_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Record Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/code/{code}":{"get":{"tags":["example-template"],"summary":"Get Example Template By Code","description":"Get an example template by its unique code.","operationId":"get_example_template_by_code_api_v1_example_templates_code__code__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTemplateRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/demo/optional-pagination":{"get":{"tags":["example-template"],"summary":"Demo Optional Pagination","description":"Demo: omit ``page`` → full list; pass ``page`` → ``Page`` with totals.","operationId":"demo_optional_pagination_api_v1_example_templates_demo_optional_pagination_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"title":"Active"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at.","title":"Sort"},"description":"Sort: -field for desc, field for asc. Defaults to model order or -created_at."},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Omit to return all rows; set to paginate.","title":"Page"},"description":"Omit to return all rows; set to paginate."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"any_val","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search across all model columns (strings partial, typed columns exact)","title":"Any Val"},"description":"Search across all model columns (strings partial, typed columns exact)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Page_ExampleTemplateRead_"},{"type":"array","items":{"$ref":"#/components/schemas/ExampleTemplateRead"}}],"title":"Response Demo Optional Pagination Api V1 Example Templates Demo Optional Pagination Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/example-templates/demo/multi-domain-wrap/{code}":{"get":{"tags":["example-template"],"summary":"Demo Multi Domain Wrap","description":"Demo: two domains in one response (``example_template`` + ``business``).","operationId":"demo_multi_domain_wrap_api_v1_example_templates_demo_multi_domain_wrap__code__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleMultiDomainDemoRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me":{"get":{"tags":["users"],"summary":"Get Me","description":"Return the current YouthNet user and their Capella OS SSID profile.","operationId":"get_me_api_v1_users_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeRead"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"patch":{"tags":["users"],"summary":"Update Me","description":"Update the current YouthNet user and optionally their Capella OS SSID.","operationId":"update_me_api_v1_users_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/user-sessions":{"get":{"tags":["user-sessions"],"summary":"List User Sessions","description":"List sessions for the current user.","operationId":"list_user_sessions_api_v1_user_sessions_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","description":"If true, only non-revoked sessions","default":true,"title":"Active Only"},"description":"If true, only non-revoked sessions"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserSessionRead"},"title":"Response List User Sessions Api V1 User Sessions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user-sessions/revoke-others":{"post":{"tags":["user-sessions"],"summary":"Revoke Other User Sessions","description":"Revoke all other active sessions for the current user.","operationId":"revoke_other_user_sessions_api_v1_user_sessions_revoke_others_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"keep_session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Optional session to keep active","title":"Keep Session Id"},"description":"Optional session to keep active"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer"},"title":"Response Revoke Other User Sessions Api V1 User Sessions Revoke Others Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user-sessions/{session_id}":{"get":{"tags":["user-sessions"],"summary":"Get User Session","description":"Get one of the current user's sessions.","operationId":"get_user_session_api_v1_user_sessions__session_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSessionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user-sessions/{session_id}/revoke":{"post":{"tags":["user-sessions"],"summary":"Revoke User Session","description":"Revoke a session and all of its refresh tokens.","operationId":"revoke_user_session_api_v1_user_sessions__session_id__revoke_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSessionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"tags":["health"],"summary":"Health Check","description":"Return service health status.","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Check Health Get"}}}}}}}},"components":{"schemas":{"AddressUpdate":{"properties":{"unit_building":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit Building"},"plot_street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plot Street"},"ward":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ward"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"township_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Township Id"},"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id"},"country_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Country Id"}},"type":"object","title":"AddressUpdate"},"BloodGroup":{"type":"string","enum":["A+","B+","O+","AB+","A-","B-","O-","AB-","A","B","O","AB"],"title":"BloodGroup"},"Body_form_data_login_api_v1_auth_form_data_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_form_data_login_api_v1_auth_form_data_login_post"},"Body_import_csv_api_v1_example_templates_import_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"CSV file matching the import template"}},"type":"object","required":["file"],"title":"Body_import_csv_api_v1_example_templates_import_post"},"BusinessRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"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","name","slug","active","created_at","updated_at"],"title":"BusinessRead"},"BusinessUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"BusinessUpdate"},"CapellaSSIDInfo":{"properties":{"id":{"type":"integer","title":"Id"},"ssid":{"type":"integer","title":"Ssid"},"ssid_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ssid Type"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"known_as":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Known As"},"avatar_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Link"},"contact_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contact Info"},"personal_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Personal Info"},"addresses":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Addresses"},"id_cards":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Id Cards"},"ssid_members":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Ssid Members"}},"additionalProperties":true,"type":"object","required":["id","ssid"],"title":"CapellaSSIDInfo","description":"Capella OS SSID profile payload (``GET /api/v1/ssids/info`` / ``/{id}``)."},"ExampleMultiDomainDemoRead":{"properties":{"example_template":{"$ref":"#/components/schemas/ExampleTemplateRead"},"business":{"$ref":"#/components/schemas/BusinessRead"}},"type":"object","required":["example_template","business"],"title":"ExampleMultiDomainDemoRead","description":"Explicit multi-domain envelope (``example_template`` + ``business``)."},"ExampleTemplateCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"code":{"type":"string","maxLength":64,"minLength":1,"title":"Code"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"}},"type":"object","required":["name","code"],"title":"ExampleTemplateCreate"},"ExampleTemplateRead":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"code":{"type":"string","maxLength":64,"minLength":1,"title":"Code"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"id":{"type":"string","format":"uuid","title":"Id"},"business_id":{"type":"string","format":"uuid","title":"Business Id"},"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":["name","code","id","business_id","active","created_at","updated_at"],"title":"ExampleTemplateRead"},"ExampleTemplateUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"code":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Code"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"}},"type":"object","title":"ExampleTemplateUpdate"},"Gender":{"type":"string","enum":["Male","Female","Other"],"title":"Gender"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IDCardType":{"type":"string","enum":["National ID","Passport","Driver License","Incorporation Certificate"],"title":"IDCardType"},"IDCardUpdate":{"properties":{"fullname":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Fullname"},"type":{"$ref":"#/components/schemas/IDCardType"},"number":{"type":"string","maxLength":100,"title":"Number"},"expiry_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expiry Date"},"issue_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Issue Date"},"selfie":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selfie"},"photo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo"},"back_photo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Back Photo"},"country_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Country Id"},"ssid_person_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid Person Id"},"ssid_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid Id"},"issuer_ssid_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Issuer Ssid Id"},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"}},"type":"object","required":["type","number"],"title":"IDCardUpdate"},"ImportResult":{"properties":{"created":{"type":"integer","title":"Created","default":0},"updated":{"type":"integer","title":"Updated","default":0},"failed":{"type":"integer","title":"Failed","default":0},"errors":{"items":{"$ref":"#/components/schemas/ImportRowError"},"type":"array","title":"Errors"}},"type":"object","title":"ImportResult"},"ImportRowError":{"properties":{"row":{"type":"integer","title":"Row","description":"1-based data row number (header is row 0)"},"message":{"type":"string","title":"Message"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},"type":"object","required":["row","message"],"title":"ImportRowError"},"LoginRead":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"}},"type":"object","required":["access_token","refresh_token"],"title":"LoginRead"},"LoginRequest":{"properties":{"phone":{"anyOf":[{"type":"string","maxLength":32,"minLength":4},{"type":"null"}],"title":"Phone"},"ssid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"}},"type":"object","required":["password"],"title":"LoginRequest"},"MeRead":{"properties":{"youth_user":{"$ref":"#/components/schemas/UserRead"},"ssid":{"$ref":"#/components/schemas/CapellaSSIDInfo"}},"type":"object","required":["youth_user","ssid"],"title":"MeRead","description":"Authenticated user envelope: YouthNet user + Capella OS SSID profile."},"MeUpdate":{"properties":{"youth_user":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"ssid":{"anyOf":[{"$ref":"#/components/schemas/SSIDUpdate"},{"type":"null"}]}},"type":"object","title":"MeUpdate","description":"Edit the current user. Capella SSID is updated only when ``ssid`` has fields."},"NameSearchRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"label":{"type":"string","title":"Label"}},"additionalProperties":true,"type":"object","required":["id","label"],"title":"NameSearchRead","description":"id + label for autocomplete; models may attach extra fields via model hooks."},"Page_ExampleTemplateRead_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExampleTemplateRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"current_page":{"type":"integer","title":"Current Page"},"total_pages":{"type":"integer","title":"Total Pages"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","current_page","total_pages","page_size"],"title":"Page[ExampleTemplateRead]"},"PaginatedExampleTemplate":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ExampleTemplateRead"},"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":"PaginatedExampleTemplate"},"PhoneRegisteredRead":{"properties":{"registered":{"type":"boolean","title":"Registered"}},"type":"object","required":["registered"],"title":"PhoneRegisteredRead"},"PhoneRegisteredRequest":{"properties":{"phone":{"type":"string","maxLength":32,"minLength":4,"title":"Phone"}},"type":"object","required":["phone"],"title":"PhoneRegisteredRequest"},"RefreshTokenRequest":{"properties":{"refresh_token":{"type":"string","minLength":1,"title":"Refresh Token"},"device_uuid":{"type":"string","format":"uuid","title":"Device Uuid"}},"type":"object","required":["refresh_token","device_uuid"],"title":"RefreshTokenRequest"},"SSIDContactInfoUpdate":{"properties":{"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"facsimile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facsimile"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"country_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Country Id"},"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id"},"township_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Township Id"}},"type":"object","title":"SSIDContactInfoUpdate"},"SSIDMemberType":{"type":"string","enum":["Biological Father","Biological Mother","Adoptive Parent","Common Shareholder","Preferred Shareholder","Other Shareholder"],"title":"SSIDMemberType"},"SSIDMemberUpdate":{"properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/SSIDMemberType"},{"type":"null"}]},"ssid_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid Id"},"unit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Unit"},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"}},"type":"object","title":"SSIDMemberUpdate"},"SSIDPersonUpdate":{"properties":{"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix"},"gender":{"anyOf":[{"$ref":"#/components/schemas/Gender"},{"type":"null"}]},"dob":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Dob"},"blood_group":{"anyOf":[{"$ref":"#/components/schemas/BloodGroup"},{"type":"null"}]},"height_m":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Height M"},"father_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Father Name"},"mother_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mother Name"},"birthplace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birthplace"},"native_country_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Native Country Id"},"hand_signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hand Signature"},"profile_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Image"},"selfie_image_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selfie Image 1"},"selfie_image_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selfie Image 2"},"selfie_image_3":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selfie Image 3"}},"type":"object","title":"SSIDPersonUpdate"},"SSIDType":{"type":"string","enum":["Person","Organization","Sovereign State"],"title":"SSIDType"},"SSIDUpdate":{"properties":{"ssid_type":{"anyOf":[{"$ref":"#/components/schemas/SSIDType"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"known_as":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Known As"},"burmese_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Burmese Name"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"},"personal_info":{"anyOf":[{"$ref":"#/components/schemas/SSIDPersonUpdate"},{"type":"null"}]},"contact_info":{"anyOf":[{"$ref":"#/components/schemas/SSIDContactInfoUpdate"},{"type":"null"}]},"address":{"anyOf":[{"$ref":"#/components/schemas/AddressUpdate"},{"type":"null"}]},"added_id_cards":{"anyOf":[{"items":{"$ref":"#/components/schemas/IDCardUpdate"},"type":"array"},{"type":"null"}],"title":"Added Id Cards"},"removed_id_cards":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Removed Id Cards"},"added_ssid_members":{"anyOf":[{"items":{"$ref":"#/components/schemas/SSIDMemberUpdate"},"type":"array"},{"type":"null"}],"title":"Added Ssid Members"},"removed_ssid_members":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Removed Ssid Members"}},"type":"object","title":"SSIDUpdate"},"SendOTPMsgType":{"type":"string","enum":["reset_pwd","verify_ph"],"title":"SendOTPMsgType"},"SendOTPRead":{"properties":{"otp_id":{"type":"string","title":"Otp Id"}},"type":"object","required":["otp_id"],"title":"SendOTPRead"},"SendOTPRequest":{"properties":{"phone":{"type":"string","maxLength":32,"minLength":4,"title":"Phone"},"msg_type":{"$ref":"#/components/schemas/SendOTPMsgType","default":"verify_ph"}},"type":"object","required":["phone"],"title":"SendOTPRequest"},"SignupCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"phone":{"type":"string","maxLength":32,"minLength":4,"title":"Phone"},"password":{"type":"string","maxLength":128,"minLength":3,"title":"Password"},"otp_id":{"type":"string","title":"Otp Id"}},"type":"object","required":["name","phone","password","otp_id"],"title":"SignupCreate"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}},"type":"object","required":["access_token"],"title":"Token"},"UserEducation":{"type":"string","enum":["Primary","Middle","High","University","Graduated"],"title":"UserEducation"},"UserLogin":{"properties":{"ssid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"},"phone":{"anyOf":[{"type":"string","maxLength":32,"minLength":4},{"type":"null"}],"title":"Phone"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"fcm_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fcm Token"},"device_uuid":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Device Uuid"}},"type":"object","required":["password"],"title":"UserLogin"},"UserOrganizationRead":{"properties":{"organization_name":{"type":"string","maxLength":255,"minLength":1,"title":"Organization Name"}},"type":"object","required":["organization_name"],"title":"UserOrganizationRead"},"UserOrganizationUpdate":{"properties":{"organization_name":{"type":"string","maxLength":255,"minLength":1,"title":"Organization Name"}},"type":"object","required":["organization_name"],"title":"UserOrganizationUpdate"},"UserRead":{"properties":{"education":{"anyOf":[{"$ref":"#/components/schemas/UserEducation"},{"type":"null"}]},"education_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Text"},"current_distinct":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Distinct"},"interested_in":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interested In"},"is_organization_member":{"type":"boolean","title":"Is Organization Member","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"ssid_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid Id"},"ssid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid"},"seminars":{"items":{"$ref":"#/components/schemas/UserSeminarRead"},"type":"array","title":"Seminars"},"organizations":{"items":{"$ref":"#/components/schemas/UserOrganizationRead"},"type":"array","title":"Organizations"},"active":{"type":"boolean","title":"Active"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","active"],"title":"UserRead"},"UserSeminarRead":{"properties":{"seminar_name":{"type":"string","maxLength":255,"minLength":1,"title":"Seminar Name"}},"type":"object","required":["seminar_name"],"title":"UserSeminarRead"},"UserSeminarUpdate":{"properties":{"seminar_name":{"type":"string","maxLength":255,"minLength":1,"title":"Seminar Name"}},"type":"object","required":["seminar_name"],"title":"UserSeminarUpdate"},"UserSessionRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"device_uuid":{"type":"string","format":"uuid","title":"Device Uuid"},"ip_address":{"type":"string","title":"Ip Address"},"user_agent":{"type":"string","title":"User Agent"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"type":"string","format":"date-time","title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"}},"type":"object","required":["id","device_uuid","ip_address","user_agent","created_at","last_used_at"],"title":"UserSessionRead"},"UserUpdate":{"properties":{"education":{"anyOf":[{"$ref":"#/components/schemas/UserEducation"},{"type":"null"}]},"education_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Education Text"},"current_distinct":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Distinct"},"interested_in":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interested In"},"is_organization_member":{"type":"boolean","title":"Is Organization Member","default":false},"seminars":{"anyOf":[{"items":{"$ref":"#/components/schemas/UserSeminarUpdate"},"type":"array"},{"type":"null"}],"title":"Seminars"},"organizations":{"anyOf":[{"items":{"$ref":"#/components/schemas/UserOrganizationUpdate"},"type":"array"},{"type":"null"}],"title":"Organizations"}},"type":"object","title":"UserUpdate"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyOTPRead":{"properties":{},"additionalProperties":true,"type":"object","title":"VerifyOTPRead"},"VerifyOTPRequest":{"properties":{"otp":{"type":"string","maxLength":16,"minLength":1,"title":"Otp"},"otp_id":{"type":"string","maxLength":128,"minLength":1,"title":"Otp Id"}},"type":"object","required":["otp","otp_id"],"title":"VerifyOTPRequest"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/api/v1/auth/form_data/login"}}}}}}