Première exécution réelle de la stack (build des images, PostgreSQL 16, parcours fonctionnels en HTTP) : 28 tables, 105 index, extension pg_trgm, et 181 assertions rejouées après correction. Santé : filtres enum invalides renvoyaient 500 au lieu d'une erreur française ; plan_line s'arrêtait à la fin de la fenêtre du graphique au lieu de la date d'atteinte de l'objectif ; deficit_target_kcal était recalculé après le plancher calorique ; « dernière pesée » affichait deux valeurs différentes selon l'endpoint ; objectif protéines absent. Vape : durée de vie moyenne des résistances incluait la résistance en cours ; archiver la recette active la laissait active ; coût théorique inventé avant la date d'arrêt ; économies projetées dans le futur ; €/ml arrondi à 2 décimales écrasait le modèle de coût DIY. Finances : le sankey compensait crédits et débits non catégorisés ; rows_total excluait les lignes filtrées, faussant l'arithmétique du rapport d'import. Socle : les erreurs HTTP du framework fuitaient en anglais dans l'enveloppe française ; nginx renvoyait sa page 413 HTML au lieu du JSON français ; fins de ligne normalisées en LF. 348 tests pytest (+7), ruff, tsc et vite build au vert. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
18293 lines
430 KiB
JSON
18293 lines
430 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "LifeTrack API",
|
|
"version": "1.0.0"
|
|
},
|
|
"paths": {
|
|
"/api/auth/status": {
|
|
"get": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Auth Status",
|
|
"operationId": "auth_status_api_auth_status_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuthStatus"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/auth/setup": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Setup",
|
|
"operationId": "setup_api_auth_setup_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SetupRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/auth/login": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Login",
|
|
"operationId": "login_api_auth_login_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/auth/me": {
|
|
"get": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Me",
|
|
"operationId": "me_api_auth_me_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserRead"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Update Me",
|
|
"operationId": "update_me_api_auth_me_patch",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/auth/device-keys": {
|
|
"get": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "List Device Keys",
|
|
"operationId": "list_device_keys_api_auth_device_keys_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DeviceKeyRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Device Keys Api Auth Device Keys Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Create Device Key",
|
|
"operationId": "create_device_key_api_auth_device_keys_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeviceKeyCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeviceKeyCreated"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/auth/device-keys/{key_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Revoke Device Key",
|
|
"operationId": "revoke_device_key_api_auth_device_keys__key_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "key_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Key Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/accounts": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "List Accounts",
|
|
"operationId": "list_accounts_api_finance_accounts_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "include_archived",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Include Archived"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AccountRead"
|
|
},
|
|
"title": "Response List Accounts Api Finance Accounts Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Create Account",
|
|
"operationId": "create_account_api_finance_accounts_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccountCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccountRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/accounts/{account_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Update Account",
|
|
"operationId": "update_account_api_finance_accounts__account_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "account_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Account Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccountUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccountRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Delete Account",
|
|
"operationId": "delete_account_api_finance_accounts__account_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "account_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Account Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/categories": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "List Categories",
|
|
"operationId": "list_categories_api_finance_categories_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CategoryRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Categories Api Finance Categories Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Create Category",
|
|
"operationId": "create_category_api_finance_categories_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CategoryCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CategoryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/categories/{category_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Update Category",
|
|
"operationId": "update_category_api_finance_categories__category_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "category_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Category Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CategoryUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CategoryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Delete Category",
|
|
"operationId": "delete_category_api_finance_categories__category_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "category_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Category Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/source-profiles": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "List Source Profiles",
|
|
"operationId": "list_source_profiles_api_finance_source_profiles_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SourceProfileRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Source Profiles Api Finance Source Profiles Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Create Source Profile",
|
|
"operationId": "create_source_profile_api_finance_source_profiles_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceProfileCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceProfileRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/source-profiles/{profile_id}/clone": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Clone Source Profile",
|
|
"operationId": "clone_source_profile_api_finance_source_profiles__profile_id__clone_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "profile_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Profile Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceProfileRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/source-profiles/{profile_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Update Source Profile",
|
|
"operationId": "update_source_profile_api_finance_source_profiles__profile_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "profile_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Profile Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceProfileUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceProfileRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Delete Source Profile",
|
|
"operationId": "delete_source_profile_api_finance_source_profiles__profile_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "profile_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Profile Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/transactions": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "List Transactions",
|
|
"operationId": "list_transactions_api_finance_transactions_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "date_from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date From"
|
|
}
|
|
},
|
|
{
|
|
"name": "date_to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date To"
|
|
}
|
|
},
|
|
{
|
|
"name": "account_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "category_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"name": "direction",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"debit",
|
|
"credit"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Direction"
|
|
}
|
|
},
|
|
{
|
|
"name": "amount_min",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Amount Min"
|
|
}
|
|
},
|
|
{
|
|
"name": "amount_max",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Amount Max"
|
|
}
|
|
},
|
|
{
|
|
"name": "is_transfer",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Transfer"
|
|
}
|
|
},
|
|
{
|
|
"name": "import_run_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Import Run Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_TransactionRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Create Transaction",
|
|
"operationId": "create_transaction_api_finance_transactions_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransactionCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransactionRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/transactions/{transaction_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Update Transaction",
|
|
"operationId": "update_transaction_api_finance_transactions__transaction_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "transaction_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Transaction Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransactionUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransactionRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Delete Transaction",
|
|
"operationId": "delete_transaction_api_finance_transactions__transaction_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "transaction_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Transaction Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/transactions/bulk-categorize": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Bulk Categorize",
|
|
"operationId": "bulk_categorize_api_finance_transactions_bulk_categorize_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkCategorizeRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkCategorizeResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/rules": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "List Rules",
|
|
"operationId": "list_rules_api_finance_rules_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/RuleRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Rules Api Finance Rules Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Create Rule",
|
|
"operationId": "create_rule_api_finance_rules_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RuleCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RuleRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/rules/{rule_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Update Rule",
|
|
"operationId": "update_rule_api_finance_rules__rule_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "rule_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Rule Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RuleUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RuleRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Delete Rule",
|
|
"operationId": "delete_rule_api_finance_rules__rule_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "rule_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Rule Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/rules/reorder": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Reorder Rules",
|
|
"operationId": "reorder_rules_api_finance_rules_reorder_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RuleReorderRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/RuleRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Response Reorder Rules Api Finance Rules Reorder Post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/rules/apply": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Apply Rules",
|
|
"operationId": "apply_rules_api_finance_rules_apply_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RuleApplyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RuleApplyResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/rules/preview": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Preview Rule",
|
|
"operationId": "preview_rule_api_finance_rules_preview_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RulePreviewRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RulePreviewResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/budgets": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "List Budgets",
|
|
"operationId": "list_budgets_api_finance_budgets_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "month",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Month"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app__modules__finance__schemas__BudgetRead"
|
|
},
|
|
"title": "Response List Budgets Api Finance Budgets Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Create Budget",
|
|
"operationId": "create_budget_api_finance_budgets_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BudgetCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__finance__schemas__BudgetRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/budgets/{budget_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Update Budget",
|
|
"operationId": "update_budget_api_finance_budgets__budget_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "budget_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Budget Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BudgetUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app__modules__finance__schemas__BudgetRead"
|
|
},
|
|
"title": "Response Update Budget Api Finance Budgets Budget Id Patch"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Delete Budget",
|
|
"operationId": "delete_budget_api_finance_budgets__budget_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "budget_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Budget Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/imports/preview": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Preview Import",
|
|
"operationId": "preview_import_api_finance_imports_preview_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_preview_import_api_finance_imports_preview_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ImportPreviewResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/imports": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Run Import",
|
|
"operationId": "run_import_api_finance_imports_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_run_import_api_finance_imports_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__finance__schemas__ImportRunRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "List Imports",
|
|
"operationId": "list_imports_api_finance_imports_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__core__pagination__Page_ImportRunRead___1"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/imports/{run_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Get Import",
|
|
"operationId": "get_import_api_finance_imports__run_id__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "run_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Run Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__finance__schemas__ImportRunRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Rollback Import",
|
|
"operationId": "rollback_import_api_finance_imports__run_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "run_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Run Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "force",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Force"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/transfers/detect": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Detect Transfers",
|
|
"operationId": "detect_transfers_api_finance_transfers_detect_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TransferDetectRequest"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Payload"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransferDetectResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/transfers/link": {
|
|
"post": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Link Transfer",
|
|
"operationId": "link_transfer_api_finance_transfers_link_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransferLinkRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransferLinkResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/finance/transfers/{transfer_group_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Unlink Transfer",
|
|
"operationId": "unlink_transfer_api_finance_transfers__transfer_group_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "transfer_group_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Transfer Group Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/stats/monthly-by-category": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Stats Monthly By Category",
|
|
"operationId": "stats_monthly_by_category_api_finance_stats_monthly_by_category_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "months",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 60,
|
|
"minimum": 1,
|
|
"default": 12,
|
|
"title": "Months"
|
|
}
|
|
},
|
|
{
|
|
"name": "level",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"enum": [
|
|
"root",
|
|
"child"
|
|
],
|
|
"type": "string",
|
|
"default": "root",
|
|
"title": "Level"
|
|
}
|
|
},
|
|
{
|
|
"name": "direction",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"enum": [
|
|
"debit",
|
|
"credit"
|
|
],
|
|
"type": "string",
|
|
"default": "debit",
|
|
"title": "Direction"
|
|
}
|
|
},
|
|
{
|
|
"name": "account_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MonthlyByCategoryResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/stats/cashflow": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Stats Cashflow",
|
|
"operationId": "stats_cashflow_api_finance_stats_cashflow_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "months",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 60,
|
|
"minimum": 1,
|
|
"default": 12,
|
|
"title": "Months"
|
|
}
|
|
},
|
|
{
|
|
"name": "account_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CashflowResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/stats/top-merchants": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Stats Top Merchants",
|
|
"operationId": "stats_top_merchants_api_finance_stats_top_merchants_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "months",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 60,
|
|
"minimum": 1,
|
|
"default": 3,
|
|
"title": "Months"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"default": 15,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"name": "direction",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"enum": [
|
|
"debit",
|
|
"credit"
|
|
],
|
|
"type": "string",
|
|
"default": "debit",
|
|
"title": "Direction"
|
|
}
|
|
},
|
|
{
|
|
"name": "account_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TopMerchantsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/stats/recurring": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Stats Recurring",
|
|
"operationId": "stats_recurring_api_finance_stats_recurring_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "direction",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"enum": [
|
|
"debit",
|
|
"credit"
|
|
],
|
|
"type": "string",
|
|
"default": "debit",
|
|
"title": "Direction"
|
|
}
|
|
},
|
|
{
|
|
"name": "include_inactive",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Include Inactive"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RecurringResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/stats/budget-progress": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Stats Budget Progress",
|
|
"operationId": "stats_budget_progress_api_finance_stats_budget_progress_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "month",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Month"
|
|
}
|
|
},
|
|
{
|
|
"name": "account_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BudgetProgressResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/stats/sankey": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Stats Sankey",
|
|
"operationId": "stats_sankey_api_finance_stats_sankey_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "month",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Month"
|
|
}
|
|
},
|
|
{
|
|
"name": "months",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 60,
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Months"
|
|
}
|
|
},
|
|
{
|
|
"name": "account_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SankeyResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/finance/dashboard": {
|
|
"get": {
|
|
"tags": [
|
|
"finance"
|
|
],
|
|
"summary": "Dashboard",
|
|
"operationId": "dashboard_api_finance_dashboard_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__finance__schemas__DashboardResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/health/profile": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Get Profile",
|
|
"operationId": "get_profile_api_health_profile_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HealthProfileRead"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Put Profile",
|
|
"operationId": "put_profile_api_health_profile_put",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HealthProfileUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HealthProfileRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/health/weights/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Weights Stats",
|
|
"operationId": "weights_stats_api_health_weights_stats_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/weights": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Weights",
|
|
"operationId": "list_weights_api_health_weights_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_WeightEntryRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Create Weight",
|
|
"operationId": "create_weight_api_health_weights_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WeightEntryCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WeightEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/weights/{entry_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Weight",
|
|
"operationId": "update_weight_api_health_weights__entry_id__put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WeightEntryUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WeightEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Weight",
|
|
"operationId": "update_weight_api_health_weights__entry_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WeightEntryUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WeightEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Weight",
|
|
"operationId": "delete_weight_api_health_weights__entry_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/measurements/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Measurements Stats",
|
|
"operationId": "measurements_stats_api_health_measurements_stats_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/measurements": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Measurements",
|
|
"operationId": "list_measurements_api_health_measurements_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_BodyMeasurementRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Create Measurement",
|
|
"operationId": "create_measurement_api_health_measurements_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BodyMeasurementCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BodyMeasurementRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/measurements/{row_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Measurement",
|
|
"operationId": "update_measurement_api_health_measurements__row_id__put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "row_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Row Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BodyMeasurementUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BodyMeasurementRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Measurement",
|
|
"operationId": "update_measurement_api_health_measurements__row_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "row_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Row Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BodyMeasurementUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BodyMeasurementRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Measurement",
|
|
"operationId": "delete_measurement_api_health_measurements__row_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "row_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Row Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/activity/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Activity Stats",
|
|
"operationId": "activity_stats_api_health_activity_stats_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/activity": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Activity",
|
|
"operationId": "list_activity_api_health_activity_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "raw",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Raw"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Upsert Activity",
|
|
"operationId": "upsert_activity_api_health_activity_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DailyActivityUpsert"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DailyActivityRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/activity/{row_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Activity",
|
|
"operationId": "delete_activity_api_health_activity__row_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "row_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Row Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/workouts/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Workouts Stats",
|
|
"operationId": "workouts_stats_api_health_workouts_stats_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/workouts": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Workouts",
|
|
"operationId": "list_workouts_api_health_workouts_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "sport_type",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SportType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sport Type"
|
|
}
|
|
},
|
|
{
|
|
"name": "include_hidden",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Include Hidden"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_WorkoutRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Create Workout",
|
|
"operationId": "create_workout_api_health_workouts_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkoutCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkoutRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/workouts/{workout_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Workout",
|
|
"operationId": "update_workout_api_health_workouts__workout_id__put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "workout_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Workout Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkoutUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkoutRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Workout",
|
|
"operationId": "update_workout_api_health_workouts__workout_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "workout_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Workout Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkoutUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkoutRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Workout",
|
|
"operationId": "delete_workout_api_health_workouts__workout_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "workout_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Workout Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/goals/active": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Get Active Goal",
|
|
"operationId": "get_active_goal_api_health_goals_active_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActiveGoalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/goals": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Goals",
|
|
"operationId": "list_goals_api_health_goals_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "status",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalStatus"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_GoalRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Create Goal",
|
|
"operationId": "create_goal_api_health_goals_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "replace_active",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Replace Active"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/goals/{goal_id}/activate": {
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Activate Goal",
|
|
"operationId": "activate_goal_api_health_goals__goal_id__activate_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "goal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Goal Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/goals/{goal_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Goal",
|
|
"operationId": "update_goal_api_health_goals__goal_id__put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "goal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Goal Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Goal",
|
|
"operationId": "update_goal_api_health_goals__goal_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "goal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Goal Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Goal",
|
|
"operationId": "delete_goal_api_health_goals__goal_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "goal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Goal Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/energy-balance": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Energy Balance",
|
|
"operationId": "energy_balance_api_health_energy_balance_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/dashboard": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Dashboard",
|
|
"operationId": "dashboard_api_health_dashboard_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__DashboardResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Nutrition Stats",
|
|
"operationId": "nutrition_stats_api_health_nutrition_stats_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/days": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Nutrition Days",
|
|
"operationId": "nutrition_days_api_health_nutrition_days_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/NutritionDayRead"
|
|
},
|
|
"title": "Response Nutrition Days Api Health Nutrition Days Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/days/{day}": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Nutrition Day",
|
|
"operationId": "nutrition_day_api_health_nutrition_days__day__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "day",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Day"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NutritionDayDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/recent": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Recent Foods",
|
|
"operationId": "recent_foods_api_health_nutrition_recent_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 50,
|
|
"minimum": 1,
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RecentFoodRead"
|
|
},
|
|
"title": "Response Recent Foods Api Health Nutrition Recent Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/favorites": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Favorites",
|
|
"operationId": "list_favorites_api_health_nutrition_favorites_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_FoodFavoriteRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Create Favorite",
|
|
"operationId": "create_favorite_api_health_nutrition_favorites_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodFavoriteCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodFavoriteRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/favorites/{favorite_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Favorite",
|
|
"operationId": "update_favorite_api_health_nutrition_favorites__favorite_id__put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "favorite_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Favorite Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodFavoriteUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodFavoriteRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Favorite",
|
|
"operationId": "update_favorite_api_health_nutrition_favorites__favorite_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "favorite_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Favorite Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodFavoriteUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodFavoriteRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Favorite",
|
|
"operationId": "delete_favorite_api_health_nutrition_favorites__favorite_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "favorite_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Favorite Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/water/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Water Stats",
|
|
"operationId": "water_stats_api_health_nutrition_water_stats_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/water": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Water",
|
|
"operationId": "list_water_api_health_nutrition_water_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_WaterEntryRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Create Water",
|
|
"operationId": "create_water_api_health_nutrition_water_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WaterEntryCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WaterEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/water/{entry_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Water",
|
|
"operationId": "delete_water_api_health_nutrition_water__entry_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/entries": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Food Entries",
|
|
"operationId": "list_food_entries_api_health_nutrition_entries_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "day",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Day"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "meal",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Meal"
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_FoodEntryRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Create Food Entry",
|
|
"operationId": "create_food_entry_api_health_nutrition_entries_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodEntryCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/nutrition/entries/{entry_id}": {
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Food Entry",
|
|
"operationId": "update_food_entry_api_health_nutrition_entries__entry_id__put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodEntryUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Update Food Entry",
|
|
"operationId": "update_food_entry_api_health_nutrition_entries__entry_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodEntryUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Delete Food Entry",
|
|
"operationId": "delete_food_entry_api_health_nutrition_entries__entry_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/foods/search": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Search Foods",
|
|
"operationId": "search_foods_api_health_foods_search_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 100,
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 50,
|
|
"minimum": 1,
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodSearchResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/foods/barcode/{barcode}": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Food By Barcode",
|
|
"operationId": "food_by_barcode_api_health_foods_barcode__barcode__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "barcode",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Barcode"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FoodSearchItem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/schedules": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "List Schedules",
|
|
"operationId": "list_schedules_api_health_schedules_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ScheduleRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Schedules Api Health Schedules Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/health/schedules/{kind}": {
|
|
"put": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Put Schedule",
|
|
"operationId": "put_schedule_api_health_schedules__kind__put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "kind",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScheduleKind"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScheduleUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScheduleRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/today": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Today",
|
|
"operationId": "today_api_health_today_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TodayResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health/stats/adherence": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Adherence",
|
|
"operationId": "adherence_api_health_stats_adherence_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ScheduleKind"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kind"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AdherenceResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/imports/sources": {
|
|
"get": {
|
|
"tags": [
|
|
"imports"
|
|
],
|
|
"summary": "List Sources",
|
|
"operationId": "list_sources_api_imports_sources_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SourceInfo"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Sources Api Imports Sources Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/imports": {
|
|
"post": {
|
|
"tags": [
|
|
"imports"
|
|
],
|
|
"summary": "Upload Import",
|
|
"operationId": "upload_import_api_imports_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_import_api_imports_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__imports__schemas__ImportRunRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"imports"
|
|
],
|
|
"summary": "List Imports",
|
|
"operationId": "list_imports_api_imports_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "domain",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Domain"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__core__pagination__Page_ImportRunRead___2"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/imports/{run_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"imports"
|
|
],
|
|
"summary": "Get Import",
|
|
"operationId": "get_import_api_imports__run_id__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "run_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Run Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__imports__schemas__ImportRunRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"imports"
|
|
],
|
|
"summary": "Rollback Import",
|
|
"operationId": "rollback_import_api_imports__run_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "run_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Run Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ingest/{domain}": {
|
|
"post": {
|
|
"tags": [
|
|
"ingest"
|
|
],
|
|
"summary": "Ingest",
|
|
"operationId": "ingest_api_ingest__domain__post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "domain",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Domain"
|
|
}
|
|
},
|
|
{
|
|
"name": "X-API-Key",
|
|
"in": "header",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "X-Api-Key"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/IngestPayload"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/IngestResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/settings": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Read Settings",
|
|
"operationId": "read_settings_api_vape_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VapeSettingsRead"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Write Settings",
|
|
"operationId": "write_settings_api_vape_settings_put",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VapeSettingsPut"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VapeSettingsRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/vape/products": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "List Products",
|
|
"operationId": "list_products_api_vape_products_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProductKind"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kind"
|
|
}
|
|
},
|
|
{
|
|
"name": "include_archived",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Include Archived"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_ProductRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Create Product",
|
|
"operationId": "create_product_api_vape_products_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProductCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProductRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/products/{product_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Update Product",
|
|
"operationId": "update_product_api_vape_products__product_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "product_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Product Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProductUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProductRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Delete Product",
|
|
"operationId": "delete_product_api_vape_products__product_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "product_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Product Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/mixes": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "List Mixes",
|
|
"operationId": "list_mixes_api_vape_mixes_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "include_archived",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Include Archived"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_MixRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Create Mix",
|
|
"operationId": "create_mix_api_vape_mixes_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MixCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MixRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/mixes/calculator": {
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Mix Calculator",
|
|
"description": "Stateless recipe assistant — persists nothing (§6.3).",
|
|
"operationId": "mix_calculator_api_vape_mixes_calculator_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MixCalculatorRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MixCalculatorResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/vape/mixes/{mix_id}/activate": {
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Activate Mix",
|
|
"operationId": "activate_mix_api_vape_mixes__mix_id__activate_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "mix_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Mix Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MixRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/mixes/{mix_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Update Mix",
|
|
"operationId": "update_mix_api_vape_mixes__mix_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "mix_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Mix Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MixUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MixRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Delete Mix",
|
|
"operationId": "delete_mix_api_vape_mixes__mix_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "mix_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Mix Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/liquids": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "List Liquids",
|
|
"operationId": "list_liquids_api_vape_liquids_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiquidEntryKind"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kind"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_LiquidEntryRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Create Liquid",
|
|
"operationId": "create_liquid_api_vape_liquids_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiquidEntryCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiquidEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/liquids/{entry_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Update Liquid",
|
|
"operationId": "update_liquid_api_vape_liquids__entry_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiquidEntryUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiquidEntryRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Delete Liquid",
|
|
"operationId": "delete_liquid_api_vape_liquids__entry_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "entry_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Entry Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/coils": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "List Coils",
|
|
"operationId": "list_coils_api_vape_coils_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_CoilChangeRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Create Coil",
|
|
"operationId": "create_coil_api_vape_coils_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoilChangeCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoilChangeCreated"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/coils/stats": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Coil Stats",
|
|
"operationId": "coil_stats_api_vape_coils_stats_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__vape__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/coils/change": {
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Quick Coil Change",
|
|
"description": "One-click « Résistance changée » : registers a change at `now` (§12.6).",
|
|
"operationId": "quick_coil_change_api_vape_coils_change_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CoilChangeCreate"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Payload"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoilChangeCreated"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/coils/{coil_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Update Coil",
|
|
"operationId": "update_coil_api_vape_coils__coil_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "coil_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Coil Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoilChangeUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoilChangeRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Delete Coil",
|
|
"operationId": "delete_coil_api_vape_coils__coil_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "coil_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Coil Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/purchases": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "List Purchases",
|
|
"operationId": "list_purchases_api_vape_purchases_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "product_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort"
|
|
}
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 200,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Page Size"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Page_PurchaseRead_"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Create Purchase",
|
|
"operationId": "create_purchase_api_vape_purchases_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PurchaseCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PurchaseRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/purchases/{purchase_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Update Purchase",
|
|
"operationId": "update_purchase_api_vape_purchases__purchase_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "purchase_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Purchase Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PurchaseUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PurchaseRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Delete Purchase",
|
|
"operationId": "delete_purchase_api_vape_purchases__purchase_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "purchase_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Purchase Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/stats/consumption": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Consumption Stats",
|
|
"operationId": "consumption_stats_api_vape_stats_consumption_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__vape__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/stats/nicotine": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Nicotine Stats",
|
|
"operationId": "nicotine_stats_api_vape_stats_nicotine_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__vape__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/stats/costs": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Cost Stats",
|
|
"operationId": "cost_stats_api_vape_stats_costs_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__vape__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/stats/savings": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Savings Stats",
|
|
"operationId": "savings_stats_api_vape_stats_savings_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "From"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "To"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app__modules__vape__schemas__StatsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/milestones": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Milestones",
|
|
"operationId": "milestones_api_vape_milestones_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MilestoneRead"
|
|
},
|
|
"title": "Response Milestones Api Vape Milestones Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/vape/dashboard": {
|
|
"get": {
|
|
"tags": [
|
|
"vape"
|
|
],
|
|
"summary": "Dashboard",
|
|
"operationId": "dashboard_api_vape_dashboard_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tz"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VapeDashboard"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"AccountCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/AccountKind",
|
|
"default": "checking"
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"maxLength": 3,
|
|
"minLength": 3,
|
|
"title": "Currency",
|
|
"default": "EUR"
|
|
},
|
|
"institution": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Institution"
|
|
},
|
|
"iban_masked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 34
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Iban Masked"
|
|
},
|
|
"initial_balance": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Initial Balance",
|
|
"default": "0.00"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "AccountCreate"
|
|
},
|
|
"AccountKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"checking",
|
|
"savings",
|
|
"paypal",
|
|
"cash",
|
|
"other"
|
|
],
|
|
"title": "AccountKind"
|
|
},
|
|
"AccountRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/AccountKind"
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"title": "Currency"
|
|
},
|
|
"institution": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Institution"
|
|
},
|
|
"iban_masked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Iban Masked"
|
|
},
|
|
"initial_balance": {
|
|
"type": "number",
|
|
"title": "Initial Balance"
|
|
},
|
|
"is_archived": {
|
|
"type": "boolean",
|
|
"title": "Is Archived"
|
|
},
|
|
"balance": {
|
|
"type": "number",
|
|
"title": "Balance"
|
|
},
|
|
"transaction_count": {
|
|
"type": "integer",
|
|
"title": "Transaction Count"
|
|
},
|
|
"last_transaction_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Transaction Date"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"kind",
|
|
"currency",
|
|
"institution",
|
|
"iban_masked",
|
|
"initial_balance",
|
|
"is_archived",
|
|
"balance",
|
|
"transaction_count"
|
|
],
|
|
"title": "AccountRead"
|
|
},
|
|
"AccountUpdate": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"kind": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AccountKind"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"currency": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 3,
|
|
"minLength": 3
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Currency"
|
|
},
|
|
"institution": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Institution"
|
|
},
|
|
"iban_masked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 34
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Iban Masked"
|
|
},
|
|
"initial_balance": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Initial Balance"
|
|
},
|
|
"is_archived": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Archived"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "AccountUpdate"
|
|
},
|
|
"ActiveGoalRead": {
|
|
"properties": {
|
|
"goal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalRead"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"budget": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app__modules__health__schemas__BudgetRead"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"projection": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProjectionRead"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"trend_weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Trend Weight Kg"
|
|
},
|
|
"done_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Done Kg"
|
|
},
|
|
"remaining_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Remaining Kg"
|
|
},
|
|
"progress_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Progress Pct"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "ActiveGoalRead"
|
|
},
|
|
"ActivityLevel": {
|
|
"type": "string",
|
|
"enum": [
|
|
"sedentary",
|
|
"light",
|
|
"moderate",
|
|
"active",
|
|
"very_active"
|
|
],
|
|
"title": "ActivityLevel"
|
|
},
|
|
"AdherenceDay": {
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Date"
|
|
},
|
|
"planned": {
|
|
"type": "boolean",
|
|
"title": "Planned"
|
|
},
|
|
"done": {
|
|
"type": "boolean",
|
|
"title": "Done"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"date",
|
|
"planned",
|
|
"done",
|
|
"status"
|
|
],
|
|
"title": "AdherenceDay"
|
|
},
|
|
"AdherenceKind": {
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/ScheduleKind"
|
|
},
|
|
"weekdays": {
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array",
|
|
"title": "Weekdays"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled",
|
|
"default": false
|
|
},
|
|
"planned_days": {
|
|
"type": "integer",
|
|
"title": "Planned Days",
|
|
"default": 0
|
|
},
|
|
"done_days": {
|
|
"type": "integer",
|
|
"title": "Done Days",
|
|
"default": 0
|
|
},
|
|
"missed_days": {
|
|
"type": "integer",
|
|
"title": "Missed Days",
|
|
"default": 0
|
|
},
|
|
"adherence_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Adherence Pct"
|
|
},
|
|
"streak": {
|
|
"$ref": "#/components/schemas/StreakRead"
|
|
},
|
|
"days": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AdherenceDay"
|
|
},
|
|
"type": "array",
|
|
"title": "Days"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "AdherenceKind"
|
|
},
|
|
"AdherenceResponse": {
|
|
"properties": {
|
|
"from": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "From"
|
|
},
|
|
"to": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "To"
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"title": "Unit"
|
|
},
|
|
"series": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
"type": "array",
|
|
"title": "Series"
|
|
},
|
|
"meta": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Meta"
|
|
},
|
|
"kinds": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AdherenceKind"
|
|
},
|
|
"type": "array",
|
|
"title": "Kinds"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"from",
|
|
"to",
|
|
"unit"
|
|
],
|
|
"title": "AdherenceResponse",
|
|
"description": "`/health/stats/adherence` — a `stats/*` endpoint, so it carries the §8.1\nenvelope (one calendar-heatmap series per habit) plus the richer per-habit\nbreakdown of addendum-planning.md that the planning editor needs."
|
|
},
|
|
"AuthStatus": {
|
|
"properties": {
|
|
"setup_required": {
|
|
"type": "boolean",
|
|
"title": "Setup Required"
|
|
},
|
|
"needs_setup": {
|
|
"type": "boolean",
|
|
"title": "Needs Setup"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"setup_required",
|
|
"needs_setup"
|
|
],
|
|
"title": "AuthStatus"
|
|
},
|
|
"BodyMeasurementCreate": {
|
|
"properties": {
|
|
"measured_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Measured At"
|
|
},
|
|
"neck_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Neck Cm"
|
|
},
|
|
"chest_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Chest Cm"
|
|
},
|
|
"waist_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Waist Cm"
|
|
},
|
|
"hips_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Hips Cm"
|
|
},
|
|
"biceps_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Biceps Left Cm"
|
|
},
|
|
"biceps_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Biceps Right Cm"
|
|
},
|
|
"thigh_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thigh Left Cm"
|
|
},
|
|
"thigh_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thigh Right Cm"
|
|
},
|
|
"calf_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calf Left Cm"
|
|
},
|
|
"calf_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calf Right Cm"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"measured_at"
|
|
],
|
|
"title": "BodyMeasurementCreate"
|
|
},
|
|
"BodyMeasurementRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"measured_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Measured At"
|
|
},
|
|
"neck_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Neck Cm"
|
|
},
|
|
"chest_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Chest Cm"
|
|
},
|
|
"waist_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Waist Cm"
|
|
},
|
|
"hips_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Hips Cm"
|
|
},
|
|
"biceps_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Biceps Left Cm"
|
|
},
|
|
"biceps_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Biceps Right Cm"
|
|
},
|
|
"thigh_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thigh Left Cm"
|
|
},
|
|
"thigh_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thigh Right Cm"
|
|
},
|
|
"calf_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calf Left Cm"
|
|
},
|
|
"calf_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calf Right Cm"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"measured_at",
|
|
"neck_cm",
|
|
"chest_cm",
|
|
"waist_cm",
|
|
"hips_cm",
|
|
"biceps_left_cm",
|
|
"biceps_right_cm",
|
|
"thigh_left_cm",
|
|
"thigh_right_cm",
|
|
"calf_left_cm",
|
|
"calf_right_cm",
|
|
"note",
|
|
"source"
|
|
],
|
|
"title": "BodyMeasurementRead"
|
|
},
|
|
"BodyMeasurementUpdate": {
|
|
"properties": {
|
|
"measured_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Measured At"
|
|
},
|
|
"neck_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Neck Cm"
|
|
},
|
|
"chest_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Chest Cm"
|
|
},
|
|
"waist_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Waist Cm"
|
|
},
|
|
"hips_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Hips Cm"
|
|
},
|
|
"biceps_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Biceps Left Cm"
|
|
},
|
|
"biceps_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Biceps Right Cm"
|
|
},
|
|
"thigh_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thigh Left Cm"
|
|
},
|
|
"thigh_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thigh Right Cm"
|
|
},
|
|
"calf_left_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calf Left Cm"
|
|
},
|
|
"calf_right_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calf Right Cm"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "BodyMeasurementUpdate"
|
|
},
|
|
"Body_preview_import_api_finance_imports_preview_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
},
|
|
"account_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Account Id"
|
|
},
|
|
"source_profile_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Profile Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"account_id"
|
|
],
|
|
"title": "Body_preview_import_api_finance_imports_preview_post"
|
|
},
|
|
"Body_run_import_api_finance_imports_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
},
|
|
"account_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Account Id"
|
|
},
|
|
"source_profile_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Profile Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"account_id"
|
|
],
|
|
"title": "Body_run_import_api_finance_imports_post"
|
|
},
|
|
"Body_upload_import_api_imports_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"source"
|
|
],
|
|
"title": "Body_upload_import_api_imports_post"
|
|
},
|
|
"BudgetCreate": {
|
|
"properties": {
|
|
"category_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Category Id"
|
|
},
|
|
"monthly_amount": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Monthly Amount"
|
|
},
|
|
"start_month": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Start Month"
|
|
},
|
|
"end_month": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Month"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"category_id",
|
|
"monthly_amount",
|
|
"start_month"
|
|
],
|
|
"title": "BudgetCreate"
|
|
},
|
|
"BudgetProgressItem": {
|
|
"properties": {
|
|
"budget_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Budget Id"
|
|
},
|
|
"category_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Category Id"
|
|
},
|
|
"category_name": {
|
|
"type": "string",
|
|
"title": "Category Name"
|
|
},
|
|
"category_color": {
|
|
"type": "string",
|
|
"title": "Category Color"
|
|
},
|
|
"budget": {
|
|
"type": "number",
|
|
"title": "Budget"
|
|
},
|
|
"actual": {
|
|
"type": "number",
|
|
"title": "Actual"
|
|
},
|
|
"remaining": {
|
|
"type": "number",
|
|
"title": "Remaining"
|
|
},
|
|
"progress_pct": {
|
|
"type": "number",
|
|
"title": "Progress Pct"
|
|
},
|
|
"projected_eom": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Projected Eom"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"budget_id",
|
|
"category_id",
|
|
"category_name",
|
|
"category_color",
|
|
"budget",
|
|
"actual",
|
|
"remaining",
|
|
"progress_pct",
|
|
"projected_eom",
|
|
"status"
|
|
],
|
|
"title": "BudgetProgressItem"
|
|
},
|
|
"BudgetProgressResponse": {
|
|
"properties": {
|
|
"month": {
|
|
"type": "string",
|
|
"title": "Month"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetProgressItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"totals": {
|
|
"$ref": "#/components/schemas/BudgetProgressTotals"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"month",
|
|
"items",
|
|
"totals"
|
|
],
|
|
"title": "BudgetProgressResponse"
|
|
},
|
|
"BudgetProgressTotals": {
|
|
"properties": {
|
|
"budget": {
|
|
"type": "number",
|
|
"title": "Budget"
|
|
},
|
|
"actual": {
|
|
"type": "number",
|
|
"title": "Actual"
|
|
},
|
|
"progress_pct": {
|
|
"type": "number",
|
|
"title": "Progress Pct"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"budget",
|
|
"actual",
|
|
"progress_pct"
|
|
],
|
|
"title": "BudgetProgressTotals"
|
|
},
|
|
"BudgetUpdate": {
|
|
"properties": {
|
|
"monthly_amount": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Monthly Amount"
|
|
},
|
|
"end_month": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Month"
|
|
},
|
|
"effective_from": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Effective From"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "BudgetUpdate"
|
|
},
|
|
"BulkCategorizeRequest": {
|
|
"properties": {
|
|
"transaction_ids": {
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"type": "array",
|
|
"maxItems": 500,
|
|
"minItems": 1,
|
|
"title": "Transaction Ids"
|
|
},
|
|
"category_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"transaction_ids"
|
|
],
|
|
"title": "BulkCategorizeRequest"
|
|
},
|
|
"BulkCategorizeResponse": {
|
|
"properties": {
|
|
"updated": {
|
|
"type": "integer",
|
|
"title": "Updated"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"updated"
|
|
],
|
|
"title": "BulkCategorizeResponse"
|
|
},
|
|
"CashflowResponse": {
|
|
"properties": {
|
|
"months": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Months"
|
|
},
|
|
"income": {
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array",
|
|
"title": "Income"
|
|
},
|
|
"expenses": {
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array",
|
|
"title": "Expenses"
|
|
},
|
|
"net": {
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array",
|
|
"title": "Net"
|
|
},
|
|
"cumulative_net": {
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array",
|
|
"title": "Cumulative Net"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"months",
|
|
"income",
|
|
"expenses",
|
|
"net",
|
|
"cumulative_net"
|
|
],
|
|
"title": "CashflowResponse"
|
|
},
|
|
"CategoryCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 80,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"parent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Parent Id"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 7
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Color"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/CategoryKind",
|
|
"default": "expense"
|
|
},
|
|
"sort_order": {
|
|
"type": "integer",
|
|
"title": "Sort Order",
|
|
"default": 0
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "CategoryCreate"
|
|
},
|
|
"CategoryKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"income",
|
|
"expense",
|
|
"transfer"
|
|
],
|
|
"title": "CategoryKind"
|
|
},
|
|
"CategoryRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"parent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Parent Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Color"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/CategoryKind"
|
|
},
|
|
"is_system": {
|
|
"type": "boolean",
|
|
"title": "Is System"
|
|
},
|
|
"sort_order": {
|
|
"type": "integer",
|
|
"title": "Sort Order"
|
|
},
|
|
"transaction_count": {
|
|
"type": "integer",
|
|
"title": "Transaction Count",
|
|
"default": 0
|
|
},
|
|
"children": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CategoryRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Children"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"parent_id",
|
|
"name",
|
|
"icon",
|
|
"color",
|
|
"kind",
|
|
"is_system",
|
|
"sort_order"
|
|
],
|
|
"title": "CategoryRead"
|
|
},
|
|
"CategorySource": {
|
|
"type": "string",
|
|
"enum": [
|
|
"rule",
|
|
"user"
|
|
],
|
|
"title": "CategorySource"
|
|
},
|
|
"CategoryUpdate": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 80,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"parent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Parent Id"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 7
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Color"
|
|
},
|
|
"sort_order": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sort Order"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "CategoryUpdate"
|
|
},
|
|
"CoilChangeCreate": {
|
|
"properties": {
|
|
"changed_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Changed At"
|
|
},
|
|
"product_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Id"
|
|
},
|
|
"reason": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reason"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "CoilChangeCreate"
|
|
},
|
|
"CoilChangeCreated": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"changed_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Changed At"
|
|
},
|
|
"product_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Id"
|
|
},
|
|
"product_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Name"
|
|
},
|
|
"reason": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reason"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"is_current": {
|
|
"type": "boolean",
|
|
"title": "Is Current"
|
|
},
|
|
"lifespan_days": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Lifespan Days"
|
|
},
|
|
"ml_through": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ml Through"
|
|
},
|
|
"previous_lifespan_days": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Previous Lifespan Days"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"changed_at",
|
|
"product_id",
|
|
"product_name",
|
|
"reason",
|
|
"note",
|
|
"is_current",
|
|
"lifespan_days",
|
|
"ml_through",
|
|
"previous_lifespan_days"
|
|
],
|
|
"title": "CoilChangeCreated"
|
|
},
|
|
"CoilChangeRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"changed_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Changed At"
|
|
},
|
|
"product_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Id"
|
|
},
|
|
"product_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Name"
|
|
},
|
|
"reason": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reason"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"is_current": {
|
|
"type": "boolean",
|
|
"title": "Is Current"
|
|
},
|
|
"lifespan_days": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Lifespan Days"
|
|
},
|
|
"ml_through": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ml Through"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"changed_at",
|
|
"product_id",
|
|
"product_name",
|
|
"reason",
|
|
"note",
|
|
"is_current",
|
|
"lifespan_days",
|
|
"ml_through"
|
|
],
|
|
"title": "CoilChangeRead"
|
|
},
|
|
"CoilChangeUpdate": {
|
|
"properties": {
|
|
"changed_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Changed At"
|
|
},
|
|
"product_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Id"
|
|
},
|
|
"reason": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reason"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "CoilChangeUpdate"
|
|
},
|
|
"DailyActivityRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Date"
|
|
},
|
|
"steps": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Steps"
|
|
},
|
|
"active_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Active Kcal"
|
|
},
|
|
"total_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Kcal"
|
|
},
|
|
"distance_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance M"
|
|
},
|
|
"active_minutes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Active Minutes"
|
|
},
|
|
"floors": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Floors"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"date",
|
|
"steps",
|
|
"active_kcal",
|
|
"total_kcal",
|
|
"distance_m",
|
|
"active_minutes",
|
|
"floors",
|
|
"source"
|
|
],
|
|
"title": "DailyActivityRead"
|
|
},
|
|
"DailyActivityUpsert": {
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Date"
|
|
},
|
|
"steps": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Steps"
|
|
},
|
|
"active_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Active Kcal"
|
|
},
|
|
"total_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Kcal"
|
|
},
|
|
"distance_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance M"
|
|
},
|
|
"active_minutes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Active Minutes"
|
|
},
|
|
"floors": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Floors"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"date"
|
|
],
|
|
"title": "DailyActivityUpsert",
|
|
"description": "POST /health/activity — manual upsert of one local day."
|
|
},
|
|
"DeviceKeyCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"scopes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"title": "Scopes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"scopes"
|
|
],
|
|
"title": "DeviceKeyCreate"
|
|
},
|
|
"DeviceKeyCreated": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"key_prefix": {
|
|
"type": "string",
|
|
"title": "Key Prefix"
|
|
},
|
|
"scopes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Scopes"
|
|
},
|
|
"last_used_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Used At"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
},
|
|
"revoked_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Revoked At"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"key_prefix",
|
|
"scopes",
|
|
"last_used_at",
|
|
"created_at",
|
|
"revoked_at",
|
|
"key"
|
|
],
|
|
"title": "DeviceKeyCreated",
|
|
"description": "Returned once at creation time: the only moment the plaintext key exists."
|
|
},
|
|
"DeviceKeyRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"key_prefix": {
|
|
"type": "string",
|
|
"title": "Key Prefix"
|
|
},
|
|
"scopes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Scopes"
|
|
},
|
|
"last_used_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Used At"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
},
|
|
"revoked_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Revoked At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"key_prefix",
|
|
"scopes",
|
|
"last_used_at",
|
|
"created_at",
|
|
"revoked_at"
|
|
],
|
|
"title": "DeviceKeyRead"
|
|
},
|
|
"FoodEntryCreate": {
|
|
"properties": {
|
|
"eaten_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Eaten At"
|
|
},
|
|
"meal": {
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"quantity": {
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Quantity",
|
|
"default": 100.0
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"maxLength": 20,
|
|
"title": "Unit",
|
|
"default": "g"
|
|
},
|
|
"kcal": {
|
|
"type": "number",
|
|
"minimum": 0.0,
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"fiber_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G"
|
|
},
|
|
"sugar_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sugar G"
|
|
},
|
|
"sat_fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sat Fat G"
|
|
},
|
|
"sodium_mg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sodium Mg"
|
|
},
|
|
"favorite_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Favorite Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"eaten_at",
|
|
"meal",
|
|
"name",
|
|
"kcal"
|
|
],
|
|
"title": "FoodEntryCreate"
|
|
},
|
|
"FoodEntryRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"eaten_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Eaten At"
|
|
},
|
|
"meal": {
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"quantity": {
|
|
"type": "number",
|
|
"title": "Quantity"
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"title": "Unit"
|
|
},
|
|
"kcal": {
|
|
"type": "number",
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"fiber_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G"
|
|
},
|
|
"sugar_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sugar G"
|
|
},
|
|
"sat_fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sat Fat G"
|
|
},
|
|
"sodium_mg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sodium Mg"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"eaten_at",
|
|
"meal",
|
|
"name",
|
|
"brand",
|
|
"quantity",
|
|
"unit",
|
|
"kcal",
|
|
"protein_g",
|
|
"carbs_g",
|
|
"fat_g",
|
|
"fiber_g",
|
|
"sugar_g",
|
|
"sat_fat_g",
|
|
"sodium_mg",
|
|
"source"
|
|
],
|
|
"title": "FoodEntryRead"
|
|
},
|
|
"FoodEntryUpdate": {
|
|
"properties": {
|
|
"eaten_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Eaten At"
|
|
},
|
|
"meal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 200,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"quantity": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quantity"
|
|
},
|
|
"unit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 20
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Unit"
|
|
},
|
|
"kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"fiber_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G"
|
|
},
|
|
"sugar_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sugar G"
|
|
},
|
|
"sat_fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sat Fat G"
|
|
},
|
|
"sodium_mg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sodium Mg"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "FoodEntryUpdate"
|
|
},
|
|
"FoodFavoriteCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 200,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"default_quantity": {
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Default Quantity",
|
|
"default": 100.0
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"maxLength": 20,
|
|
"title": "Unit",
|
|
"default": "g"
|
|
},
|
|
"kcal": {
|
|
"type": "number",
|
|
"minimum": 0.0,
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"fiber_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G"
|
|
},
|
|
"default_meal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"kcal"
|
|
],
|
|
"title": "FoodFavoriteCreate"
|
|
},
|
|
"FoodFavoriteRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"default_quantity": {
|
|
"type": "number",
|
|
"title": "Default Quantity"
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"title": "Unit"
|
|
},
|
|
"kcal": {
|
|
"type": "number",
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"fiber_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G"
|
|
},
|
|
"default_meal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"use_count": {
|
|
"type": "integer",
|
|
"title": "Use Count"
|
|
},
|
|
"last_used_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Used At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"brand",
|
|
"default_quantity",
|
|
"unit",
|
|
"kcal",
|
|
"protein_g",
|
|
"carbs_g",
|
|
"fat_g",
|
|
"fiber_g",
|
|
"default_meal",
|
|
"use_count",
|
|
"last_used_at"
|
|
],
|
|
"title": "FoodFavoriteRead"
|
|
},
|
|
"FoodFavoriteUpdate": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 200,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"default_quantity": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Quantity"
|
|
},
|
|
"unit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 20
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Unit"
|
|
},
|
|
"kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"fiber_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G"
|
|
},
|
|
"default_meal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "FoodFavoriteUpdate"
|
|
},
|
|
"FoodSearchItem": {
|
|
"properties": {
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
},
|
|
"source_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"energy_kcal_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Energy Kcal 100G"
|
|
},
|
|
"protein_g_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G 100G"
|
|
},
|
|
"carbs_g_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G 100G"
|
|
},
|
|
"sugar_g_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sugar G 100G"
|
|
},
|
|
"fat_g_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G 100G"
|
|
},
|
|
"sat_fat_g_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sat Fat G 100G"
|
|
},
|
|
"fiber_g_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G 100G"
|
|
},
|
|
"salt_g_100g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Salt G 100G"
|
|
},
|
|
"serving_size_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Serving Size G"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"source",
|
|
"name"
|
|
],
|
|
"title": "FoodSearchItem"
|
|
},
|
|
"FoodSearchResponse": {
|
|
"properties": {
|
|
"query": {
|
|
"type": "string",
|
|
"title": "Query"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FoodSearchItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"origin": {
|
|
"type": "string",
|
|
"title": "Origin",
|
|
"default": "cache"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"query"
|
|
],
|
|
"title": "FoodSearchResponse"
|
|
},
|
|
"GoalCreate": {
|
|
"properties": {
|
|
"mode": {
|
|
"$ref": "#/components/schemas/GoalMode"
|
|
},
|
|
"start_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
},
|
|
"start_weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 400.0,
|
|
"exclusiveMinimum": 20.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Weight Kg"
|
|
},
|
|
"target_weight_kg": {
|
|
"type": "number",
|
|
"exclusiveMaximum": 400.0,
|
|
"exclusiveMinimum": 20.0,
|
|
"title": "Target Weight Kg"
|
|
},
|
|
"target_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Date"
|
|
},
|
|
"weekly_rate_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 1.5,
|
|
"exclusiveMinimum": -1.01
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Weekly Rate Kg"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"mode",
|
|
"target_weight_kg"
|
|
],
|
|
"title": "GoalCreate"
|
|
},
|
|
"GoalMode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"weekly_rate",
|
|
"target_date",
|
|
"maintain"
|
|
],
|
|
"title": "GoalMode"
|
|
},
|
|
"GoalRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"mode": {
|
|
"$ref": "#/components/schemas/GoalMode"
|
|
},
|
|
"start_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Start Date"
|
|
},
|
|
"start_weight_kg": {
|
|
"type": "number",
|
|
"title": "Start Weight Kg"
|
|
},
|
|
"target_weight_kg": {
|
|
"type": "number",
|
|
"title": "Target Weight Kg"
|
|
},
|
|
"target_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Date"
|
|
},
|
|
"weekly_rate_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Weekly Rate Kg"
|
|
},
|
|
"status": {
|
|
"$ref": "#/components/schemas/GoalStatus"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"mode",
|
|
"start_date",
|
|
"start_weight_kg",
|
|
"target_weight_kg",
|
|
"target_date",
|
|
"weekly_rate_kg",
|
|
"status",
|
|
"note"
|
|
],
|
|
"title": "GoalRead"
|
|
},
|
|
"GoalStatus": {
|
|
"type": "string",
|
|
"enum": [
|
|
"active",
|
|
"completed",
|
|
"abandoned"
|
|
],
|
|
"title": "GoalStatus"
|
|
},
|
|
"GoalUpdate": {
|
|
"properties": {
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalMode"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"start_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
},
|
|
"start_weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 400.0,
|
|
"exclusiveMinimum": 20.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Weight Kg"
|
|
},
|
|
"target_weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 400.0,
|
|
"exclusiveMinimum": 20.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Weight Kg"
|
|
},
|
|
"target_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Date"
|
|
},
|
|
"weekly_rate_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 1.5,
|
|
"exclusiveMinimum": -1.01
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Weekly Rate Kg"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalStatus"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "GoalUpdate"
|
|
},
|
|
"HTTPValidationError": {
|
|
"properties": {
|
|
"detail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidationError"
|
|
},
|
|
"type": "array",
|
|
"title": "Detail"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "HTTPValidationError"
|
|
},
|
|
"HealthProfileRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"height_cm": {
|
|
"type": "number",
|
|
"title": "Height Cm"
|
|
},
|
|
"sex": {
|
|
"$ref": "#/components/schemas/Sex"
|
|
},
|
|
"birthdate": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Birthdate"
|
|
},
|
|
"activity_level": {
|
|
"$ref": "#/components/schemas/ActivityLevel"
|
|
},
|
|
"timezone": {
|
|
"type": "string",
|
|
"title": "Timezone"
|
|
},
|
|
"water_goal_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Water Goal Ml"
|
|
},
|
|
"calorie_floor_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calorie Floor Kcal"
|
|
},
|
|
"age": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Age"
|
|
},
|
|
"bmr_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bmr Kcal"
|
|
},
|
|
"tdee_estimated_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tdee Estimated Kcal"
|
|
},
|
|
"current_weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Current Weight Kg"
|
|
},
|
|
"bmi": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bmi"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"height_cm",
|
|
"sex",
|
|
"birthdate",
|
|
"activity_level",
|
|
"timezone",
|
|
"water_goal_ml",
|
|
"calorie_floor_kcal"
|
|
],
|
|
"title": "HealthProfileRead"
|
|
},
|
|
"HealthProfileUpdate": {
|
|
"properties": {
|
|
"height_cm": {
|
|
"type": "number",
|
|
"exclusiveMaximum": 300.0,
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Height Cm"
|
|
},
|
|
"sex": {
|
|
"$ref": "#/components/schemas/Sex"
|
|
},
|
|
"birthdate": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Birthdate"
|
|
},
|
|
"activity_level": {
|
|
"$ref": "#/components/schemas/ActivityLevel",
|
|
"default": "sedentary"
|
|
},
|
|
"timezone": {
|
|
"type": "string",
|
|
"maxLength": 64,
|
|
"title": "Timezone",
|
|
"default": "Europe/Paris"
|
|
},
|
|
"water_goal_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"maximum": 20000.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Water Goal Ml",
|
|
"default": 2000
|
|
},
|
|
"calorie_floor_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"maximum": 5000.0,
|
|
"minimum": 800.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calorie Floor Kcal"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"height_cm",
|
|
"sex",
|
|
"birthdate"
|
|
],
|
|
"title": "HealthProfileUpdate",
|
|
"description": "PUT /health/profile — full singleton upsert."
|
|
},
|
|
"ImportPreviewResponse": {
|
|
"properties": {
|
|
"rows_preview": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/NormalizedRowRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Rows Preview"
|
|
},
|
|
"rows_total": {
|
|
"type": "integer",
|
|
"title": "Rows Total"
|
|
},
|
|
"rows_error": {
|
|
"type": "integer",
|
|
"title": "Rows Error"
|
|
},
|
|
"rows_skipped_filtered": {
|
|
"type": "integer",
|
|
"title": "Rows Skipped Filtered"
|
|
},
|
|
"would_skip_duplicates": {
|
|
"type": "integer",
|
|
"title": "Would Skip Duplicates"
|
|
},
|
|
"date_min": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Min"
|
|
},
|
|
"date_max": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Max"
|
|
},
|
|
"errors": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array",
|
|
"title": "Errors"
|
|
},
|
|
"duplicate_file_of": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duplicate File Of"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"rows_preview",
|
|
"rows_total",
|
|
"rows_error",
|
|
"rows_skipped_filtered",
|
|
"would_skip_duplicates",
|
|
"date_min",
|
|
"date_max",
|
|
"errors"
|
|
],
|
|
"title": "ImportPreviewResponse"
|
|
},
|
|
"ImportStatus": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"running",
|
|
"completed",
|
|
"failed"
|
|
],
|
|
"title": "ImportStatus"
|
|
},
|
|
"IngestPayload": {
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"maxLength": 50,
|
|
"minLength": 1,
|
|
"title": "Source",
|
|
"default": "ingest"
|
|
},
|
|
"records": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/IngestRecordIn"
|
|
},
|
|
"type": "array",
|
|
"maxItems": 1000,
|
|
"minItems": 1,
|
|
"title": "Records"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"records"
|
|
],
|
|
"title": "IngestPayload"
|
|
},
|
|
"IngestRecordError": {
|
|
"properties": {
|
|
"index": {
|
|
"type": "integer",
|
|
"title": "Index"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"index",
|
|
"type",
|
|
"message"
|
|
],
|
|
"title": "IngestRecordError"
|
|
},
|
|
"IngestRecordIn": {
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"data": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Data"
|
|
},
|
|
"external_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "External Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"data"
|
|
],
|
|
"title": "IngestRecordIn"
|
|
},
|
|
"IngestResponse": {
|
|
"properties": {
|
|
"domain": {
|
|
"type": "string",
|
|
"title": "Domain"
|
|
},
|
|
"received": {
|
|
"type": "integer",
|
|
"title": "Received"
|
|
},
|
|
"inserted": {
|
|
"type": "integer",
|
|
"title": "Inserted"
|
|
},
|
|
"updated": {
|
|
"type": "integer",
|
|
"title": "Updated"
|
|
},
|
|
"duplicates": {
|
|
"type": "integer",
|
|
"title": "Duplicates"
|
|
},
|
|
"errors": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/IngestRecordError"
|
|
},
|
|
"type": "array",
|
|
"title": "Errors"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"domain",
|
|
"received",
|
|
"inserted",
|
|
"updated",
|
|
"duplicates",
|
|
"errors"
|
|
],
|
|
"title": "IngestResponse"
|
|
},
|
|
"LiquidEntryCreate": {
|
|
"properties": {
|
|
"entry_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Entry Date"
|
|
},
|
|
"ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Ml"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/LiquidEntryKind",
|
|
"default": "refill"
|
|
},
|
|
"nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Mg Ml"
|
|
},
|
|
"mix_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mix Id"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"entry_date",
|
|
"ml"
|
|
],
|
|
"title": "LiquidEntryCreate"
|
|
},
|
|
"LiquidEntryKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"refill",
|
|
"daily_total"
|
|
],
|
|
"title": "LiquidEntryKind"
|
|
},
|
|
"LiquidEntryRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"entry_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Entry Date"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/LiquidEntryKind"
|
|
},
|
|
"ml": {
|
|
"type": "number",
|
|
"title": "Ml"
|
|
},
|
|
"nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Mg Ml"
|
|
},
|
|
"nicotine_effective_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Effective Mg Ml"
|
|
},
|
|
"nicotine_mg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Mg"
|
|
},
|
|
"mix_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mix Id"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"entry_date",
|
|
"kind",
|
|
"ml",
|
|
"nicotine_mg_ml",
|
|
"nicotine_effective_mg_ml",
|
|
"nicotine_mg",
|
|
"mix_id",
|
|
"source",
|
|
"note"
|
|
],
|
|
"title": "LiquidEntryRead"
|
|
},
|
|
"LiquidEntryUpdate": {
|
|
"properties": {
|
|
"entry_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Entry Date"
|
|
},
|
|
"ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ml"
|
|
},
|
|
"kind": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiquidEntryKind"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Mg Ml"
|
|
},
|
|
"mix_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mix Id"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "LiquidEntryUpdate"
|
|
},
|
|
"LoginRequest": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"title": "Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email",
|
|
"password"
|
|
],
|
|
"title": "LoginRequest"
|
|
},
|
|
"MealTotals": {
|
|
"properties": {
|
|
"meal": {
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
"kcal": {
|
|
"type": "number",
|
|
"title": "Kcal",
|
|
"default": 0.0
|
|
},
|
|
"protein_g": {
|
|
"type": "number",
|
|
"title": "Protein G",
|
|
"default": 0.0
|
|
},
|
|
"carbs_g": {
|
|
"type": "number",
|
|
"title": "Carbs G",
|
|
"default": 0.0
|
|
},
|
|
"fat_g": {
|
|
"type": "number",
|
|
"title": "Fat G",
|
|
"default": 0.0
|
|
},
|
|
"entries": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FoodEntryRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Entries"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"meal"
|
|
],
|
|
"title": "MealTotals"
|
|
},
|
|
"MealType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"breakfast",
|
|
"lunch",
|
|
"dinner",
|
|
"snack"
|
|
],
|
|
"title": "MealType"
|
|
},
|
|
"MerchantRead": {
|
|
"properties": {
|
|
"merchant": {
|
|
"type": "string",
|
|
"title": "Merchant"
|
|
},
|
|
"total": {
|
|
"type": "number",
|
|
"title": "Total"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"title": "Count"
|
|
},
|
|
"average": {
|
|
"type": "number",
|
|
"title": "Average"
|
|
},
|
|
"category_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Name"
|
|
},
|
|
"category_color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Color"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"merchant",
|
|
"total",
|
|
"count",
|
|
"average"
|
|
],
|
|
"title": "MerchantRead"
|
|
},
|
|
"MilestoneRead": {
|
|
"properties": {
|
|
"code": {
|
|
"type": "string",
|
|
"title": "Code"
|
|
},
|
|
"label_fr": {
|
|
"type": "string",
|
|
"title": "Label Fr"
|
|
},
|
|
"reached_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Reached At"
|
|
},
|
|
"achieved": {
|
|
"type": "boolean",
|
|
"title": "Achieved"
|
|
},
|
|
"progress_pct": {
|
|
"type": "number",
|
|
"title": "Progress Pct"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"code",
|
|
"label_fr",
|
|
"reached_at",
|
|
"achieved",
|
|
"progress_pct"
|
|
],
|
|
"title": "MilestoneRead"
|
|
},
|
|
"MixCalculatorRequest": {
|
|
"properties": {
|
|
"total_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Total Ml"
|
|
},
|
|
"target_nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Target Nicotine Mg Ml"
|
|
},
|
|
"booster_product_id": {
|
|
"type": "integer",
|
|
"title": "Booster Product Id"
|
|
},
|
|
"base_product_id": {
|
|
"type": "integer",
|
|
"title": "Base Product Id"
|
|
},
|
|
"aroma_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Aroma Pct",
|
|
"default": "0"
|
|
},
|
|
"aroma_product_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aroma Product Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"total_ml",
|
|
"target_nicotine_mg_ml",
|
|
"booster_product_id",
|
|
"base_product_id"
|
|
],
|
|
"title": "MixCalculatorRequest"
|
|
},
|
|
"MixCalculatorResult": {
|
|
"properties": {
|
|
"total_ml": {
|
|
"type": "number",
|
|
"title": "Total Ml"
|
|
},
|
|
"target_nicotine_mg_ml": {
|
|
"type": "number",
|
|
"title": "Target Nicotine Mg Ml"
|
|
},
|
|
"booster_ml": {
|
|
"type": "number",
|
|
"title": "Booster Ml"
|
|
},
|
|
"aroma_ml": {
|
|
"type": "number",
|
|
"title": "Aroma Ml"
|
|
},
|
|
"base_ml": {
|
|
"type": "number",
|
|
"title": "Base Ml"
|
|
},
|
|
"nicotine_check_mg_ml": {
|
|
"type": "number",
|
|
"title": "Nicotine Check Mg Ml"
|
|
},
|
|
"cost_total_cents": {
|
|
"type": "number",
|
|
"title": "Cost Total Cents"
|
|
},
|
|
"cost_per_ml_cents": {
|
|
"type": "number",
|
|
"title": "Cost Per Ml Cents"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"total_ml",
|
|
"target_nicotine_mg_ml",
|
|
"booster_ml",
|
|
"aroma_ml",
|
|
"base_ml",
|
|
"nicotine_check_mg_ml",
|
|
"cost_total_cents",
|
|
"cost_per_ml_cents"
|
|
],
|
|
"title": "MixCalculatorResult"
|
|
},
|
|
"MixComponentIn": {
|
|
"properties": {
|
|
"product_id": {
|
|
"type": "integer",
|
|
"title": "Product Id"
|
|
},
|
|
"quantity": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Quantity"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"product_id",
|
|
"quantity"
|
|
],
|
|
"title": "MixComponentIn"
|
|
},
|
|
"MixComponentRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"product_id": {
|
|
"type": "integer",
|
|
"title": "Product Id"
|
|
},
|
|
"product_name": {
|
|
"type": "string",
|
|
"title": "Product Name"
|
|
},
|
|
"product_kind": {
|
|
"$ref": "#/components/schemas/ProductKind"
|
|
},
|
|
"quantity": {
|
|
"type": "number",
|
|
"title": "Quantity"
|
|
},
|
|
"cost_cents": {
|
|
"type": "number",
|
|
"title": "Cost Cents"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"product_id",
|
|
"product_name",
|
|
"product_kind",
|
|
"quantity",
|
|
"cost_cents"
|
|
],
|
|
"title": "MixComponentRead"
|
|
},
|
|
"MixCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 150,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"total_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Total Ml"
|
|
},
|
|
"target_nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Target Nicotine Mg Ml"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"components": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MixComponentIn"
|
|
},
|
|
"type": "array",
|
|
"title": "Components"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"total_ml",
|
|
"target_nicotine_mg_ml"
|
|
],
|
|
"title": "MixCreate"
|
|
},
|
|
"MixRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"total_ml": {
|
|
"type": "number",
|
|
"title": "Total Ml"
|
|
},
|
|
"target_nicotine_mg_ml": {
|
|
"type": "number",
|
|
"title": "Target Nicotine Mg Ml"
|
|
},
|
|
"is_active": {
|
|
"type": "boolean",
|
|
"title": "Is Active"
|
|
},
|
|
"is_archived": {
|
|
"type": "boolean",
|
|
"title": "Is Archived"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"components": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MixComponentRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Components"
|
|
},
|
|
"cost_total_cents": {
|
|
"type": "number",
|
|
"title": "Cost Total Cents"
|
|
},
|
|
"cost_per_ml_cents": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cost Per Ml Cents"
|
|
},
|
|
"nicotine_check_mg_ml": {
|
|
"type": "number",
|
|
"title": "Nicotine Check Mg Ml"
|
|
},
|
|
"vg_pct_mix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vg Pct Mix"
|
|
},
|
|
"warning": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Warning"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"total_ml",
|
|
"target_nicotine_mg_ml",
|
|
"is_active",
|
|
"is_archived",
|
|
"note",
|
|
"components",
|
|
"cost_total_cents",
|
|
"cost_per_ml_cents",
|
|
"nicotine_check_mg_ml",
|
|
"vg_pct_mix",
|
|
"warning"
|
|
],
|
|
"title": "MixRead"
|
|
},
|
|
"MixUpdate": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 150,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"total_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Ml"
|
|
},
|
|
"target_nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Nicotine Mg Ml"
|
|
},
|
|
"is_archived": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Archived"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"components": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/MixComponentIn"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Components"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "MixUpdate"
|
|
},
|
|
"MonthlyByCategoryResponse": {
|
|
"properties": {
|
|
"months": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Months"
|
|
},
|
|
"series": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MonthlySeries"
|
|
},
|
|
"type": "array",
|
|
"title": "Series"
|
|
},
|
|
"totals": {
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array",
|
|
"title": "Totals"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"months",
|
|
"series",
|
|
"totals"
|
|
],
|
|
"title": "MonthlyByCategoryResponse"
|
|
},
|
|
"MonthlySeries": {
|
|
"properties": {
|
|
"category_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"color": {
|
|
"type": "string",
|
|
"title": "Color"
|
|
},
|
|
"data": {
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"type": "array",
|
|
"title": "Data"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"category_id",
|
|
"name",
|
|
"color",
|
|
"data"
|
|
],
|
|
"title": "MonthlySeries"
|
|
},
|
|
"NormalizedRowRead": {
|
|
"properties": {
|
|
"booked_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Booked Date"
|
|
},
|
|
"value_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value Date"
|
|
},
|
|
"amount": {
|
|
"type": "number",
|
|
"title": "Amount"
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"title": "Currency"
|
|
},
|
|
"label_raw": {
|
|
"type": "string",
|
|
"title": "Label Raw"
|
|
},
|
|
"counterparty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Counterparty"
|
|
},
|
|
"external_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "External Id"
|
|
},
|
|
"source_row_index": {
|
|
"type": "integer",
|
|
"title": "Source Row Index"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"booked_date",
|
|
"value_date",
|
|
"amount",
|
|
"currency",
|
|
"label_raw",
|
|
"counterparty",
|
|
"external_id",
|
|
"source_row_index"
|
|
],
|
|
"title": "NormalizedRowRead"
|
|
},
|
|
"NutritionDayDetail": {
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Date"
|
|
},
|
|
"totals": {
|
|
"$ref": "#/components/schemas/NutritionDayRead"
|
|
},
|
|
"water_ml": {
|
|
"type": "integer",
|
|
"title": "Water Ml",
|
|
"default": 0
|
|
},
|
|
"water_goal_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Water Goal Ml"
|
|
},
|
|
"protein_goal_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein Goal G"
|
|
},
|
|
"meals": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MealTotals"
|
|
},
|
|
"type": "array",
|
|
"title": "Meals"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"date",
|
|
"totals"
|
|
],
|
|
"title": "NutritionDayDetail"
|
|
},
|
|
"NutritionDayRead": {
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Date"
|
|
},
|
|
"kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"fiber_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fiber G"
|
|
},
|
|
"budget_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Kcal"
|
|
},
|
|
"vs_budget_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vs Budget Kcal"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"date"
|
|
],
|
|
"title": "NutritionDayRead"
|
|
},
|
|
"Page_BodyMeasurementRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BodyMeasurementRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[BodyMeasurementRead]"
|
|
},
|
|
"Page_CoilChangeRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CoilChangeRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[CoilChangeRead]"
|
|
},
|
|
"Page_FoodEntryRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FoodEntryRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[FoodEntryRead]"
|
|
},
|
|
"Page_FoodFavoriteRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FoodFavoriteRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[FoodFavoriteRead]"
|
|
},
|
|
"Page_GoalRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[GoalRead]"
|
|
},
|
|
"Page_LiquidEntryRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiquidEntryRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[LiquidEntryRead]"
|
|
},
|
|
"Page_MixRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MixRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[MixRead]"
|
|
},
|
|
"Page_ProductRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProductRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[ProductRead]"
|
|
},
|
|
"Page_PurchaseRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PurchaseRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[PurchaseRead]"
|
|
},
|
|
"Page_TransactionRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TransactionRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[TransactionRead]"
|
|
},
|
|
"Page_WaterEntryRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/WaterEntryRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[WaterEntryRead]"
|
|
},
|
|
"Page_WeightEntryRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/WeightEntryRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[WeightEntryRead]"
|
|
},
|
|
"Page_WorkoutRead_": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkoutRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[WorkoutRead]"
|
|
},
|
|
"PeriodRead": {
|
|
"properties": {
|
|
"from": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "From"
|
|
},
|
|
"to": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "To"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"from",
|
|
"to"
|
|
],
|
|
"title": "PeriodRead"
|
|
},
|
|
"ProductCreate": {
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/ProductKind"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 150,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"price_cents": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Price Cents"
|
|
},
|
|
"size_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Size Value"
|
|
},
|
|
"size_unit": {
|
|
"$ref": "#/components/schemas/SizeUnit"
|
|
},
|
|
"nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Mg Ml"
|
|
},
|
|
"vg_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vg Pct"
|
|
},
|
|
"ohm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ohm"
|
|
},
|
|
"is_archived": {
|
|
"type": "boolean",
|
|
"title": "Is Archived",
|
|
"default": false
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind",
|
|
"name",
|
|
"price_cents",
|
|
"size_value",
|
|
"size_unit"
|
|
],
|
|
"title": "ProductCreate"
|
|
},
|
|
"ProductKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"coil",
|
|
"base",
|
|
"booster",
|
|
"aroma",
|
|
"hardware",
|
|
"pod"
|
|
],
|
|
"title": "ProductKind"
|
|
},
|
|
"ProductRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/ProductKind"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"price_cents": {
|
|
"type": "integer",
|
|
"title": "Price Cents"
|
|
},
|
|
"size_value": {
|
|
"type": "number",
|
|
"title": "Size Value"
|
|
},
|
|
"size_unit": {
|
|
"$ref": "#/components/schemas/SizeUnit"
|
|
},
|
|
"nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Mg Ml"
|
|
},
|
|
"vg_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vg Pct"
|
|
},
|
|
"ohm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ohm"
|
|
},
|
|
"is_archived": {
|
|
"type": "boolean",
|
|
"title": "Is Archived"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"unit_price_cents": {
|
|
"type": "number",
|
|
"title": "Unit Price Cents"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"kind",
|
|
"name",
|
|
"brand",
|
|
"price_cents",
|
|
"size_value",
|
|
"size_unit",
|
|
"nicotine_mg_ml",
|
|
"vg_pct",
|
|
"ohm",
|
|
"is_archived",
|
|
"note",
|
|
"unit_price_cents"
|
|
],
|
|
"title": "ProductRead"
|
|
},
|
|
"ProductUpdate": {
|
|
"properties": {
|
|
"kind": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProductKind"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 150,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"price_cents": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Price Cents"
|
|
},
|
|
"size_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Size Value"
|
|
},
|
|
"size_unit": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SizeUnit"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Mg Ml"
|
|
},
|
|
"vg_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vg Pct"
|
|
},
|
|
"ohm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ohm"
|
|
},
|
|
"is_archived": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Archived"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "ProductUpdate"
|
|
},
|
|
"ProjectionRead": {
|
|
"properties": {
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
},
|
|
"date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"status"
|
|
],
|
|
"title": "ProjectionRead"
|
|
},
|
|
"PurchaseCreate": {
|
|
"properties": {
|
|
"purchased_on": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Purchased On"
|
|
},
|
|
"product_id": {
|
|
"type": "integer",
|
|
"title": "Product Id"
|
|
},
|
|
"qty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Qty",
|
|
"default": "1"
|
|
},
|
|
"unit_price_cents": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Unit Price Cents"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"purchased_on",
|
|
"product_id"
|
|
],
|
|
"title": "PurchaseCreate"
|
|
},
|
|
"PurchaseRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"purchased_on": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Purchased On"
|
|
},
|
|
"product_id": {
|
|
"type": "integer",
|
|
"title": "Product Id"
|
|
},
|
|
"product_name": {
|
|
"type": "string",
|
|
"title": "Product Name"
|
|
},
|
|
"qty": {
|
|
"type": "number",
|
|
"title": "Qty"
|
|
},
|
|
"unit_price_cents": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Unit Price Cents"
|
|
},
|
|
"total_cents": {
|
|
"type": "number",
|
|
"title": "Total Cents"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"purchased_on",
|
|
"product_id",
|
|
"product_name",
|
|
"qty",
|
|
"unit_price_cents",
|
|
"total_cents",
|
|
"note"
|
|
],
|
|
"title": "PurchaseRead"
|
|
},
|
|
"PurchaseUpdate": {
|
|
"properties": {
|
|
"purchased_on": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Purchased On"
|
|
},
|
|
"product_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Product Id"
|
|
},
|
|
"qty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Qty"
|
|
},
|
|
"unit_price_cents": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Unit Price Cents"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "PurchaseUpdate"
|
|
},
|
|
"RecentFoodRead": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"brand": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Brand"
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"title": "Unit",
|
|
"default": "g"
|
|
},
|
|
"quantity": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quantity"
|
|
},
|
|
"kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kcal"
|
|
},
|
|
"protein_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Protein G"
|
|
},
|
|
"carbs_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Carbs G"
|
|
},
|
|
"fat_g": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fat G"
|
|
},
|
|
"meal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MealType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"last_eaten_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Last Eaten At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"last_eaten_at"
|
|
],
|
|
"title": "RecentFoodRead",
|
|
"description": "Distinct (name, brand) recently logged — computed from food_entries."
|
|
},
|
|
"RecurringItem": {
|
|
"properties": {
|
|
"merchant_key": {
|
|
"type": "string",
|
|
"title": "Merchant Key"
|
|
},
|
|
"label_display": {
|
|
"type": "string",
|
|
"title": "Label Display"
|
|
},
|
|
"category_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Id"
|
|
},
|
|
"category_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Name"
|
|
},
|
|
"periodicity": {
|
|
"type": "string",
|
|
"title": "Periodicity"
|
|
},
|
|
"occurrences": {
|
|
"type": "integer",
|
|
"title": "Occurrences"
|
|
},
|
|
"average_amount": {
|
|
"type": "number",
|
|
"title": "Average Amount"
|
|
},
|
|
"expected_amount": {
|
|
"type": "number",
|
|
"title": "Expected Amount"
|
|
},
|
|
"last_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Last Date"
|
|
},
|
|
"next_date_predicted": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Next Date Predicted"
|
|
},
|
|
"is_active": {
|
|
"type": "boolean",
|
|
"title": "Is Active"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"merchant_key",
|
|
"label_display",
|
|
"category_id",
|
|
"category_name",
|
|
"periodicity",
|
|
"occurrences",
|
|
"average_amount",
|
|
"expected_amount",
|
|
"last_date",
|
|
"next_date_predicted",
|
|
"is_active"
|
|
],
|
|
"title": "RecurringItem"
|
|
},
|
|
"RecurringResponse": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/RecurringItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"monthly_total_estimate": {
|
|
"type": "number",
|
|
"title": "Monthly Total Estimate"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"monthly_total_estimate"
|
|
],
|
|
"title": "RecurringResponse"
|
|
},
|
|
"RuleApplyByRule": {
|
|
"properties": {
|
|
"rule_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Rule Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"matched": {
|
|
"type": "integer",
|
|
"title": "Matched"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"rule_id",
|
|
"name",
|
|
"matched"
|
|
],
|
|
"title": "RuleApplyByRule"
|
|
},
|
|
"RuleApplyRequest": {
|
|
"properties": {
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"uncategorized",
|
|
"all_non_manual",
|
|
"all"
|
|
],
|
|
"title": "Scope",
|
|
"default": "uncategorized"
|
|
},
|
|
"date_from": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date From"
|
|
},
|
|
"date_to": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date To"
|
|
},
|
|
"account_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Id"
|
|
},
|
|
"rule_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rule Id"
|
|
},
|
|
"dry_run": {
|
|
"type": "boolean",
|
|
"title": "Dry Run",
|
|
"default": false
|
|
},
|
|
"force": {
|
|
"type": "boolean",
|
|
"title": "Force",
|
|
"default": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "RuleApplyRequest"
|
|
},
|
|
"RuleApplyResponse": {
|
|
"properties": {
|
|
"scanned": {
|
|
"type": "integer",
|
|
"title": "Scanned"
|
|
},
|
|
"matched": {
|
|
"type": "integer",
|
|
"title": "Matched"
|
|
},
|
|
"updated": {
|
|
"type": "integer",
|
|
"title": "Updated"
|
|
},
|
|
"dry_run": {
|
|
"type": "boolean",
|
|
"title": "Dry Run"
|
|
},
|
|
"by_rule": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/RuleApplyByRule"
|
|
},
|
|
"type": "array",
|
|
"title": "By Rule"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"scanned",
|
|
"matched",
|
|
"updated",
|
|
"dry_run",
|
|
"by_rule"
|
|
],
|
|
"title": "RuleApplyResponse"
|
|
},
|
|
"RuleCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"priority": {
|
|
"type": "integer",
|
|
"title": "Priority",
|
|
"default": 100
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled",
|
|
"default": true
|
|
},
|
|
"stop": {
|
|
"type": "boolean",
|
|
"title": "Stop",
|
|
"default": true
|
|
},
|
|
"matchers": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Matchers"
|
|
},
|
|
"actions": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Actions"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"matchers",
|
|
"actions"
|
|
],
|
|
"title": "RuleCreate"
|
|
},
|
|
"RulePreviewRequest": {
|
|
"properties": {
|
|
"matchers": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Matchers"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"matchers"
|
|
],
|
|
"title": "RulePreviewRequest"
|
|
},
|
|
"RulePreviewResponse": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TransactionRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total_matched": {
|
|
"type": "integer",
|
|
"title": "Total Matched"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total_matched"
|
|
],
|
|
"title": "RulePreviewResponse"
|
|
},
|
|
"RuleRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"priority": {
|
|
"type": "integer",
|
|
"title": "Priority"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled"
|
|
},
|
|
"stop": {
|
|
"type": "boolean",
|
|
"title": "Stop"
|
|
},
|
|
"matchers": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Matchers"
|
|
},
|
|
"actions": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Actions"
|
|
},
|
|
"hit_count": {
|
|
"type": "integer",
|
|
"title": "Hit Count"
|
|
},
|
|
"last_applied_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Applied At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"priority",
|
|
"enabled",
|
|
"stop",
|
|
"matchers",
|
|
"actions",
|
|
"hit_count",
|
|
"last_applied_at"
|
|
],
|
|
"title": "RuleRead"
|
|
},
|
|
"RuleReorderRequest": {
|
|
"properties": {
|
|
"ordered_ids": {
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"title": "Ordered Ids"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"ordered_ids"
|
|
],
|
|
"title": "RuleReorderRequest"
|
|
},
|
|
"RuleUpdate": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Priority"
|
|
},
|
|
"enabled": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enabled"
|
|
},
|
|
"stop": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Stop"
|
|
},
|
|
"matchers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Matchers"
|
|
},
|
|
"actions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Actions"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "RuleUpdate"
|
|
},
|
|
"SankeyLink": {
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"title": "Target"
|
|
},
|
|
"value": {
|
|
"type": "number",
|
|
"title": "Value"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"value"
|
|
],
|
|
"title": "SankeyLink"
|
|
},
|
|
"SankeyNode": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"color": {
|
|
"type": "string",
|
|
"title": "Color"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"color"
|
|
],
|
|
"title": "SankeyNode"
|
|
},
|
|
"SankeyResponse": {
|
|
"properties": {
|
|
"period": {
|
|
"$ref": "#/components/schemas/PeriodRead"
|
|
},
|
|
"nodes": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SankeyNode"
|
|
},
|
|
"type": "array",
|
|
"title": "Nodes"
|
|
},
|
|
"links": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SankeyLink"
|
|
},
|
|
"type": "array",
|
|
"title": "Links"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"period",
|
|
"nodes",
|
|
"links"
|
|
],
|
|
"title": "SankeyResponse"
|
|
},
|
|
"ScheduleKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"weigh_in",
|
|
"workout",
|
|
"food_log"
|
|
],
|
|
"title": "ScheduleKind"
|
|
},
|
|
"ScheduleRead": {
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/ScheduleKind"
|
|
},
|
|
"weekdays": {
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array",
|
|
"title": "Weekdays"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled",
|
|
"default": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"title": "ScheduleRead"
|
|
},
|
|
"ScheduleUpdate": {
|
|
"properties": {
|
|
"weekdays": {
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array",
|
|
"title": "Weekdays"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled",
|
|
"default": true
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "ScheduleUpdate"
|
|
},
|
|
"Series": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"points": {
|
|
"items": {
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
"type": "array",
|
|
"title": "Points"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"type"
|
|
],
|
|
"title": "Series"
|
|
},
|
|
"SeriesModel": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"points": {
|
|
"items": {
|
|
"prefixItems": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"type": "array",
|
|
"maxItems": 2,
|
|
"minItems": 2
|
|
},
|
|
"type": "array",
|
|
"title": "Points"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"type",
|
|
"points"
|
|
],
|
|
"title": "SeriesModel"
|
|
},
|
|
"SetupRequest": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"maxLength": 255,
|
|
"minLength": 3,
|
|
"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
|
|
"title": "Email"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"maxLength": 128,
|
|
"minLength": 8,
|
|
"title": "Password"
|
|
},
|
|
"display_name": {
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1,
|
|
"title": "Display Name"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email",
|
|
"password",
|
|
"display_name"
|
|
],
|
|
"title": "SetupRequest"
|
|
},
|
|
"Sex": {
|
|
"type": "string",
|
|
"enum": [
|
|
"male",
|
|
"female",
|
|
"other"
|
|
],
|
|
"title": "Sex"
|
|
},
|
|
"SizeUnit": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ml",
|
|
"unit",
|
|
"g"
|
|
],
|
|
"title": "SizeUnit"
|
|
},
|
|
"SourceInfo": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"title": "Label"
|
|
},
|
|
"domain": {
|
|
"type": "string",
|
|
"title": "Domain"
|
|
},
|
|
"accepted_extensions": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Accepted Extensions"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"label",
|
|
"domain",
|
|
"accepted_extensions"
|
|
],
|
|
"title": "SourceInfo"
|
|
},
|
|
"SourceKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"csv",
|
|
"ofx",
|
|
"paypal_csv"
|
|
],
|
|
"title": "SourceKind"
|
|
},
|
|
"SourceProfileCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/SourceKind"
|
|
},
|
|
"config": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Config"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"kind"
|
|
],
|
|
"title": "SourceProfileCreate"
|
|
},
|
|
"SourceProfileRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/components/schemas/SourceKind"
|
|
},
|
|
"config": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Config"
|
|
},
|
|
"is_builtin": {
|
|
"type": "boolean",
|
|
"title": "Is Builtin"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"kind",
|
|
"config",
|
|
"is_builtin"
|
|
],
|
|
"title": "SourceProfileRead"
|
|
},
|
|
"SourceProfileUpdate": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Config"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "SourceProfileUpdate"
|
|
},
|
|
"SportType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"treadmill_walk",
|
|
"treadmill_run",
|
|
"walking",
|
|
"running",
|
|
"cycling",
|
|
"swimming",
|
|
"strength",
|
|
"hiit",
|
|
"yoga",
|
|
"hiking",
|
|
"other"
|
|
],
|
|
"title": "SportType"
|
|
},
|
|
"StreakRead": {
|
|
"properties": {
|
|
"current": {
|
|
"type": "integer",
|
|
"title": "Current",
|
|
"default": 0
|
|
},
|
|
"best": {
|
|
"type": "integer",
|
|
"title": "Best",
|
|
"default": 0
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "StreakRead"
|
|
},
|
|
"TodayItem": {
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/ScheduleKind"
|
|
},
|
|
"planned": {
|
|
"type": "boolean",
|
|
"title": "Planned"
|
|
},
|
|
"done": {
|
|
"type": "boolean",
|
|
"title": "Done"
|
|
},
|
|
"value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind",
|
|
"planned",
|
|
"done"
|
|
],
|
|
"title": "TodayItem"
|
|
},
|
|
"TodayResponse": {
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Date"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TodayItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"streaks": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/StreakRead"
|
|
},
|
|
"type": "object",
|
|
"title": "Streaks"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"date"
|
|
],
|
|
"title": "TodayResponse"
|
|
},
|
|
"TokenResponse": {
|
|
"properties": {
|
|
"access_token": {
|
|
"type": "string",
|
|
"title": "Access Token"
|
|
},
|
|
"token_type": {
|
|
"type": "string",
|
|
"title": "Token Type",
|
|
"default": "bearer"
|
|
},
|
|
"user": {
|
|
"$ref": "#/components/schemas/UserRead"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"access_token",
|
|
"user"
|
|
],
|
|
"title": "TokenResponse"
|
|
},
|
|
"TopMerchantsResponse": {
|
|
"properties": {
|
|
"period": {
|
|
"$ref": "#/components/schemas/PeriodRead"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MerchantRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"period",
|
|
"items"
|
|
],
|
|
"title": "TopMerchantsResponse"
|
|
},
|
|
"TransactionCreate": {
|
|
"properties": {
|
|
"account_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Account Id"
|
|
},
|
|
"booked_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Booked Date"
|
|
},
|
|
"amount": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Amount"
|
|
},
|
|
"label_clean": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"title": "Label Clean"
|
|
},
|
|
"value_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value Date"
|
|
},
|
|
"currency": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 3,
|
|
"minLength": 3
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Currency"
|
|
},
|
|
"category_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Id"
|
|
},
|
|
"counterparty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 150
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Counterparty"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"account_id",
|
|
"booked_date",
|
|
"amount",
|
|
"label_clean"
|
|
],
|
|
"title": "TransactionCreate"
|
|
},
|
|
"TransactionRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"account_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Account Id"
|
|
},
|
|
"account_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Account Name"
|
|
},
|
|
"booked_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Booked Date"
|
|
},
|
|
"value_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value Date"
|
|
},
|
|
"amount": {
|
|
"type": "number",
|
|
"title": "Amount"
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"title": "Currency"
|
|
},
|
|
"label_raw": {
|
|
"type": "string",
|
|
"title": "Label Raw"
|
|
},
|
|
"label_clean": {
|
|
"type": "string",
|
|
"title": "Label Clean"
|
|
},
|
|
"counterparty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Counterparty"
|
|
},
|
|
"category_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Id"
|
|
},
|
|
"category_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Name"
|
|
},
|
|
"category_color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Color"
|
|
},
|
|
"category_source": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CategorySource"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
},
|
|
"transfer_group_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Transfer Group Id"
|
|
},
|
|
"external_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "External Id"
|
|
},
|
|
"import_run_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Import Run Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"account_id",
|
|
"booked_date",
|
|
"amount",
|
|
"currency",
|
|
"label_raw",
|
|
"label_clean"
|
|
],
|
|
"title": "TransactionRead"
|
|
},
|
|
"TransactionUpdate": {
|
|
"properties": {
|
|
"label_clean": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Label Clean"
|
|
},
|
|
"counterparty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 150
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Counterparty"
|
|
},
|
|
"category_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Id"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
},
|
|
"booked_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Booked Date"
|
|
},
|
|
"amount": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Amount"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"title": "TransactionUpdate"
|
|
},
|
|
"TransferDetectRequest": {
|
|
"properties": {
|
|
"date_from": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date From"
|
|
},
|
|
"date_to": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date To"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "TransferDetectRequest"
|
|
},
|
|
"TransferDetectResponse": {
|
|
"properties": {
|
|
"pairs_created": {
|
|
"type": "integer",
|
|
"title": "Pairs Created"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"pairs_created"
|
|
],
|
|
"title": "TransferDetectResponse"
|
|
},
|
|
"TransferLinkRequest": {
|
|
"properties": {
|
|
"transaction_id_a": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Transaction Id A"
|
|
},
|
|
"transaction_id_b": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Transaction Id B"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"transaction_id_a",
|
|
"transaction_id_b"
|
|
],
|
|
"title": "TransferLinkRequest"
|
|
},
|
|
"TransferLinkResponse": {
|
|
"properties": {
|
|
"transfer_group_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Transfer Group Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"transfer_group_id"
|
|
],
|
|
"title": "TransferLinkResponse"
|
|
},
|
|
"UserRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
},
|
|
"display_name": {
|
|
"type": "string",
|
|
"title": "Display Name"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"email",
|
|
"display_name",
|
|
"created_at"
|
|
],
|
|
"title": "UserRead"
|
|
},
|
|
"UserUpdate": {
|
|
"properties": {
|
|
"email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255,
|
|
"minLength": 3,
|
|
"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Email"
|
|
},
|
|
"display_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Display Name"
|
|
},
|
|
"password": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 128,
|
|
"minLength": 8
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Password"
|
|
},
|
|
"current_password": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Current Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "UserUpdate"
|
|
},
|
|
"ValidationError": {
|
|
"properties": {
|
|
"loc": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Location"
|
|
},
|
|
"msg": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Error Type"
|
|
},
|
|
"input": {
|
|
"title": "Input"
|
|
},
|
|
"ctx": {
|
|
"type": "object",
|
|
"title": "Context"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"loc",
|
|
"msg",
|
|
"type"
|
|
],
|
|
"title": "ValidationError"
|
|
},
|
|
"VapeDashboard": {
|
|
"properties": {
|
|
"quit_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Quit Date"
|
|
},
|
|
"days_since_quit": {
|
|
"type": "integer",
|
|
"title": "Days Since Quit"
|
|
},
|
|
"ml_today": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ml Today"
|
|
},
|
|
"ml_per_day_7": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ml Per Day 7"
|
|
},
|
|
"ml_per_day_30": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ml Per Day 30"
|
|
},
|
|
"nicotine_today_mg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nicotine Today Mg"
|
|
},
|
|
"cost_per_ml_cents": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cost Per Ml Cents"
|
|
},
|
|
"coil_cost_per_day_cents": {
|
|
"type": "number",
|
|
"title": "Coil Cost Per Day Cents"
|
|
},
|
|
"vape_cost_per_day_cents": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vape Cost Per Day Cents"
|
|
},
|
|
"cig_cost_per_day_cents": {
|
|
"type": "number",
|
|
"title": "Cig Cost Per Day Cents"
|
|
},
|
|
"savings_theoretical_cents": {
|
|
"type": "number",
|
|
"title": "Savings Theoretical Cents"
|
|
},
|
|
"savings_real_cents": {
|
|
"type": "number",
|
|
"title": "Savings Real Cents"
|
|
},
|
|
"savings_display_cents": {
|
|
"type": "number",
|
|
"title": "Savings Display Cents"
|
|
},
|
|
"has_purchases": {
|
|
"type": "boolean",
|
|
"title": "Has Purchases"
|
|
},
|
|
"cigarettes_avoided": {
|
|
"type": "integer",
|
|
"title": "Cigarettes Avoided"
|
|
},
|
|
"packs_avoided": {
|
|
"type": "number",
|
|
"title": "Packs Avoided"
|
|
},
|
|
"current_coil_age_days": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Current Coil Age Days"
|
|
},
|
|
"coil_avg_lifespan_days": {
|
|
"type": "number",
|
|
"title": "Coil Avg Lifespan Days"
|
|
},
|
|
"coil_lifespan_is_default": {
|
|
"type": "boolean",
|
|
"title": "Coil Lifespan Is Default"
|
|
},
|
|
"next_milestone": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MilestoneRead"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"quit_date",
|
|
"days_since_quit",
|
|
"ml_today",
|
|
"ml_per_day_7",
|
|
"ml_per_day_30",
|
|
"nicotine_today_mg",
|
|
"cost_per_ml_cents",
|
|
"coil_cost_per_day_cents",
|
|
"vape_cost_per_day_cents",
|
|
"cig_cost_per_day_cents",
|
|
"savings_theoretical_cents",
|
|
"savings_real_cents",
|
|
"savings_display_cents",
|
|
"has_purchases",
|
|
"cigarettes_avoided",
|
|
"packs_avoided",
|
|
"current_coil_age_days",
|
|
"coil_avg_lifespan_days",
|
|
"coil_lifespan_is_default",
|
|
"next_milestone"
|
|
],
|
|
"title": "VapeDashboard"
|
|
},
|
|
"VapeSettingsPut": {
|
|
"properties": {
|
|
"quit_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Quit Date"
|
|
},
|
|
"cigs_per_day_before": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 200.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Cigs Per Day Before"
|
|
},
|
|
"cig_pack_price_cents": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Cig Pack Price Cents"
|
|
},
|
|
"cigs_per_pack": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Cigs Per Pack",
|
|
"default": 20
|
|
},
|
|
"default_nicotine_mg_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
|
|
}
|
|
],
|
|
"title": "Default Nicotine Mg Ml"
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"maxLength": 3,
|
|
"minLength": 3,
|
|
"title": "Currency",
|
|
"default": "EUR"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"quit_date",
|
|
"cigs_per_day_before",
|
|
"cig_pack_price_cents",
|
|
"default_nicotine_mg_ml"
|
|
],
|
|
"title": "VapeSettingsPut"
|
|
},
|
|
"VapeSettingsRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"quit_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Quit Date"
|
|
},
|
|
"cigs_per_day_before": {
|
|
"type": "number",
|
|
"title": "Cigs Per Day Before"
|
|
},
|
|
"cig_pack_price_cents": {
|
|
"type": "integer",
|
|
"title": "Cig Pack Price Cents"
|
|
},
|
|
"cigs_per_pack": {
|
|
"type": "integer",
|
|
"title": "Cigs Per Pack"
|
|
},
|
|
"default_nicotine_mg_ml": {
|
|
"type": "number",
|
|
"title": "Default Nicotine Mg Ml"
|
|
},
|
|
"currency": {
|
|
"type": "string",
|
|
"title": "Currency"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"quit_date",
|
|
"cigs_per_day_before",
|
|
"cig_pack_price_cents",
|
|
"cigs_per_pack",
|
|
"default_nicotine_mg_ml",
|
|
"currency"
|
|
],
|
|
"title": "VapeSettingsRead"
|
|
},
|
|
"WaterEntryCreate": {
|
|
"properties": {
|
|
"drunk_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Drunk At"
|
|
},
|
|
"volume_ml": {
|
|
"type": "integer",
|
|
"maximum": 5000.0,
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Volume Ml"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"drunk_at",
|
|
"volume_ml"
|
|
],
|
|
"title": "WaterEntryCreate"
|
|
},
|
|
"WaterEntryRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"drunk_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Drunk At"
|
|
},
|
|
"volume_ml": {
|
|
"type": "integer",
|
|
"title": "Volume Ml"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"drunk_at",
|
|
"volume_ml",
|
|
"source"
|
|
],
|
|
"title": "WaterEntryRead"
|
|
},
|
|
"WeightEntryCreate": {
|
|
"properties": {
|
|
"measured_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Measured At"
|
|
},
|
|
"weight_kg": {
|
|
"type": "number",
|
|
"exclusiveMaximum": 400.0,
|
|
"exclusiveMinimum": 20.0,
|
|
"title": "Weight Kg"
|
|
},
|
|
"body_fat_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Body Fat Pct"
|
|
},
|
|
"muscle_mass_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 200.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Muscle Mass Kg"
|
|
},
|
|
"water_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Water Pct"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"measured_at",
|
|
"weight_kg"
|
|
],
|
|
"title": "WeightEntryCreate"
|
|
},
|
|
"WeightEntryRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"measured_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Measured At"
|
|
},
|
|
"weight_kg": {
|
|
"type": "number",
|
|
"title": "Weight Kg"
|
|
},
|
|
"body_fat_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Body Fat Pct"
|
|
},
|
|
"muscle_mass_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Muscle Mass Kg"
|
|
},
|
|
"water_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Water Pct"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"measured_at",
|
|
"weight_kg",
|
|
"body_fat_pct",
|
|
"muscle_mass_kg",
|
|
"water_pct",
|
|
"note",
|
|
"source"
|
|
],
|
|
"title": "WeightEntryRead"
|
|
},
|
|
"WeightEntryUpdate": {
|
|
"properties": {
|
|
"measured_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Measured At"
|
|
},
|
|
"weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"exclusiveMaximum": 400.0,
|
|
"exclusiveMinimum": 20.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Weight Kg"
|
|
},
|
|
"body_fat_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Body Fat Pct"
|
|
},
|
|
"muscle_mass_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 200.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Muscle Mass Kg"
|
|
},
|
|
"water_pct": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Water Pct"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "WeightEntryUpdate"
|
|
},
|
|
"WorkoutCreate": {
|
|
"properties": {
|
|
"started_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Started At"
|
|
},
|
|
"ended_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Ended At"
|
|
},
|
|
"sport_type": {
|
|
"$ref": "#/components/schemas/SportType"
|
|
},
|
|
"sport_label": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sport Label"
|
|
},
|
|
"kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kcal"
|
|
},
|
|
"distance_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance M"
|
|
},
|
|
"steps": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Steps"
|
|
},
|
|
"avg_hr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"maximum": 300.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avg Hr"
|
|
},
|
|
"max_hr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"maximum": 300.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Hr"
|
|
},
|
|
"avg_speed_kmh": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avg Speed Kmh"
|
|
},
|
|
"elevation_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Elevation M"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"started_at",
|
|
"ended_at",
|
|
"sport_type"
|
|
],
|
|
"title": "WorkoutCreate"
|
|
},
|
|
"WorkoutRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"started_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Started At"
|
|
},
|
|
"ended_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Ended At"
|
|
},
|
|
"duration_s": {
|
|
"type": "integer",
|
|
"title": "Duration S"
|
|
},
|
|
"sport_type": {
|
|
"$ref": "#/components/schemas/SportType"
|
|
},
|
|
"sport_label": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sport Label"
|
|
},
|
|
"kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kcal"
|
|
},
|
|
"distance_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance M"
|
|
},
|
|
"steps": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Steps"
|
|
},
|
|
"avg_hr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avg Hr"
|
|
},
|
|
"max_hr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Hr"
|
|
},
|
|
"avg_speed_kmh": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avg Speed Kmh"
|
|
},
|
|
"elevation_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Elevation M"
|
|
},
|
|
"is_hidden": {
|
|
"type": "boolean",
|
|
"title": "Is Hidden"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"started_at",
|
|
"ended_at",
|
|
"duration_s",
|
|
"sport_type",
|
|
"sport_label",
|
|
"kcal",
|
|
"distance_m",
|
|
"steps",
|
|
"avg_hr",
|
|
"max_hr",
|
|
"avg_speed_kmh",
|
|
"elevation_m",
|
|
"is_hidden",
|
|
"note",
|
|
"source"
|
|
],
|
|
"title": "WorkoutRead"
|
|
},
|
|
"WorkoutUpdate": {
|
|
"properties": {
|
|
"started_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Started At"
|
|
},
|
|
"ended_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ended At"
|
|
},
|
|
"sport_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SportType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"sport_label": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sport Label"
|
|
},
|
|
"kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kcal"
|
|
},
|
|
"distance_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance M"
|
|
},
|
|
"steps": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Steps"
|
|
},
|
|
"avg_hr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"maximum": 300.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avg Hr"
|
|
},
|
|
"max_hr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"maximum": 300.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Hr"
|
|
},
|
|
"avg_speed_kmh": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avg Speed Kmh"
|
|
},
|
|
"elevation_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Elevation M"
|
|
},
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 255
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"is_hidden": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Hidden"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "WorkoutUpdate"
|
|
},
|
|
"app__core__pagination__Page_ImportRunRead___1": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/app__modules__finance__schemas__ImportRunRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[ImportRunRead]"
|
|
},
|
|
"app__core__pagination__Page_ImportRunRead___2": {
|
|
"properties": {
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/app__modules__imports__schemas__ImportRunRead"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"title": "Page"
|
|
},
|
|
"page_size": {
|
|
"type": "integer",
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"items",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "Page[ImportRunRead]"
|
|
},
|
|
"app__modules__finance__schemas__BudgetRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"category_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Category Id"
|
|
},
|
|
"category_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Name"
|
|
},
|
|
"category_color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category Color"
|
|
},
|
|
"monthly_amount": {
|
|
"type": "number",
|
|
"title": "Monthly Amount"
|
|
},
|
|
"start_month": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Start Month"
|
|
},
|
|
"end_month": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Month"
|
|
},
|
|
"actual": {
|
|
"type": "number",
|
|
"title": "Actual",
|
|
"default": 0.0
|
|
},
|
|
"remaining": {
|
|
"type": "number",
|
|
"title": "Remaining",
|
|
"default": 0.0
|
|
},
|
|
"progress_pct": {
|
|
"type": "number",
|
|
"title": "Progress Pct",
|
|
"default": 0.0
|
|
},
|
|
"projected_eom": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Projected Eom"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status",
|
|
"default": "ok"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"category_id",
|
|
"monthly_amount",
|
|
"start_month",
|
|
"end_month"
|
|
],
|
|
"title": "BudgetRead"
|
|
},
|
|
"app__modules__finance__schemas__DashboardResponse": {
|
|
"properties": {
|
|
"month": {
|
|
"type": "string",
|
|
"title": "Month"
|
|
},
|
|
"total_balance": {
|
|
"type": "number",
|
|
"title": "Total Balance"
|
|
},
|
|
"accounts_count": {
|
|
"type": "integer",
|
|
"title": "Accounts Count"
|
|
},
|
|
"month_expenses": {
|
|
"type": "number",
|
|
"title": "Month Expenses"
|
|
},
|
|
"month_income": {
|
|
"type": "number",
|
|
"title": "Month Income"
|
|
},
|
|
"month_net": {
|
|
"type": "number",
|
|
"title": "Month Net"
|
|
},
|
|
"average_expenses_6m": {
|
|
"type": "number",
|
|
"title": "Average Expenses 6M"
|
|
},
|
|
"budget_total": {
|
|
"type": "number",
|
|
"title": "Budget Total"
|
|
},
|
|
"budget_actual": {
|
|
"type": "number",
|
|
"title": "Budget Actual"
|
|
},
|
|
"budget_progress_pct": {
|
|
"type": "number",
|
|
"title": "Budget Progress Pct"
|
|
},
|
|
"uncategorized_count": {
|
|
"type": "integer",
|
|
"title": "Uncategorized Count"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"month",
|
|
"total_balance",
|
|
"accounts_count",
|
|
"month_expenses",
|
|
"month_income",
|
|
"month_net",
|
|
"average_expenses_6m",
|
|
"budget_total",
|
|
"budget_actual",
|
|
"budget_progress_pct",
|
|
"uncategorized_count"
|
|
],
|
|
"title": "DashboardResponse"
|
|
},
|
|
"app__modules__finance__schemas__ImportRunRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"import_run_id": {
|
|
"type": "integer",
|
|
"title": "Import Run Id"
|
|
},
|
|
"account_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Account Id"
|
|
},
|
|
"source_profile_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Profile Id"
|
|
},
|
|
"filename": {
|
|
"type": "string",
|
|
"title": "Filename"
|
|
},
|
|
"file_sha256": {
|
|
"type": "string",
|
|
"title": "File Sha256"
|
|
},
|
|
"status": {
|
|
"$ref": "#/components/schemas/ImportStatus"
|
|
},
|
|
"started_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Started At"
|
|
},
|
|
"finished_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Finished At"
|
|
},
|
|
"stats": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Stats"
|
|
},
|
|
"error_message": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error Message"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"import_run_id",
|
|
"account_id",
|
|
"source_profile_id",
|
|
"filename",
|
|
"file_sha256",
|
|
"status",
|
|
"started_at",
|
|
"finished_at",
|
|
"stats",
|
|
"error_message"
|
|
],
|
|
"title": "ImportRunRead"
|
|
},
|
|
"app__modules__health__schemas__BudgetRead": {
|
|
"properties": {
|
|
"kcal": {
|
|
"type": "number",
|
|
"title": "Kcal"
|
|
},
|
|
"deficit_target_kcal": {
|
|
"type": "number",
|
|
"title": "Deficit Target Kcal"
|
|
},
|
|
"floor_applied": {
|
|
"type": "boolean",
|
|
"title": "Floor Applied"
|
|
},
|
|
"rate_clamped": {
|
|
"type": "boolean",
|
|
"title": "Rate Clamped",
|
|
"default": false
|
|
},
|
|
"tdee_kcal": {
|
|
"type": "number",
|
|
"title": "Tdee Kcal"
|
|
},
|
|
"tdee_method": {
|
|
"type": "string",
|
|
"title": "Tdee Method"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kcal",
|
|
"deficit_target_kcal",
|
|
"floor_applied",
|
|
"tdee_kcal",
|
|
"tdee_method"
|
|
],
|
|
"title": "BudgetRead"
|
|
},
|
|
"app__modules__health__schemas__DashboardResponse": {
|
|
"properties": {
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "Date"
|
|
},
|
|
"weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Weight Kg"
|
|
},
|
|
"weight_measured_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Weight Measured At"
|
|
},
|
|
"trend_weight_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Trend Weight Kg"
|
|
},
|
|
"trend_delta_7d_kg": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Trend Delta 7D Kg"
|
|
},
|
|
"bmi": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bmi"
|
|
},
|
|
"intake_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Intake Kcal"
|
|
},
|
|
"budget_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Kcal"
|
|
},
|
|
"remaining_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Remaining Kcal"
|
|
},
|
|
"tdee_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tdee Kcal"
|
|
},
|
|
"tdee_method": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tdee Method"
|
|
},
|
|
"balance_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Balance Kcal"
|
|
},
|
|
"cumulative_balance_30d_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cumulative Balance 30D Kcal"
|
|
},
|
|
"steps": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Steps"
|
|
},
|
|
"active_kcal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Active Kcal"
|
|
},
|
|
"distance_m": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance M"
|
|
},
|
|
"water_ml": {
|
|
"type": "integer",
|
|
"title": "Water Ml",
|
|
"default": 0
|
|
},
|
|
"water_goal_ml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Water Goal Ml"
|
|
},
|
|
"workouts_this_week": {
|
|
"type": "integer",
|
|
"title": "Workouts This Week",
|
|
"default": 0
|
|
},
|
|
"goal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalRead"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"projection": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProjectionRead"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"weight_series": {
|
|
"items": {
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
"type": "array",
|
|
"title": "Weight Series"
|
|
},
|
|
"today": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TodayResponse"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"date"
|
|
],
|
|
"title": "DashboardResponse"
|
|
},
|
|
"app__modules__health__schemas__StatsResponse": {
|
|
"properties": {
|
|
"from": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "From"
|
|
},
|
|
"to": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "To"
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"title": "Unit"
|
|
},
|
|
"series": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
"type": "array",
|
|
"title": "Series"
|
|
},
|
|
"meta": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Meta"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"from",
|
|
"to",
|
|
"unit"
|
|
],
|
|
"title": "StatsResponse"
|
|
},
|
|
"app__modules__imports__schemas__ImportRunRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"importer_id": {
|
|
"type": "string",
|
|
"title": "Importer Id"
|
|
},
|
|
"domain": {
|
|
"type": "string",
|
|
"title": "Domain"
|
|
},
|
|
"filename": {
|
|
"type": "string",
|
|
"title": "Filename"
|
|
},
|
|
"file_size": {
|
|
"type": "integer",
|
|
"title": "File Size"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
},
|
|
"rows_total": {
|
|
"type": "integer",
|
|
"title": "Rows Total"
|
|
},
|
|
"rows_inserted": {
|
|
"type": "integer",
|
|
"title": "Rows Inserted"
|
|
},
|
|
"rows_updated": {
|
|
"type": "integer",
|
|
"title": "Rows Updated"
|
|
},
|
|
"rows_duplicates": {
|
|
"type": "integer",
|
|
"title": "Rows Duplicates"
|
|
},
|
|
"rows_errors": {
|
|
"type": "integer",
|
|
"title": "Rows Errors"
|
|
},
|
|
"error_details": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array",
|
|
"title": "Error Details"
|
|
},
|
|
"started_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Started At"
|
|
},
|
|
"finished_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Finished At"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"importer_id",
|
|
"domain",
|
|
"filename",
|
|
"file_size",
|
|
"status",
|
|
"rows_total",
|
|
"rows_inserted",
|
|
"rows_updated",
|
|
"rows_duplicates",
|
|
"rows_errors",
|
|
"error_details",
|
|
"started_at",
|
|
"finished_at",
|
|
"created_at"
|
|
],
|
|
"title": "ImportRunRead"
|
|
},
|
|
"app__modules__vape__schemas__StatsResponse": {
|
|
"properties": {
|
|
"from": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "From"
|
|
},
|
|
"to": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"title": "To"
|
|
},
|
|
"unit": {
|
|
"type": "string",
|
|
"title": "Unit"
|
|
},
|
|
"series": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SeriesModel"
|
|
},
|
|
"type": "array",
|
|
"title": "Series"
|
|
},
|
|
"meta": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Meta"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"from",
|
|
"to",
|
|
"unit",
|
|
"series",
|
|
"meta"
|
|
],
|
|
"title": "StatsResponse"
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"HTTPBearer": {
|
|
"type": "http",
|
|
"scheme": "bearer"
|
|
}
|
|
}
|
|
}
|
|
}
|