Files
woman_safety_app/app/API desc
2025-09-25 16:54:15 +09:00

2 lines
36 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"openapi":"3.1.0","info":{"title":"Women's Safety App API Gateway","description":"API Gateway для Women's Safety App с поддержкой микросервисной архитектуры","version":"1.0.0"},"paths":{"/api/v1/profile":{"get":{"tags":["Users"],"summary":"User Service Proxy","description":"Proxy requests to User Service","operationId":"user_profile_get","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_profile_get"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Users"],"summary":"User Service Proxy","description":"Proxy requests to User Service","operationId":"user_profile_update","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_profile_update"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me/change-password":{"post":{"tags":["Users"],"summary":"User Service Proxy","description":"Proxy requests to User Service","operationId":"user_change_password","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_change_password"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/dashboard":{"get":{"tags":["Users"],"summary":"User Service Proxy","description":"Proxy requests to User Service","operationId":"user_dashboard_get","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_dashboard_get"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me/emergency-contacts/{contact_id}":{"get":{"tags":["Emergency Contacts"],"summary":"Get emergency contact by ID","description":"Proxy requests to User Service","operationId":"user_emergency_contact_get","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_emergency_contact_get"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmergencyContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Emergency Contacts"],"summary":"Delete emergency contact","description":"Proxy requests to User Service","operationId":"user_emergency_contact_delete","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_emergency_contact_delete"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Emergency Contacts"],"summary":"Update emergency contact","description":"Proxy requests to User Service","operationId":"user_emergency_contact_patch","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_emergency_contact_patch"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmergencyContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me/emergency-contacts":{"get":{"tags":["Emergency Contacts"],"summary":"Get all emergency contacts","description":"Proxy requests to User Service","operationId":"user_emergency_contacts_get","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_emergency_contacts_get"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EmergencyContactResponse"},"type":"array","title":"Response User Emergency Contacts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Emergency Contacts"],"summary":"Create a new emergency contact","description":"Proxy requests to User Service","operationId":"user_emergency_contacts_post","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_emergency_contacts_post"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmergencyContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/me":{"get":{"tags":["Users"],"summary":"Get current user profile","description":"Proxy requests to User Service","operationId":"user_me_get","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_me_get"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Users"],"summary":"Update user profile","description":"Proxy requests to User Service","operationId":"user_me_put","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_me_put"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Users"],"summary":"Update user profile","description":"Proxy requests to User Service","operationId":"user_me_patch","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_me_patch"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/register":{"post":{"tags":["Users"],"summary":"Register a new user","description":"Proxy requests to User Service","operationId":"user_register","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_register"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["Authentication"],"summary":"Login user","description":"Proxy requests to User Service","operationId":"user_auth_login","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_auth_login"}],"title":"Body"},"example":{"username":"user123","password":"Password123!"}}}},"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/register":{"post":{"tags":["Authentication"],"summary":"Register a new user","description":"Proxy requests to User Service","operationId":"user_auth_register","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Body_user_auth_register"}],"title":"Body"},"example":{"username":"user123","email":"user@example.com","password":"Password123!","full_name":"John Doe","phone_number":"+7123456789"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/emergency/reports/{report_id}":{"get":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_report_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_report_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_report_patch","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/emergency/reports/nearby":{"get":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_reports_nearby_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/emergency/reports":{"get":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_reports_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_reports_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/emergency/alerts/{alert_id}/cancel":{"patch":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alert_cancel","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/emergency/alerts/{alert_id}":{"get":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alert_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alert_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alert_patch","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/emergency/alerts/nearby":{"get":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alerts_nearby_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/emergency/alerts/my":{"get":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alerts_my_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/emergency/alerts":{"get":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alerts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Emergency Service Proxy","description":"Proxy requests to Emergency Service","operationId":"emergency_alerts_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/locations/safe-places/{place_id}":{"get":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_safe_place_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_safe_place_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_safe_place_patch","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/locations/safe-places":{"get":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_safe_places_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_safe_places_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/locations/users/nearby":{"get":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_users_nearby_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/locations/history":{"get":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/locations/last":{"get":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_last_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/locations/update":{"post":{"summary":"Location Service Proxy","description":"Proxy requests to Location Service","operationId":"location_update_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/calendar/settings":{"get":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_settings_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/calendar/reminders":{"get":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_reminders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_reminders_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/calendar/insights":{"get":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_insights_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/calendar/cycle-overview":{"get":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_cycle_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/calendar/entries/{entry_id}":{"get":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_entry_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_entry_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_entry_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/calendar/entries":{"get":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_entries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Calendar Service Proxy","description":"Proxy requests to Calendar Service","operationId":"calendar_entries_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notifications/history":{"get":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notifications/test":{"post":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notifications/preferences":{"get":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_preferences_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notifications/devices/{device_id}":{"get":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_device_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_device_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notifications/devices":{"get":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_devices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Notification Service Proxy","description":"Proxy requests to Notification Service","operationId":"notifications_devices_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health":{"get":{"summary":"Gateway Health Check","description":"Gateway health check","operationId":"gateway_health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/services-status":{"get":{"summary":"Check Services Status","description":"Check status of all microservices","operationId":"check_services_status_api_v1_services_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","description":"Root endpoint with API information","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"Body_user_auth_login":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_auth_login"},"Body_user_auth_register":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_auth_register"},"Body_user_change_password":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_change_password"},"Body_user_dashboard_get":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_dashboard_get"},"Body_user_emergency_contact_delete":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_emergency_contact_delete"},"Body_user_emergency_contact_get":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_emergency_contact_get"},"Body_user_emergency_contact_patch":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_emergency_contact_patch"},"Body_user_emergency_contacts_get":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_emergency_contacts_get"},"Body_user_emergency_contacts_post":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_emergency_contacts_post"},"Body_user_me_get":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_me_get"},"Body_user_me_patch":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_me_patch"},"Body_user_me_put":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_me_put"},"Body_user_profile_get":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_profile_get"},"Body_user_profile_update":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_profile_update"},"Body_user_register":{"properties":{"user_create":{"anyOf":[{"$ref":"#/components/schemas/UserCreate"},{"type":"null"}]},"user_login":{"anyOf":[{"$ref":"#/components/schemas/UserLogin"},{"type":"null"}]},"user_update":{"anyOf":[{"$ref":"#/components/schemas/UserUpdate"},{"type":"null"}]},"emergency_contact_create":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactCreate"},{"type":"null"}]},"emergency_contact_update":{"anyOf":[{"$ref":"#/components/schemas/EmergencyContactUpdate"},{"type":"null"}]}},"type":"object","title":"Body_user_register"},"EmergencyContactCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"phone_number":{"type":"string","maxLength":20,"minLength":5,"title":"Phone Number"},"relationship":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Relationship"},"notes":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name","phone_number"],"title":"EmergencyContactCreate"},"EmergencyContactResponse":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"phone_number":{"type":"string","maxLength":20,"minLength":5,"title":"Phone Number"},"relationship":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Relationship"},"notes":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Notes"},"id":{"type":"integer","title":"Id"},"uuid":{"type":"string","title":"Uuid"},"user_id":{"type":"integer","title":"User Id"}},"type":"object","required":["name","phone_number","id","uuid","user_id"],"title":"EmergencyContactResponse"},"EmergencyContactUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Name"},"phone_number":{"anyOf":[{"type":"string","maxLength":20,"minLength":5},{"type":"null"}],"title":"Phone Number"},"relationship":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Relationship"},"notes":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Notes"}},"type":"object","title":"EmergencyContactUpdate"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"}},"type":"object","required":["access_token","token_type"],"title":"Token"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","default":""},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","default":""},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"bio":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bio"},"password":{"type":"string","maxLength":100,"minLength":8,"title":"Password"}},"type":"object","required":["email","password"],"title":"UserCreate"},"UserLogin":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["password"],"title":"UserLogin"},"UserResponse":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","default":""},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","default":""},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"bio":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bio"},"id":{"type":"integer","title":"Id"},"uuid":{"type":"string","title":"Uuid"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"emergency_contact_1_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact 1 Name"},"emergency_contact_1_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact 1 Phone"},"emergency_contact_2_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact 2 Name"},"emergency_contact_2_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact 2 Phone"},"location_sharing_enabled":{"type":"boolean","title":"Location Sharing Enabled"},"emergency_notifications_enabled":{"type":"boolean","title":"Emergency Notifications Enabled"},"push_notifications_enabled":{"type":"boolean","title":"Push Notifications Enabled"},"email_verified":{"type":"boolean","title":"Email Verified"},"phone_verified":{"type":"boolean","title":"Phone Verified"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["email","id","uuid","location_sharing_enabled","emergency_notifications_enabled","push_notifications_enabled","email_verified","phone_verified","is_active"],"title":"UserResponse"},"UserUpdate":{"properties":{"first_name":{"anyOf":[{"type":"string","maxLength":50,"minLength":1},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":50,"minLength":1},{"type":"null"}],"title":"Last Name"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"bio":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bio"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"emergency_contact_1_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Emergency Contact 1 Name"},"emergency_contact_1_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Emergency Contact 1 Phone"},"emergency_contact_2_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Emergency Contact 2 Name"},"emergency_contact_2_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Emergency Contact 2 Phone"},"location_sharing_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Location Sharing Enabled"},"emergency_notifications_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Emergency Notifications Enabled"},"push_notifications_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Push Notifications Enabled"}},"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"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}