{"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 and create a YouthNet user if none exists.","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/users/youth-cards":{"get":{"tags":["users"],"summary":"List Youth Cards","description":"Return the current user's youth ID card as a one-item list.","operationId":"list_youth_cards_api_v1_users_youth_cards_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/YouthCardRead"},"type":"array","title":"Response List Youth Cards Api V1 Users Youth Cards Get"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/users/card/mine":{"get":{"tags":["users"],"summary":"List My Cards","description":"Return the current user's Capella-rendered cards, with YouthNet fields filled.\n\n``card_template.frame_url_link`` is Capella's already-presigned S3 GET URL\nfor the template frame. YouthNet does not sign S3 objects.","operationId":"list_my_cards_api_v1_users_card_mine_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CardRendered"},"type":"array","title":"Response List My Cards Api V1 Users Card Mine Get"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/users":{"post":{"tags":["users"],"summary":"Create","description":"Create a record.","operationId":"create_api_v1_users_post","security":[{"OAuth2PasswordBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRead"}}}},"409":{"description":"Duplicate or conflicting value"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["users"],"summary":"List All","description":"List records with filter, search, sort, and pagination.","operationId":"list_all_api_v1_users_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/PaginatedUser"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/archive":{"patch":{"tags":["users"],"summary":"Archive Many","description":"Soft-delete a record by setting its active flag to false.","operationId":"archive_many_api_v1_users_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/users/unarchive":{"patch":{"tags":["users"],"summary":"Unarchive Many","description":"Restore an archived record by setting its active flag to true.","operationId":"unarchive_many_api_v1_users_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/users/count":{"get":{"tags":["users"],"summary":"Count All","operationId":"count_all_api_v1_users_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/users/name_search":{"get":{"tags":["users"],"summary":"Name Search","description":"Search records for autocomplete (id + label; same column filters as list).","operationId":"name_search_api_v1_users_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 Users Name Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/export":{"get":{"tags":["users"],"summary":"Export Csv","description":"Download records as CSV (same filters as list; not paginated).","operationId":"export_csv_api_v1_users_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/users/import/template":{"get":{"tags":["users"],"summary":"Download Import Template","description":"Download an empty CSV template for bulk import.","operationId":"download_import_template_api_v1_users_import_template_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/users/import":{"post":{"tags":["users"],"summary":"Import Csv","description":"Import records from CSV. Rows with ``id`` update; others create.","operationId":"import_csv_api_v1_users_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_csv_api_v1_users_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/users/{record_id}/archive":{"patch":{"tags":["users"],"summary":"Archive One","description":"Soft-delete a record by setting its active flag to false.","operationId":"archive_one_api_v1_users__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/UserRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{record_id}/unarchive":{"patch":{"tags":["users"],"summary":"Unarchive One","description":"Restore an archived record by setting its active flag to true.","operationId":"unarchive_one_api_v1_users__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/UserRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{record_id}":{"get":{"tags":["users"],"summary":"Get One","description":"Get a record by ID.","operationId":"get_one_api_v1_users__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/UserRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["users"],"summary":"Update One","description":"Update a record.","operationId":"update_one_api_v1_users__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/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRead"}}}},"404":{"description":"Record not found"},"409":{"description":"Duplicate or conflicting value"},"422":{"description":"Validation error"}}},"delete":{"tags":["users"],"summary":"Delete One","description":"Delete a record.","operationId":"delete_one_api_v1_users__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/user-educations":{"post":{"tags":["user-education"],"summary":"Create","description":"Create a record.","operationId":"create_api_v1_user_educations_post","security":[{"OAuth2PasswordBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEducationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEducationRead"}}}},"409":{"description":"Duplicate or conflicting value"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["user-education"],"summary":"List All","description":"List records with filter, search, sort, and pagination.","operationId":"list_all_api_v1_user_educations_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/PaginatedUserEducation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user-educations/archive":{"patch":{"tags":["user-education"],"summary":"Archive Many","description":"Soft-delete a record by setting its active flag to false.","operationId":"archive_many_api_v1_user_educations_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/user-educations/unarchive":{"patch":{"tags":["user-education"],"summary":"Unarchive Many","description":"Restore an archived record by setting its active flag to true.","operationId":"unarchive_many_api_v1_user_educations_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/user-educations/count":{"get":{"tags":["user-education"],"summary":"Count All","operationId":"count_all_api_v1_user_educations_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/user-educations/name_search":{"get":{"tags":["user-education"],"summary":"Name Search","description":"Search records for autocomplete (id + label; same column filters as list).","operationId":"name_search_api_v1_user_educations_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 User Educations Name Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user-educations/export":{"get":{"tags":["user-education"],"summary":"Export Csv","description":"Download records as CSV (same filters as list; not paginated).","operationId":"export_csv_api_v1_user_educations_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/user-educations/import/template":{"get":{"tags":["user-education"],"summary":"Download Import Template","description":"Download an empty CSV template for bulk import.","operationId":"download_import_template_api_v1_user_educations_import_template_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/user-educations/import":{"post":{"tags":["user-education"],"summary":"Import Csv","description":"Import records from CSV. Rows with ``id`` update; others create.","operationId":"import_csv_api_v1_user_educations_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_csv_api_v1_user_educations_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/user-educations/{record_id}/archive":{"patch":{"tags":["user-education"],"summary":"Archive One","description":"Soft-delete a record by setting its active flag to false.","operationId":"archive_one_api_v1_user_educations__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/UserEducationRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user-educations/{record_id}/unarchive":{"patch":{"tags":["user-education"],"summary":"Unarchive One","description":"Restore an archived record by setting its active flag to true.","operationId":"unarchive_one_api_v1_user_educations__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/UserEducationRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user-educations/{record_id}":{"get":{"tags":["user-education"],"summary":"Get One","description":"Get a record by ID.","operationId":"get_one_api_v1_user_educations__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/UserEducationRead"}}}},"404":{"description":"Record not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["user-education"],"summary":"Update One","description":"Update a record.","operationId":"update_one_api_v1_user_educations__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/UserEducationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEducationRead"}}}},"404":{"description":"Record not found"},"409":{"description":"Duplicate or conflicting value"},"422":{"description":"Validation error"}}},"delete":{"tags":["user-education"],"summary":"Delete One","description":"Delete a record.","operationId":"delete_one_api_v1_user_educations__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/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"},"Body_import_csv_api_v1_user_educations_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_user_educations_import_post"},"Body_import_csv_api_v1_users_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_users_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}``)."},"CardElementRendered":{"properties":{"id":{"type":"integer","title":"Id"},"type":{"type":"string","title":"Type"},"label":{"type":"string","title":"Label"},"bind":{"type":"string","title":"Bind"},"value":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}],"title":"Value"},"x":{"type":"number","title":"X"},"y":{"type":"number","title":"Y"},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Height"},"border_width":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Border Width"},"border_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Border Color"},"border_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Border Radius"},"content_fit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Fit"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"label_fontsize":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Label Fontsize"},"value_fontsize":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Value Fontsize"}},"type":"object","required":["id","type","label","bind","x","y"],"title":"CardElementRendered"},"CardRendered":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"issued_at":{"type":"string","format":"date-time","title":"Issued At"},"expired_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expired At"},"ssid":{"anyOf":[{"$ref":"#/components/schemas/SSIDForRel"},{"type":"null"}]},"business_ssid":{"anyOf":[{"$ref":"#/components/schemas/SSIDForRel"},{"type":"null"}]},"card_template":{"anyOf":[{"$ref":"#/components/schemas/CardTemplateForRel"},{"type":"null"}]},"card_elements":{"items":{"$ref":"#/components/schemas/CardElementRendered"},"type":"array","title":"Card Elements"}},"type":"object","required":["id","issued_at"],"title":"CardRendered","description":"Capella OS ``GET /api/v1/cards/mine`` payload, with ``youth_user.*`` binds filled locally."},"CardTemplateForRel":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"frame_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frame Url"},"frame_url_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frame Url Link"}},"type":"object","required":["id"],"title":"CardTemplateForRel"},"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"},"HeightImperial":{"properties":{"feet":{"type":"integer","title":"Feet"},"inches":{"type":"integer","title":"Inches"}},"type":"object","required":["feet","inches"],"title":"HeightImperial"},"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"},"educations":{"anyOf":[{"items":{"$ref":"#/components/schemas/UserEducationRead"},"type":"array"},{"type":"null"}],"title":"Educations"}},"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"},"PaginatedUser":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UserRead"},"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":"PaginatedUser"},"PaginatedUserEducation":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UserEducationRead"},"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":"PaginatedUserEducation"},"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"},"SSIDForRel":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"known_as":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Known As"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"ssid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid"},"avatar_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Link"}},"type":"object","title":"SSIDForRel"},"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"},"UserCreate":{"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},"ssid_id":{"type":"integer","title":"Ssid Id"},"ssid":{"type":"integer","title":"Ssid"},"seminars":{"items":{"$ref":"#/components/schemas/UserSeminarCreate"},"type":"array","title":"Seminars"},"organizations":{"items":{"$ref":"#/components/schemas/UserOrganizationCreate"},"type":"array","title":"Organizations"},"user_educations":{"items":{"$ref":"#/components/schemas/UserEducationBase"},"type":"array","title":"User Educations"}},"type":"object","required":["ssid_id","ssid"],"title":"UserCreate"},"UserEducation":{"type":"string","enum":["Primary","Middle","High","University","Graduated"],"title":"UserEducation"},"UserEducationBase":{"properties":{"level":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Level"},"institution":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Institution"},"certificate_name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate Name"},"grade":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Grade"},"issue_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Issue Date"},"certificate":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate"},"transcript":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Transcript"}},"type":"object","title":"UserEducationBase"},"UserEducationCreate":{"properties":{"level":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Level"},"institution":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Institution"},"certificate_name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate Name"},"grade":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Grade"},"issue_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Issue Date"},"certificate":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate"},"transcript":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Transcript"},"user_id":{"type":"string","format":"uuid","title":"User Id"}},"type":"object","required":["user_id"],"title":"UserEducationCreate"},"UserEducationRead":{"properties":{"level":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Level"},"institution":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Institution"},"certificate_name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate Name"},"grade":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Grade"},"issue_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Issue Date"},"certificate":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate"},"transcript":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Transcript"},"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User 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":["id","user_id","business_id","active","created_at","updated_at"],"title":"UserEducationRead"},"UserEducationUpdate":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"level":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Level"},"institution":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Institution"},"certificate_name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate Name"},"grade":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Grade"},"issue_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Issue Date"},"certificate":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Certificate"},"transcript":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Transcript"}},"type":"object","title":"UserEducationUpdate"},"UserIdCardRead":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"}},"type":"object","title":"UserIdCardRead"},"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"},"UserOrganizationCreate":{"properties":{"organization_name":{"type":"string","maxLength":255,"minLength":1,"title":"Organization Name"}},"type":"object","required":["organization_name"],"title":"UserOrganizationCreate"},"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"},"youth_id":{"type":"integer","title":"Youth Id"},"youth_card_number":{"type":"integer","title":"Youth Card Number"},"ssid_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid Id"},"ssid":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssid"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"id_card_number":{"anyOf":[{"items":{"$ref":"#/components/schemas/UserIdCardRead"},"type":"array"},{"type":"null"}],"title":"Id Card Number"},"gender":{"anyOf":[{"$ref":"#/components/schemas/Gender"},{"type":"null"}]},"blood_group":{"anyOf":[{"$ref":"#/components/schemas/BloodGroup"},{"type":"null"}]},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"birthplace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birthplace"},"father_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Father Name"},"mother_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mother Name"},"dob":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Dob"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar"},"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"},"age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Age","readOnly":true}},"type":"object","required":["id","youth_id","youth_card_number","active","age"],"title":"UserRead"},"UserSeminarCreate":{"properties":{"seminar_name":{"type":"string","maxLength":255,"minLength":1,"title":"Seminar Name"}},"type":"object","required":["seminar_name"],"title":"UserSeminarCreate"},"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"},"added_educations":{"anyOf":[{"items":{"$ref":"#/components/schemas/UserEducationUpdate"},"type":"array"},{"type":"null"}],"title":"Added Educations"},"removed_educations":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Removed Educations"}},"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"},"YouthCardRead":{"properties":{"youth_id":{"type":"integer","title":"Youth Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"dob":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Dob"},"youth_card_number":{"type":"integer","title":"Youth Card Number"},"gender":{"anyOf":[{"$ref":"#/components/schemas/Gender"},{"type":"null"}]},"avatar_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Link"},"doe":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Doe","readOnly":true},"height":{"anyOf":[{"$ref":"#/components/schemas/HeightImperial"},{"type":"null"}],"readOnly":true}},"type":"object","required":["youth_id","youth_card_number","doe","height"],"title":"YouthCardRead","description":"Youth ID card print fields."}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/api/v1/auth/form_data/login"}}}}}}