{"openapi":"3.1.0","info":{"title":"Cockpit API","version":"0.1.0"},"paths":{"/api/v1/users":{"get":{"summary":"List Users","description":"List all users with their roles.","operationId":"list_users_api_v1_users_get","parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of users to skip","default":0,"title":"Skip"},"description":"Number of users to skip"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of users to return","default":100,"title":"Limit"},"description":"Maximum number of users to return"},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SimpleUserResponse"},"title":"Response List Users Api V1 Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create New User","description":"Create a new user account (admin only).","operationId":"create_new_user_api_v1_users_post","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}":{"get":{"summary":"Get User Details","description":"Get detailed user information including permissions (admin only).","operationId":"get_user_details_api_v1_users__user_id__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update User Info","description":"Update user information (admin only).","operationId":"update_user_info_api_v1_users__user_id__put","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete User Account","description":"Delete user account (admin only).","operationId":"delete_user_account_api_v1_users__user_id__delete","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/role":{"put":{"summary":"Change User Role","description":"Change user's role (admin only).","operationId":"change_user_role_api_v1_users__user_id__role_put","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"role_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Role Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserWithRole"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/permissions":{"post":{"summary":"Assign Permissions To User","description":"Assign permissions to user (admin only).","operationId":"assign_permissions_to_user_api_v1_users__user_id__permissions_post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPermissionAssign"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPermissionAssignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get User Permissions Endpoint","description":"Get all permissions assigned to a user (admin only).","operationId":"get_user_permissions_endpoint_api_v1_users__user_id__permissions_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"title":"Response Get User Permissions Endpoint Api V1 Users  User Id  Permissions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/permissions/{permission_id}":{"delete":{"summary":"Revoke Permission From User","description":"Revoke specific permission from user (admin only).","operationId":"revoke_permission_from_user_api_v1_users__user_id__permissions__permission_id__delete","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"permission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Permission Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authentication/sessions/login":{"post":{"tags":["authentication/sessions"],"summary":"Login","description":"Authenticate user with email and password.","operationId":"login_api_v1_authentication_sessions_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authentication/sessions/me":{"get":{"tags":["authentication/sessions"],"summary":"Get Current User Info","description":"Get current authenticated user information.","operationId":"get_current_user_info_api_v1_authentication_sessions_me_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfoResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authentication/sessions/logout":{"post":{"tags":["authentication/sessions"],"summary":"Logout","operationId":"logout_api_v1_authentication_sessions_logout_post","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}},{"name":"refresh_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authentication/tokens/refresh":{"post":{"tags":["authentication/tokens"],"summary":"Refresh Tokens","description":"Refresh access token using refresh token from cookie.","operationId":"refresh_tokens_api_v1_authentication_tokens_refresh_post","parameters":[{"name":"refresh_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleRefreshResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authentication/passwords/change":{"post":{"tags":["authentication/passwords"],"summary":"Change Password","description":"Change current user's password.","operationId":"change_password_api_v1_authentication_passwords_change_post","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordChangeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordChangeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authorization/roles/me":{"get":{"tags":["authorization/roles"],"summary":"Get Current User Roles","description":"Get current user's roles as a list of role names (strings).","operationId":"get_current_user_roles_api_v1_authorization_roles_me_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/src__services__authorization__roles__schemas__UserRole"},"title":"Response Get Current User Roles Api V1 Authorization Roles Me Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authorization/roles/":{"get":{"tags":["authorization/roles"],"summary":"List All Roles","description":"List all available user roles (admin only).","operationId":"list_all_roles_api_v1_authorization_roles__get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/src__services__authorization__roles__schemas__UserRole"},"title":"Response List All Roles Api V1 Authorization Roles  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authorization/permissions":{"get":{"tags":["authorization/permissions"],"summary":"Get All Permissions","description":"Get all permissions (admin only).","operationId":"get_all_permissions_api_v1_authorization_permissions_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"title":"Response Get All Permissions Api V1 Authorization Permissions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/authorization/user-permissions/me":{"get":{"tags":["authorization/user-permissions"],"summary":"Get Current User Permission","description":"Get current user's permissions.","operationId":"get_current_user_permission_api_v1_authorization_user_permissions_me_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"title":"Response Get Current User Permission Api V1 Authorization User Permissions Me Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store/":{"get":{"tags":["store"],"summary":"List Prefixes","operationId":"list_prefixes_api_v1_store__get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response List Prefixes Api V1 Store  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store/{prefix}":{"get":{"tags":["store"],"summary":"List Categories","operationId":"list_categories_api_v1_store__prefix__get","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response List Categories Api V1 Store  Prefix  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store/resolve/{prefix}/{category}/{key}":{"get":{"tags":["store"],"summary":"Resolve Key","operationId":"resolve_key_api_v1_store_resolve__prefix___category___key__get","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreEnvelope"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store/{prefix}/{category}":{"get":{"tags":["store"],"summary":"List Keys","operationId":"list_keys_api_v1_store__prefix___category__get","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response List Keys Api V1 Store  Prefix   Category  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/store/{prefix}/{category}/{key}":{"get":{"tags":["store"],"summary":"Get Key","operationId":"get_key_api_v1_store__prefix___category___key__get","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreEnvelope"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["store"],"summary":"Put Key","operationId":"put_key_api_v1_store__prefix___category___key__put","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreKeyCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreEnvelope"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["store"],"summary":"Patch Key","operationId":"patch_key_api_v1_store__prefix___category___key__patch","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreKeyPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreEnvelope"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["store"],"summary":"Delete Key","operationId":"delete_key_api_v1_store__prefix___category___key__delete","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}},{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vikunja/projects":{"get":{"tags":["vikunja"],"summary":"List Projects","operationId":"list_projects_api_v1_vikunja_projects_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vikunja/projects/{project_id}/tasks":{"get":{"tags":["vikunja"],"summary":"List Tasks","operationId":"list_tasks_api_v1_vikunja_projects__project_id__tasks_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vikunja/tasks":{"post":{"tags":["vikunja"],"summary":"Create Task","operationId":"create_task_api_v1_vikunja_tasks_post","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vikunja/tasks/{task_id}":{"patch":{"tags":["vikunja"],"summary":"Update Task","operationId":"update_task_api_v1_vikunja_tasks__task_id__patch","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTaskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brain/notes":{"get":{"tags":["brain"],"summary":"List Notes","operationId":"list_notes_api_v1_brain_notes_get","parameters":[{"name":"path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NoteMeta"},"title":"Response List Notes Api V1 Brain Notes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["brain"],"summary":"Create Note","operationId":"create_note_api_v1_brain_notes_post","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","description":"Relative path for new note, e.g. folder/my-note.md","title":"Path"},"description":"Relative path for new note, e.g. folder/my-note.md"},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brain/notes/{path}":{"get":{"tags":["brain"],"summary":"Get Note","operationId":"get_note_api_v1_brain_notes__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["brain"],"summary":"Update Note","operationId":"update_note_api_v1_brain_notes__path__put","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["brain"],"summary":"Delete Note","operationId":"delete_note_api_v1_brain_notes__path__delete","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brain/search":{"get":{"tags":["brain"],"summary":"Search Notes","operationId":"search_notes_api_v1_brain_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Full-text search query","title":"Q"},"description":"Full-text search query"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NoteSearchResult"},"title":"Response Search Notes Api V1 Brain Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brain/folders":{"get":{"tags":["brain"],"summary":"List Folders","operationId":"list_folders_api_v1_brain_folders_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderTree"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"tags":["health"],"summary":"Health Check","description":"Basic health check endpoint.","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthCheckResponse"}}}}}}},"/health/cleanup":{"get":{"tags":["health"],"summary":"Cleanup Health Check","description":"Get the health status of the token cleanup system.\n\nReturns information about:\n- Database connectivity\n- Scheduler status  \n- Current token statistics\n- System configuration","operationId":"cleanup_health_check_health_cleanup_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanupHealthResponse"}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"tags":["oauth"],"summary":"Oauth Server Metadata","operationId":"oauth_server_metadata__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthServerMetadata"}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"tags":["oauth"],"summary":"Oauth Protected Resource Metadata","operationId":"oauth_protected_resource_metadata__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectedResourceMetadata"}}}}}}},"/oauth/clients":{"post":{"tags":["oauth"],"summary":"Register Client","operationId":"register_client_oauth_clients_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRegistrationRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRegistrationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/authorize":{"get":{"tags":["oauth"],"summary":"Authorize Get","operationId":"authorize_get_oauth_authorize_get","parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string","title":"Redirect Uri"}},{"name":"response_type","in":"query","required":true,"schema":{"type":"string","title":"Response Type"}},{"name":"code_challenge","in":"query","required":true,"schema":{"type":"string","title":"Code Challenge"}},{"name":"code_challenge_method","in":"query","required":false,"schema":{"type":"string","default":"S256","title":"Code Challenge Method"}},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["oauth"],"summary":"Authorize Post","operationId":"authorize_post_oauth_authorize_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_authorize_post_oauth_authorize_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/token":{"post":{"tags":["oauth"],"summary":"Token Endpoint","operationId":"token_endpoint_oauth_token_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_token_endpoint_oauth_token_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/presets":{"get":{"summary":"List Presets","description":"List all preset habit templates.","operationId":"list_presets_api_v1_presets_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PresetHabitResponse"},"title":"Response List Presets Api V1 Presets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/stats/today":{"get":{"summary":"Get Today Stats","description":"Today's habit completion stats.","operationId":"get_today_stats_api_v1_habits_stats_today_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/stats/weekly":{"get":{"summary":"Get Weekly Stats","description":"Weekly bar chart data (last 7 days).","operationId":"get_weekly_stats_api_v1_habits_stats_weekly_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/stats/streaks":{"get":{"summary":"Get Streak Ranking","description":"Streak ranking — top habits by current_streak desc.","operationId":"get_streak_ranking_api_v1_habits_stats_streaks_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HabitResponse"},"title":"Response Get Streak Ranking Api V1 Habits Stats Streaks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/stats/monthly-highlights":{"get":{"summary":"Get Monthly Highlights","description":"Monthly highlights.","operationId":"get_monthly_highlights_api_v1_habits_stats_monthly_highlights_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/settings/vapid-public-key":{"get":{"summary":"Get Vapid Public Key","description":"Return the VAPID public key for Web Push registration.","operationId":"get_vapid_public_key_api_v1_habits_settings_vapid_public_key_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VapidPublicKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/settings":{"get":{"summary":"Get Settings","description":"Get current user's push notification settings.","operationId":"get_settings_api_v1_habits_settings_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserHabitSettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update Settings","description":"Update push subscription / notifications_enabled.","operationId":"update_settings_api_v1_habits_settings_patch","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserHabitSettingsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserHabitSettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/categories":{"get":{"summary":"List Categories","description":"List habit categories.","operationId":"list_categories_api_v1_habits_categories_get","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HabitCategoryResponse"},"title":"Response List Categories Api V1 Habits Categories Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Category","description":"Create a new habit category.","operationId":"create_category_api_v1_habits_categories_post","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitCategoryCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/categories/{category_id}":{"patch":{"summary":"Update Category","description":"Update a habit category.","operationId":"update_category_api_v1_habits_categories__category_id__patch","parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Category Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitCategoryCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitCategoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Category","description":"Delete a habit category.","operationId":"delete_category_api_v1_habits_categories__category_id__delete","parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Category Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits":{"get":{"summary":"List Habits","description":"List habits for the current user.","operationId":"list_habits_api_v1_habits_get","parameters":[{"name":"archived","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter: 'false' (default), 'true', or 'all'","default":"false","title":"Archived"},"description":"Filter: 'false' (default), 'true', or 'all'"},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HabitResponse"},"title":"Response List Habits Api V1 Habits Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Habit","description":"Create a new habit.","operationId":"create_habit_api_v1_habits_post","parameters":[{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/{habit_id}":{"get":{"summary":"Get Habit","description":"Get a single habit.","operationId":"get_habit_api_v1_habits__habit_id__get","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update Habit","description":"Partially update a habit.","operationId":"update_habit_api_v1_habits__habit_id__patch","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Habit","description":"Delete a habit.","operationId":"delete_habit_api_v1_habits__habit_id__delete","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/{habit_id}/entries":{"get":{"summary":"List Entries","description":"List entries for a habit.","operationId":"list_entries_api_v1_habits__habit_id__entries_get","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HabitEntryResponse"},"title":"Response List Entries Api V1 Habits  Habit Id  Entries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Upsert Entry","description":"Upsert a habit entry for a given date.","operationId":"upsert_entry_api_v1_habits__habit_id__entries_post","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitEntryCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/{habit_id}/entries/{entry_id}":{"delete":{"summary":"Delete Entry","description":"Delete a habit entry.","operationId":"delete_entry_api_v1_habits__habit_id__entries__entry_id__delete","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Entry Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/{habit_id}/streak":{"get":{"summary":"Get Streak","description":"Get current streak for a habit.","operationId":"get_streak_api_v1_habits__habit_id__streak_get","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreakResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/habits/{habit_id}/freezes":{"post":{"summary":"Create Freeze","description":"Apply a streak freeze for a specific date.","operationId":"create_freeze_api_v1_habits__habit_id__freezes_post","parameters":[{"name":"habit_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Habit Id"}},{"name":"freeze_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Freeze Date"}},{"name":"access_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HabitStreakFreezeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"tags":["root"],"summary":"Read Root","operationId":"read_root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"Action":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["name","id"],"title":"Action","description":"Complete action schema."},"Body_authorize_post_oauth_authorize_post":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"response_type":{"type":"string","title":"Response Type"},"code_challenge":{"type":"string","title":"Code Challenge"},"code_challenge_method":{"type":"string","title":"Code Challenge Method","default":"S256"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["client_id","redirect_uri","response_type","code_challenge","email","password"],"title":"Body_authorize_post_oauth_authorize_post"},"Body_token_endpoint_oauth_token_post":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"code_verifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Verifier"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}},"type":"object","required":["grant_type"],"title":"Body_token_endpoint_oauth_token_post"},"CleanupHealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"timestamp":{"type":"string","title":"Timestamp"},"health_checks":{"additionalProperties":true,"type":"object","title":"Health Checks"},"scheduler":{"$ref":"#/components/schemas/SchedulerInfo"},"configuration":{"$ref":"#/components/schemas/ConfigInfo"}},"type":"object","required":["status","timestamp","health_checks","scheduler","configuration"],"title":"CleanupHealthResponse","description":"Detailed health check response for cleanup system."},"ClientRegistrationRequest":{"properties":{"client_name":{"type":"string","title":"Client Name"},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris"},"grant_types":{"items":{"type":"string"},"type":"array","title":"Grant Types","default":["authorization_code"]},"response_types":{"items":{"type":"string"},"type":"array","title":"Response Types","default":["code"]},"token_endpoint_auth_method":{"type":"string","title":"Token Endpoint Auth Method","default":"none"}},"type":"object","required":["client_name","redirect_uris"],"title":"ClientRegistrationRequest"},"ClientRegistrationResponse":{"properties":{"client_id":{"type":"string","title":"Client Id"},"client_name":{"type":"string","title":"Client Name"},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris"},"grant_types":{"items":{"type":"string"},"type":"array","title":"Grant Types"},"response_types":{"items":{"type":"string"},"type":"array","title":"Response Types"},"token_endpoint_auth_method":{"type":"string","title":"Token Endpoint Auth Method"}},"type":"object","required":["client_id","client_name","redirect_uris","grant_types","response_types","token_endpoint_auth_method"],"title":"ClientRegistrationResponse"},"ConfigInfo":{"properties":{"cleanup_enabled":{"type":"boolean","title":"Cleanup Enabled"},"cleanup_schedule":{"type":"string","title":"Cleanup Schedule"},"retention_days":{"type":"integer","title":"Retention Days"},"batch_size":{"type":"integer","title":"Batch Size"}},"type":"object","required":["cleanup_enabled","cleanup_schedule","retention_days","batch_size"],"title":"ConfigInfo","description":"System configuration information."},"CreateTaskRequest":{"properties":{"title":{"type":"string","title":"Title"},"project_id":{"type":"integer","title":"Project Id"},"description":{"type":"string","title":"Description","default":""},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due Date"}},"type":"object","required":["title","project_id"],"title":"CreateTaskRequest"},"Feature":{"properties":{"name":{"type":"string","title":"Name"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["name","id"],"title":"Feature","description":"Complete feature schema."},"FolderTree":{"properties":{"folders":{"items":{"type":"string"},"type":"array","title":"Folders"}},"type":"object","required":["folders"],"title":"FolderTree"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HabitCategoryCreate":{"properties":{"name":{"type":"string","title":"Name"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["name"],"title":"HabitCategoryCreate"},"HabitCategoryResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"name":{"type":"string","title":"Name"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"sort_order":{"type":"integer","title":"Sort Order"}},"type":"object","required":["id","user_id","name","sort_order"],"title":"HabitCategoryResponse"},"HabitCreate":{"properties":{"name":{"type":"string","title":"Name"},"icon":{"type":"string","title":"Icon"},"type":{"type":"string","title":"Type"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"frequency_type":{"type":"string","title":"Frequency Type","default":"daily"},"frequency_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Frequency Value"},"target_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Value"},"target_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Unit"},"streak_mode":{"type":"string","title":"Streak Mode","default":"soft"},"reminder_time":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Reminder Time"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"category_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Category Id"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["name","icon","type"],"title":"HabitCreate"},"HabitEntryCreate":{"properties":{"logged_at":{"type":"string","format":"date","title":"Logged At"},"boolean_value":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Boolean Value"},"numeric_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Numeric Value"},"numeric_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Numeric Unit"},"text_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Value"}},"type":"object","required":["logged_at"],"title":"HabitEntryCreate"},"HabitEntryResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"habit_id":{"type":"string","format":"uuid","title":"Habit Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"logged_at":{"type":"string","format":"date","title":"Logged At"},"boolean_value":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Boolean Value"},"numeric_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Numeric Value"},"numeric_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Numeric Unit"},"text_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Value"}},"type":"object","required":["id","habit_id","user_id","logged_at"],"title":"HabitEntryResponse"},"HabitResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"name":{"type":"string","title":"Name"},"icon":{"type":"string","title":"Icon"},"type":{"type":"string","title":"Type"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"frequency_type":{"type":"string","title":"Frequency Type"},"frequency_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Frequency Value"},"target_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Value"},"target_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Unit"},"streak_mode":{"type":"string","title":"Streak Mode"},"reminder_time":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Reminder Time"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"category_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Category Id"},"is_archived":{"type":"boolean","title":"Is Archived"},"sort_order":{"type":"integer","title":"Sort Order"},"best_streak":{"type":"integer","title":"Best Streak"},"current_streak":{"type":"integer","title":"Current Streak","default":0},"category_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Name"},"today_entry":{"anyOf":[{"$ref":"#/components/schemas/HabitEntryResponse"},{"type":"null"}]}},"type":"object","required":["id","user_id","name","icon","type","frequency_type","streak_mode","is_archived","sort_order","best_streak"],"title":"HabitResponse"},"HabitStreakFreezeResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"habit_id":{"type":"string","format":"uuid","title":"Habit Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"freeze_date":{"type":"string","format":"date","title":"Freeze Date"}},"type":"object","required":["id","habit_id","user_id","freeze_date"],"title":"HabitStreakFreezeResponse"},"HabitUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"frequency_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency Type"},"frequency_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Frequency Value"},"target_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Value"},"target_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Unit"},"streak_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Streak Mode"},"reminder_time":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Reminder Time"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"category_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Category Id"},"is_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Archived"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"HabitUpdate"},"HealthCheckResponse":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"HealthCheckResponse","description":"Basic health check response."},"JobInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"next_run_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Run Time"}},"type":"object","required":["id","name"],"title":"JobInfo","description":"Information about a scheduled job."},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest","description":"Schema for login request."},"LoginResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"LoginResponse","description":"Response model for login endpoint."},"LogoutResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"LogoutResponse","description":"Response model for logout endpoint."},"Note":{"properties":{"path":{"type":"string","title":"Path"},"title":{"type":"string","title":"Title"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"type":{"type":"string","title":"Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"body":{"type":"string","title":"Body"}},"type":"object","required":["path","title","tags","type","created_at","updated_at","aliases","body"],"title":"Note"},"NoteCreate":{"properties":{"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"type":{"type":"string","title":"Type","default":"note"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases","default":[]}},"type":"object","required":["title","body"],"title":"NoteCreate"},"NoteMeta":{"properties":{"path":{"type":"string","title":"Path"},"title":{"type":"string","title":"Title"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"type":{"type":"string","title":"Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"}},"type":"object","required":["path","title","tags","type","created_at","updated_at","aliases"],"title":"NoteMeta"},"NoteSearchResult":{"properties":{"path":{"type":"string","title":"Path"},"title":{"type":"string","title":"Title"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"type":{"type":"string","title":"Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"excerpt":{"type":"string","title":"Excerpt"}},"type":"object","required":["path","title","tags","type","created_at","updated_at","aliases","excerpt"],"title":"NoteSearchResult"},"NoteUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"}},"type":"object","title":"NoteUpdate"},"OAuthServerMetadata":{"properties":{"issuer":{"type":"string","title":"Issuer"},"authorization_endpoint":{"type":"string","title":"Authorization Endpoint"},"token_endpoint":{"type":"string","title":"Token Endpoint"},"registration_endpoint":{"type":"string","title":"Registration Endpoint"},"response_types_supported":{"items":{"type":"string"},"type":"array","title":"Response Types Supported","default":["code"]},"grant_types_supported":{"items":{"type":"string"},"type":"array","title":"Grant Types Supported","default":["authorization_code","refresh_token"]},"code_challenge_methods_supported":{"items":{"type":"string"},"type":"array","title":"Code Challenge Methods Supported","default":["S256"]},"token_endpoint_auth_methods_supported":{"items":{"type":"string"},"type":"array","title":"Token Endpoint Auth Methods Supported","default":["none"]}},"type":"object","required":["issuer","authorization_endpoint","token_endpoint","registration_endpoint"],"title":"OAuthServerMetadata"},"PasswordChangeRequest":{"properties":{"current_password":{"type":"string","title":"Current Password"},"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["current_password","new_password"],"title":"PasswordChangeRequest","description":"Schema for password change request."},"PasswordChangeResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"PasswordChangeResponse","description":"Response model for password change endpoint."},"Permission":{"properties":{"feature_id":{"type":"string","format":"uuid","title":"Feature Id"},"action_id":{"type":"string","format":"uuid","title":"Action Id"},"id":{"type":"string","format":"uuid","title":"Id"},"feature":{"anyOf":[{"$ref":"#/components/schemas/Feature"},{"type":"null"}]},"action":{"anyOf":[{"$ref":"#/components/schemas/Action"},{"type":"null"}]}},"type":"object","required":["feature_id","action_id","id"],"title":"Permission","description":"Complete permission schema."},"PresetHabitResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"icon":{"type":"string","title":"Icon"},"type":{"type":"string","title":"Type"},"category_key":{"type":"string","title":"Category Key"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"default_frequency_type":{"type":"string","title":"Default Frequency Type"},"default_target_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Default Target Value"},"default_target_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Target Unit"},"sort_order":{"type":"integer","title":"Sort Order"}},"type":"object","required":["id","name","icon","type","category_key","default_frequency_type","sort_order"],"title":"PresetHabitResponse"},"ProtectedResourceMetadata":{"properties":{"resource":{"type":"string","title":"Resource"},"authorization_servers":{"items":{"type":"string"},"type":"array","title":"Authorization Servers"},"bearer_methods_supported":{"items":{"type":"string"},"type":"array","title":"Bearer Methods Supported","default":["header"]}},"type":"object","required":["resource","authorization_servers"],"title":"ProtectedResourceMetadata"},"SchedulerInfo":{"properties":{"running":{"type":"boolean","title":"Running"},"jobs":{"items":{"$ref":"#/components/schemas/JobInfo"},"type":"array","title":"Jobs"}},"type":"object","required":["running","jobs"],"title":"SchedulerInfo","description":"Information about the scheduler."},"SimpleRefreshResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"SimpleRefreshResponse","description":"Simple response model for refresh endpoint."},"SimpleUserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["id","email"],"title":"SimpleUserResponse","description":"Schema for user ID and email."},"StoreEnvelope":{"properties":{"meta":{"$ref":"#/components/schemas/StoreMeta"},"data":{"title":"Data"}},"type":"object","required":["meta","data"],"title":"StoreEnvelope"},"StoreKeyCreate":{"properties":{"type":{"type":"string","title":"Type"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"data":{"title":"Data"}},"type":"object","required":["type","data"],"title":"StoreKeyCreate"},"StoreKeyPatch":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","required":["data"],"title":"StoreKeyPatch"},"StoreMeta":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","title":"Type"},"version":{"type":"integer","title":"Version","default":1},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]}},"type":"object","required":["key","type","created_at","updated_at"],"title":"StoreMeta"},"StreakResponse":{"properties":{"current_streak":{"type":"integer","title":"Current Streak"},"best_streak":{"type":"integer","title":"Best Streak"},"last_period_completed":{"type":"boolean","title":"Last Period Completed"}},"type":"object","required":["current_streak","best_streak","last_period_completed"],"title":"StreakResponse"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"Bearer"},"expires_in":{"type":"integer","title":"Expires In"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},"type":"object","required":["access_token","expires_in"],"title":"TokenResponse"},"UpdateTaskRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"done":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Done"},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due Date"}},"type":"object","title":"UpdateTaskRequest"},"User":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"id":{"type":"string","format":"uuid","title":"Id"},"role_id":{"type":"string","format":"uuid","title":"Role Id"},"password_changed":{"type":"boolean","title":"Password Changed"},"created_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["email","id","role_id","password_changed","created_at","updated_at"],"title":"User","description":"Public user schema without sensitive data."},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"role_id":{"type":"string","format":"uuid","title":"Role Id"}},"type":"object","required":["email","role_id"],"title":"UserCreate","description":"Schema for creating a new user."},"UserHabitSettingsResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"push_subscription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Push Subscription"},"notifications_enabled":{"type":"boolean","title":"Notifications Enabled"}},"type":"object","required":["id","user_id","notifications_enabled"],"title":"UserHabitSettingsResponse"},"UserHabitSettingsUpdate":{"properties":{"push_subscription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Push Subscription"},"notifications_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Notifications Enabled"}},"type":"object","title":"UserHabitSettingsUpdate"},"UserInfoResponse":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"email":{"type":"string","title":"Email"},"is_active":{"type":"boolean","title":"Is Active"},"password_changed":{"type":"boolean","title":"Password Changed"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["user_id","email","is_active","password_changed","created_at"],"title":"UserInfoResponse","description":"Response model for user information endpoint."},"UserPermissionAssign":{"properties":{"permission_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Permission Ids"}},"type":"object","required":["permission_ids"],"title":"UserPermissionAssign","description":"Schema for assigning permissions to user."},"UserPermissionAssignResponse":{"properties":{"detail":{"type":"string","title":"Detail"},"assigned_permissions":{"type":"integer","title":"Assigned Permissions"}},"type":"object","required":["detail","assigned_permissions"],"title":"UserPermissionAssignResponse","description":"Response model for permission assignment endpoint."},"UserUpdate":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"role_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Role Id"}},"type":"object","title":"UserUpdate","description":"Schema for updating a user."},"UserWithRole":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","default":true},"id":{"type":"string","format":"uuid","title":"Id"},"role_id":{"type":"string","format":"uuid","title":"Role Id"},"password_changed":{"type":"boolean","title":"Password Changed"},"created_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"role":{"$ref":"#/components/schemas/src__services__authorization__roles__models__UserRole"}},"type":"object","required":["email","id","role_id","password_changed","created_at","updated_at","role"],"title":"UserWithRole","description":"User schema with role information."},"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"},"VapidPublicKeyResponse":{"properties":{"public_key":{"type":"string","title":"Public Key"}},"type":"object","required":["public_key"],"title":"VapidPublicKeyResponse"},"src__services__authorization__roles__models__UserRole":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"UserRole"},"src__services__authorization__roles__schemas__UserRole":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["name","id"],"title":"UserRole","description":"Complete user role schema."}}}}