{
  "components": {
    "schemas": {
      "ApiTokenCreateInput": {
        "properties": {
          "expires_days": {
            "default": 90,
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Expires Days",
            "type": "integer"
          },
          "name": {
            "maxLength": 100,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          },
          "scopes": {
            "items": {
              "enum": [
                "status:read",
                "catalog:read",
                "stock:read",
                "shopping:read",
                "shopping:write",
                "scans:read",
                "scans:write"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 1,
            "title": "Scopes",
            "type": "array"
          }
        },
        "required": [
          "name",
          "scopes"
        ],
        "title": "ApiTokenCreateInput",
        "type": "object"
      },
      "ApiTokenCreatedResponse": {
        "properties": {
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "expires_at": {
            "title": "Expires At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "scopes": {
            "items": {
              "enum": [
                "status:read",
                "catalog:read",
                "stock:read",
                "shopping:read",
                "shopping:write",
                "scans:read",
                "scans:write"
              ],
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          },
          "token": {
            "title": "Token",
            "type": "string"
          },
          "token_prefix": {
            "title": "Token Prefix",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "token_prefix",
          "scopes",
          "expires_at",
          "created_at",
          "token"
        ],
        "title": "ApiTokenCreatedResponse",
        "type": "object"
      },
      "ApiTokenResponse": {
        "properties": {
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "expires_at": {
            "title": "Expires At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "scopes": {
            "items": {
              "enum": [
                "status:read",
                "catalog:read",
                "stock:read",
                "shopping:read",
                "shopping:write",
                "scans:read",
                "scans:write"
              ],
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          },
          "token_prefix": {
            "title": "Token Prefix",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "token_prefix",
          "scopes",
          "expires_at",
          "created_at"
        ],
        "title": "ApiTokenResponse",
        "type": "object"
      },
      "ApiTokenScopeResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "enum": [
              "status:read",
              "catalog:read",
              "stock:read",
              "shopping:read",
              "shopping:write",
              "scans:read",
              "scans:write"
            ],
            "title": "Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "description"
        ],
        "title": "ApiTokenScopeResponse",
        "type": "object"
      },
      "AuthSessionResponse": {
        "properties": {
          "authenticated_at": {
            "title": "Authenticated At",
            "type": "string"
          },
          "authentication_method": {
            "title": "Authentication Method",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "current": {
            "title": "Current",
            "type": "boolean"
          },
          "device_name": {
            "title": "Device Name",
            "type": "string"
          },
          "expires_at": {
            "title": "Expires At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_seen_at": {
            "title": "Last Seen At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "device_name",
          "created_at",
          "last_seen_at",
          "expires_at",
          "authenticated_at",
          "authentication_method",
          "current"
        ],
        "title": "AuthSessionResponse",
        "type": "object"
      },
      "AuthenticatedUserResponse": {
        "properties": {
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "household_id": {
            "title": "Household Id",
            "type": "string"
          },
          "household_name": {
            "title": "Household Name",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "owner_setup_complete": {
            "title": "Owner Setup Complete",
            "type": "boolean"
          },
          "preferred_locale": {
            "enum": [
              "de",
              "en"
            ],
            "title": "Preferred Locale",
            "type": "string"
          },
          "role": {
            "enum": [
              "owner",
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "id",
          "display_name",
          "role",
          "household_id",
          "household_name",
          "owner_setup_complete",
          "preferred_locale"
        ],
        "title": "AuthenticatedUserResponse",
        "type": "object"
      },
      "AuthenticationResponse": {
        "properties": {
          "authenticated": {
            "title": "Authenticated",
            "type": "boolean"
          },
          "identifier_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Identifier Required"
          },
          "mfa_challenge": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mfa Challenge"
          },
          "mfa_methods": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "totp",
                    "recovery_code"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mfa Methods"
          },
          "mfa_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mfa Required"
          },
          "needs_owner_setup": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Needs Owner Setup"
          },
          "needs_setup": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Needs Setup"
          },
          "user": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuthenticatedUserResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "authenticated"
        ],
        "title": "AuthenticationResponse",
        "type": "object"
      },
      "BarcodeLookupResponse": {
        "properties": {
          "found": {
            "title": "Found",
            "type": "boolean"
          },
          "local": {
            "title": "Local",
            "type": "boolean"
          },
          "product": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product"
          }
        },
        "required": [
          "found",
          "local"
        ],
        "title": "BarcodeLookupResponse",
        "type": "object"
      },
      "Body_analyze_api_v1_receipts_analyze_post": {
        "properties": {
          "image": {
            "contentMediaType": "application/octet-stream",
            "title": "Image",
            "type": "string"
          }
        },
        "required": [
          "image"
        ],
        "title": "Body_analyze_api_v1_receipts_analyze_post",
        "type": "object"
      },
      "Body_upload_catalog_product_image_api_v1_catalog_products__product_id__image_post": {
        "properties": {
          "image": {
            "contentMediaType": "application/octet-stream",
            "title": "Image",
            "type": "string"
          }
        },
        "required": [
          "image"
        ],
        "title": "Body_upload_catalog_product_image_api_v1_catalog_products__product_id__image_post",
        "type": "object"
      },
      "BudgetComparisonResponse": {
        "properties": {
          "change_amount": {
            "title": "Change Amount",
            "type": "number"
          },
          "change_percent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Change Percent"
          },
          "end_date": {
            "title": "End Date",
            "type": "string"
          },
          "receipt_count": {
            "title": "Receipt Count",
            "type": "integer"
          },
          "spent": {
            "title": "Spent",
            "type": "number"
          },
          "start_date": {
            "title": "Start Date",
            "type": "string"
          }
        },
        "required": [
          "start_date",
          "end_date",
          "spent",
          "receipt_count",
          "change_amount"
        ],
        "title": "BudgetComparisonResponse",
        "type": "object"
      },
      "BudgetCurrentPeriodResponse": {
        "properties": {
          "as_of_date": {
            "title": "As Of Date",
            "type": "string"
          },
          "average_receipt": {
            "title": "Average Receipt",
            "type": "number"
          },
          "daily_available": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Daily Available"
          },
          "days_elapsed": {
            "title": "Days Elapsed",
            "type": "integer"
          },
          "days_remaining": {
            "title": "Days Remaining",
            "type": "integer"
          },
          "days_total": {
            "title": "Days Total",
            "type": "integer"
          },
          "forecast": {
            "title": "Forecast",
            "type": "number"
          },
          "latest_purchase_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Purchase Date"
          },
          "month": {
            "title": "Month",
            "type": "string"
          },
          "percent_used": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percent Used"
          },
          "receipt_count": {
            "title": "Receipt Count",
            "type": "integer"
          },
          "remaining": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remaining"
          },
          "spent": {
            "title": "Spent",
            "type": "number"
          },
          "start_date": {
            "title": "Start Date",
            "type": "string"
          },
          "status": {
            "enum": [
              "unconfigured",
              "on_track",
              "watch",
              "over"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "month",
          "start_date",
          "as_of_date",
          "spent",
          "receipt_count",
          "average_receipt",
          "forecast",
          "days_elapsed",
          "days_total",
          "days_remaining",
          "status"
        ],
        "title": "BudgetCurrentPeriodResponse",
        "type": "object"
      },
      "BudgetDataQualityResponse": {
        "properties": {
          "confirmed_receipt_count": {
            "title": "Confirmed Receipt Count",
            "type": "integer"
          },
          "counted_receipt_count": {
            "title": "Counted Receipt Count",
            "type": "integer"
          },
          "coverage_percent": {
            "title": "Coverage Percent",
            "type": "number"
          },
          "missing_total_count": {
            "title": "Missing Total Count",
            "type": "integer"
          },
          "other_currency_receipt_count": {
            "title": "Other Currency Receipt Count",
            "type": "integer"
          },
          "pending_receipt_count": {
            "title": "Pending Receipt Count",
            "type": "integer"
          }
        },
        "required": [
          "confirmed_receipt_count",
          "counted_receipt_count",
          "pending_receipt_count",
          "missing_total_count",
          "other_currency_receipt_count",
          "coverage_percent"
        ],
        "title": "BudgetDataQualityResponse",
        "type": "object"
      },
      "BudgetMonthResponse": {
        "properties": {
          "is_current": {
            "title": "Is Current",
            "type": "boolean"
          },
          "month": {
            "title": "Month",
            "type": "string"
          },
          "receipt_count": {
            "title": "Receipt Count",
            "type": "integer"
          },
          "spent": {
            "title": "Spent",
            "type": "number"
          }
        },
        "required": [
          "month",
          "spent",
          "receipt_count",
          "is_current"
        ],
        "title": "BudgetMonthResponse",
        "type": "object"
      },
      "BudgetOverviewResponse": {
        "properties": {
          "comparison": {
            "$ref": "#/components/schemas/BudgetComparisonResponse"
          },
          "current_period": {
            "$ref": "#/components/schemas/BudgetCurrentPeriodResponse"
          },
          "data_quality": {
            "$ref": "#/components/schemas/BudgetDataQualityResponse"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "months": {
            "items": {
              "$ref": "#/components/schemas/BudgetMonthResponse"
            },
            "title": "Months",
            "type": "array"
          },
          "settings": {
            "$ref": "#/components/schemas/BudgetSettingsResponse"
          },
          "stores": {
            "items": {
              "$ref": "#/components/schemas/BudgetStoreResponse"
            },
            "title": "Stores",
            "type": "array"
          }
        },
        "required": [
          "settings",
          "current_period",
          "comparison",
          "months",
          "stores",
          "data_quality",
          "generated_at"
        ],
        "title": "BudgetOverviewResponse",
        "type": "object"
      },
      "BudgetSettingsInput": {
        "properties": {
          "monthly_limit": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monthly Limit"
          },
          "warning_percent": {
            "default": 80,
            "maximum": 100.0,
            "minimum": 50.0,
            "title": "Warning Percent",
            "type": "integer"
          }
        },
        "title": "BudgetSettingsInput",
        "type": "object"
      },
      "BudgetSettingsResponse": {
        "properties": {
          "configured": {
            "title": "Configured",
            "type": "boolean"
          },
          "currency": {
            "const": "EUR",
            "default": "EUR",
            "title": "Currency",
            "type": "string"
          },
          "monthly_limit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monthly Limit"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "warning_percent": {
            "title": "Warning Percent",
            "type": "integer"
          }
        },
        "required": [
          "configured",
          "warning_percent"
        ],
        "title": "BudgetSettingsResponse",
        "type": "object"
      },
      "BudgetStoreResponse": {
        "properties": {
          "receipt_count": {
            "title": "Receipt Count",
            "type": "integer"
          },
          "share_percent": {
            "title": "Share Percent",
            "type": "number"
          },
          "spent": {
            "title": "Spent",
            "type": "number"
          },
          "store_key": {
            "title": "Store Key",
            "type": "string"
          },
          "store_name": {
            "title": "Store Name",
            "type": "string"
          }
        },
        "required": [
          "store_key",
          "store_name",
          "spent",
          "receipt_count",
          "share_percent"
        ],
        "title": "BudgetStoreResponse",
        "type": "object"
      },
      "CatalogBarcodeCreateInput": {
        "properties": {
          "barcode": {
            "maxLength": 100,
            "minLength": 4,
            "title": "Barcode",
            "type": "string"
          }
        },
        "required": [
          "barcode"
        ],
        "title": "CatalogBarcodeCreateInput",
        "type": "object"
      },
      "CatalogBarcodeResponse": {
        "properties": {
          "barcode": {
            "title": "Barcode",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "is_primary": {
            "default": 1,
            "title": "Is Primary",
            "type": "integer"
          },
          "symbology": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Symbology"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "barcode",
          "created_at",
          "updated_at"
        ],
        "title": "CatalogBarcodeResponse",
        "type": "object"
      },
      "CatalogItemMappingInput": {
        "properties": {
          "product_id": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Id"
          },
          "remember": {
            "default": true,
            "title": "Remember",
            "type": "boolean"
          }
        },
        "title": "CatalogItemMappingInput",
        "type": "object"
      },
      "CatalogPriceHistoryItemResponse": {
        "properties": {
          "barcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Barcode"
          },
          "brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "catalog_variant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Variant Id"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "package_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Amount"
          },
          "package_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Unit"
          },
          "purchase_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Purchase Date"
          },
          "quantity": {
            "title": "Quantity",
            "type": "number"
          },
          "receipt_id": {
            "title": "Receipt Id",
            "type": "string"
          },
          "receipt_item_id": {
            "title": "Receipt Item Id",
            "type": "string"
          },
          "retailer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retailer"
          },
          "store_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Store Name"
          },
          "total_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total Price"
          },
          "unit_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Price"
          },
          "variant_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Name"
          }
        },
        "required": [
          "receipt_item_id",
          "receipt_id",
          "currency",
          "quantity"
        ],
        "title": "CatalogPriceHistoryItemResponse",
        "type": "object"
      },
      "CatalogProductCreateInput": {
        "properties": {
          "barcode": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Barcode"
          },
          "brand": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "default_best_before_days": {
            "default": 0,
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Default Best Before Days",
            "type": "integer"
          },
          "location_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Id"
          },
          "minimum_stock_quantity": {
            "default": 0,
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Minimum Stock Quantity",
            "type": "number"
          },
          "name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "new_location_is_freezer": {
            "default": false,
            "title": "New Location Is Freezer",
            "type": "boolean"
          },
          "new_location_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Location Name"
          },
          "new_product_group_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Product Group Name"
          },
          "new_quantity_unit_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Quantity Unit Name"
          },
          "product_group_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Id"
          },
          "quantity_unit_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Id"
          },
          "remember": {
            "default": true,
            "title": "Remember",
            "type": "boolean"
          },
          "shopping_target_quantity": {
            "default": 0,
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Shopping Target Quantity",
            "type": "number"
          }
        },
        "required": [
          "name"
        ],
        "title": "CatalogProductCreateInput",
        "type": "object"
      },
      "CatalogProductDetailResponse": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "integer"
          },
          "barcode_count": {
            "title": "Barcode Count",
            "type": "integer"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "default_best_before_days": {
            "title": "Default Best Before Days",
            "type": "integer"
          },
          "default_location_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Id"
          },
          "default_location_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Name"
          },
          "default_quantity_unit_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Quantity Unit Id"
          },
          "default_quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Quantity Unit Name"
          },
          "grocy_product_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grocy Product Id"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "minimum_stock_quantity": {
            "default": 0,
            "title": "Minimum Stock Quantity",
            "type": "number"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "normalized_name": {
            "title": "Normalized Name",
            "type": "string"
          },
          "notes": {
            "title": "Notes",
            "type": "string"
          },
          "product_group_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Id"
          },
          "product_group_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Name"
          },
          "shopping_target_quantity": {
            "default": 0,
            "title": "Shopping Target Quantity",
            "type": "number"
          },
          "stock_quantity": {
            "title": "Stock Quantity",
            "type": "number"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          },
          "variant_count": {
            "title": "Variant Count",
            "type": "integer"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/CatalogVariantResponse"
            },
            "title": "Variants",
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "normalized_name",
          "default_best_before_days",
          "variant_count",
          "barcode_count",
          "stock_quantity",
          "notes",
          "active",
          "created_at",
          "updated_at",
          "variants"
        ],
        "title": "CatalogProductDetailResponse",
        "type": "object"
      },
      "CatalogProductResponse": {
        "properties": {
          "barcode_count": {
            "title": "Barcode Count",
            "type": "integer"
          },
          "default_best_before_days": {
            "title": "Default Best Before Days",
            "type": "integer"
          },
          "default_location_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Id"
          },
          "default_location_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Name"
          },
          "default_quantity_unit_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Quantity Unit Id"
          },
          "default_quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Quantity Unit Name"
          },
          "grocy_product_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grocy Product Id"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "minimum_stock_quantity": {
            "default": 0,
            "title": "Minimum Stock Quantity",
            "type": "number"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "normalized_name": {
            "title": "Normalized Name",
            "type": "string"
          },
          "product_group_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Id"
          },
          "product_group_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Name"
          },
          "shopping_target_quantity": {
            "default": 0,
            "title": "Shopping Target Quantity",
            "type": "number"
          },
          "stock_quantity": {
            "title": "Stock Quantity",
            "type": "number"
          },
          "variant_count": {
            "title": "Variant Count",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "normalized_name",
          "default_best_before_days",
          "variant_count",
          "barcode_count",
          "stock_quantity"
        ],
        "title": "CatalogProductResponse",
        "type": "object"
      },
      "CatalogProductUpdateInput": {
        "properties": {
          "default_best_before_days": {
            "default": 0,
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Default Best Before Days",
            "type": "integer"
          },
          "default_location_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Id"
          },
          "default_quantity_unit_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Quantity Unit Id"
          },
          "expected_updated_at": {
            "maxLength": 80,
            "minLength": 10,
            "title": "Expected Updated At",
            "type": "string"
          },
          "image_url": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "minimum_stock_quantity": {
            "default": 0,
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Minimum Stock Quantity",
            "type": "number"
          },
          "name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "notes": {
            "default": "",
            "maxLength": 2000,
            "title": "Notes",
            "type": "string"
          },
          "product_group_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Id"
          },
          "shopping_target_quantity": {
            "default": 0,
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Shopping Target Quantity",
            "type": "number"
          }
        },
        "required": [
          "name",
          "expected_updated_at"
        ],
        "title": "CatalogProductUpdateInput",
        "type": "object"
      },
      "CatalogSummaryResponse": {
        "properties": {
          "barcodes": {
            "title": "Barcodes",
            "type": "integer"
          },
          "products": {
            "title": "Products",
            "type": "integer"
          },
          "stock_lots": {
            "title": "Stock Lots",
            "type": "integer"
          },
          "variants": {
            "title": "Variants",
            "type": "integer"
          }
        },
        "required": [
          "products",
          "variants",
          "barcodes",
          "stock_lots"
        ],
        "title": "CatalogSummaryResponse",
        "type": "object"
      },
      "CatalogVariantCreateInput": {
        "properties": {
          "brand": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "image_url": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "package_amount": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "maximum": 1000000.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Amount"
          },
          "package_unit": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Unit"
          }
        },
        "title": "CatalogVariantCreateInput",
        "type": "object"
      },
      "CatalogVariantResponse": {
        "properties": {
          "barcodes": {
            "items": {
              "$ref": "#/components/schemas/CatalogBarcodeResponse"
            },
            "title": "Barcodes",
            "type": "array"
          },
          "brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "package_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Amount"
          },
          "package_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Unit"
          },
          "product_id": {
            "title": "Product Id",
            "type": "string"
          },
          "receipt_count": {
            "default": 0,
            "title": "Receipt Count",
            "type": "integer"
          },
          "stock_lot_count": {
            "default": 0,
            "title": "Stock Lot Count",
            "type": "integer"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "product_id",
          "created_at",
          "updated_at",
          "barcodes"
        ],
        "title": "CatalogVariantResponse",
        "type": "object"
      },
      "CatalogVariantUpdateInput": {
        "properties": {
          "brand": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "expected_updated_at": {
            "maxLength": 80,
            "minLength": 10,
            "title": "Expected Updated At",
            "type": "string"
          },
          "image_url": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "package_amount": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "maximum": 1000000.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Amount"
          },
          "package_unit": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Unit"
          }
        },
        "required": [
          "expected_updated_at"
        ],
        "title": "CatalogVariantUpdateInput",
        "type": "object"
      },
      "ConnectionTestResponse": {
        "properties": {
          "connected": {
            "title": "Connected",
            "type": "boolean"
          },
          "info": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Info"
          }
        },
        "required": [
          "connected"
        ],
        "title": "ConnectionTestResponse",
        "type": "object"
      },
      "ErrorResponse": {
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "string"
          }
        },
        "required": [
          "detail"
        ],
        "title": "ErrorResponse",
        "type": "object"
      },
      "ExperienceStateResponse": {
        "properties": {
          "current_version": {
            "title": "Current Version",
            "type": "string"
          },
          "last_acknowledged_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Acknowledged Version"
          },
          "onboarding_completed": {
            "title": "Onboarding Completed",
            "type": "boolean"
          },
          "onboarding_required": {
            "title": "Onboarding Required",
            "type": "boolean"
          },
          "release": {
            "$ref": "#/components/schemas/ReleaseNoteResponse"
          },
          "release_notes_pending": {
            "title": "Release Notes Pending",
            "type": "boolean"
          }
        },
        "required": [
          "current_version",
          "onboarding_completed",
          "onboarding_required",
          "release_notes_pending",
          "release"
        ],
        "title": "ExperienceStateResponse",
        "type": "object"
      },
      "ExperienceUpdateInput": {
        "properties": {
          "acknowledge_current_version": {
            "default": false,
            "title": "Acknowledge Current Version",
            "type": "boolean"
          },
          "complete_onboarding": {
            "default": false,
            "title": "Complete Onboarding",
            "type": "boolean"
          }
        },
        "title": "ExperienceUpdateInput",
        "type": "object"
      },
      "ExportPreviewResponse": {
        "properties": {
          "counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Counts",
            "type": "object"
          },
          "excluded_secret_categories": {
            "items": {
              "type": "string"
            },
            "title": "Excluded Secret Categories",
            "type": "array"
          },
          "household_name": {
            "title": "Household Name",
            "type": "string"
          },
          "product_image_file_bytes": {
            "title": "Product Image File Bytes",
            "type": "integer"
          },
          "product_image_file_count": {
            "title": "Product Image File Count",
            "type": "integer"
          },
          "receipt_file_bytes": {
            "title": "Receipt File Bytes",
            "type": "integer"
          },
          "receipt_file_count": {
            "title": "Receipt File Count",
            "type": "integer"
          }
        },
        "required": [
          "household_name",
          "counts",
          "receipt_file_count",
          "receipt_file_bytes",
          "product_image_file_count",
          "product_image_file_bytes",
          "excluded_secret_categories"
        ],
        "title": "ExportPreviewResponse",
        "type": "object"
      },
      "GrocyCatalogImportResponse": {
        "properties": {
          "catalog": {
            "$ref": "#/components/schemas/CatalogSummaryResponse"
          },
          "imported": {
            "$ref": "#/components/schemas/GrocyImportCounts"
          }
        },
        "required": [
          "imported",
          "catalog"
        ],
        "title": "GrocyCatalogImportResponse",
        "type": "object"
      },
      "GrocyImportCounts": {
        "properties": {
          "locations": {
            "title": "Locations",
            "type": "integer"
          },
          "product_groups": {
            "title": "Product Groups",
            "type": "integer"
          },
          "products": {
            "title": "Products",
            "type": "integer"
          },
          "quantity_units": {
            "title": "Quantity Units",
            "type": "integer"
          }
        },
        "required": [
          "locations",
          "quantity_units",
          "product_groups",
          "products"
        ],
        "title": "GrocyImportCounts",
        "type": "object"
      },
      "GrocyProductCreateInput": {
        "properties": {
          "default_best_before_days": {
            "default": 0,
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Default Best Before Days",
            "type": "integer"
          },
          "location_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Id"
          },
          "name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "new_location_is_freezer": {
            "default": false,
            "title": "New Location Is Freezer",
            "type": "boolean"
          },
          "new_location_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Location Name"
          },
          "new_product_group_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Product Group Name"
          },
          "new_quantity_unit_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Quantity Unit Name"
          },
          "product_group_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Id"
          },
          "quantity_unit_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Id"
          },
          "remember": {
            "default": true,
            "title": "Remember",
            "type": "boolean"
          }
        },
        "required": [
          "name"
        ],
        "title": "GrocyProductCreateInput",
        "type": "object"
      },
      "GrocyProductResponse": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "GrocyProductResponse",
        "type": "object"
      },
      "GrocySettingsInput": {
        "properties": {
          "api_key": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Api Key"
          },
          "enabled": {
            "default": false,
            "title": "Enabled",
            "type": "boolean"
          },
          "url": {
            "default": "http://grocy:80",
            "maxLength": 500,
            "minLength": 4,
            "title": "Url",
            "type": "string"
          }
        },
        "title": "GrocySettingsInput",
        "type": "object"
      },
      "GrocyStockPreviewItemResponse": {
        "properties": {
          "best_before_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Best Before Date"
          },
          "current_quantity": {
            "title": "Current Quantity",
            "type": "number"
          },
          "default_location_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Id"
          },
          "default_location_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Name"
          },
          "grocy_product_id": {
            "title": "Grocy Product Id",
            "type": "integer"
          },
          "product_id": {
            "title": "Product Id",
            "type": "string"
          },
          "product_name": {
            "title": "Product Name",
            "type": "string"
          },
          "proposed_quantity": {
            "title": "Proposed Quantity",
            "type": "number"
          },
          "quantity_delta": {
            "title": "Quantity Delta",
            "type": "number"
          },
          "quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Name"
          }
        },
        "required": [
          "product_id",
          "product_name",
          "grocy_product_id",
          "current_quantity",
          "proposed_quantity",
          "quantity_delta"
        ],
        "title": "GrocyStockPreviewItemResponse",
        "type": "object"
      },
      "GrocyStockPreviewResponse": {
        "properties": {
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/GrocyStockPreviewItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "unmapped": {
            "items": {
              "$ref": "#/components/schemas/GrocyUnmappedStockResponse"
            },
            "title": "Unmapped",
            "type": "array"
          }
        },
        "required": [
          "items",
          "unmapped",
          "generated_at"
        ],
        "title": "GrocyStockPreviewResponse",
        "type": "object"
      },
      "GrocyUnmappedStockResponse": {
        "properties": {
          "grocy_product_id": {
            "title": "Grocy Product Id",
            "type": "integer"
          },
          "product_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Name"
          },
          "quantity": {
            "title": "Quantity",
            "type": "number"
          }
        },
        "required": [
          "grocy_product_id",
          "quantity"
        ],
        "title": "GrocyUnmappedStockResponse",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "HealthResponse": {
        "properties": {
          "status": {
            "const": "ok",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "HealthResponse",
        "type": "object"
      },
      "HouseholdEraseInput": {
        "properties": {
          "confirmation": {
            "const": "HAUSHALT ENDGÜLTIG LÖSCHEN",
            "title": "Confirmation",
            "type": "string"
          }
        },
        "required": [
          "confirmation"
        ],
        "title": "HouseholdEraseInput",
        "type": "object"
      },
      "HouseholdEraseResponse": {
        "properties": {
          "completed_at": {
            "title": "Completed At",
            "type": "string"
          },
          "deleted": {
            "title": "Deleted",
            "type": "boolean"
          },
          "deleted_product_image_bytes": {
            "title": "Deleted Product Image Bytes",
            "type": "integer"
          },
          "deleted_product_image_files": {
            "title": "Deleted Product Image Files",
            "type": "integer"
          },
          "deleted_receipt_bytes": {
            "title": "Deleted Receipt Bytes",
            "type": "integer"
          },
          "deleted_receipt_files": {
            "title": "Deleted Receipt Files",
            "type": "integer"
          }
        },
        "required": [
          "deleted",
          "deleted_receipt_files",
          "deleted_receipt_bytes",
          "deleted_product_image_files",
          "deleted_product_image_bytes",
          "completed_at"
        ],
        "title": "HouseholdEraseResponse",
        "type": "object"
      },
      "HouseholdInvitationAcceptInput": {
        "properties": {
          "password": {
            "maxLength": 512,
            "minLength": 10,
            "title": "Password",
            "type": "string"
          },
          "preferred_locale": {
            "default": "de",
            "enum": [
              "de",
              "en"
            ],
            "title": "Preferred Locale",
            "type": "string"
          }
        },
        "required": [
          "password"
        ],
        "title": "HouseholdInvitationAcceptInput",
        "type": "object"
      },
      "HouseholdInvitationCreateInput": {
        "properties": {
          "display_name": {
            "maxLength": 100,
            "minLength": 2,
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "maxLength": 320,
            "minLength": 5,
            "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
            "title": "Email",
            "type": "string"
          },
          "expires_hours": {
            "default": 72,
            "maximum": 168.0,
            "minimum": 1.0,
            "title": "Expires Hours",
            "type": "integer"
          },
          "role": {
            "default": "member",
            "enum": [
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "display_name",
          "email"
        ],
        "title": "HouseholdInvitationCreateInput",
        "type": "object"
      },
      "HouseholdInvitationPublicResponse": {
        "properties": {
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "expires_at": {
            "title": "Expires At",
            "type": "string"
          },
          "household_name": {
            "title": "Household Name",
            "type": "string"
          },
          "role": {
            "enum": [
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role",
            "type": "string"
          },
          "valid": {
            "title": "Valid",
            "type": "boolean"
          }
        },
        "required": [
          "valid",
          "household_name",
          "display_name",
          "email",
          "role",
          "expires_at"
        ],
        "title": "HouseholdInvitationPublicResponse",
        "type": "object"
      },
      "HouseholdInvitationResponse": {
        "properties": {
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "expires_at": {
            "title": "Expires At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "invite_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invite Token"
          },
          "role": {
            "enum": [
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "id",
          "display_name",
          "email",
          "role",
          "expires_at",
          "created_at"
        ],
        "title": "HouseholdInvitationResponse",
        "type": "object"
      },
      "HouseholdMemberResponse": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "active_session_count": {
            "title": "Active Session Count",
            "type": "integer"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "role": {
            "enum": [
              "owner",
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role",
            "type": "string"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "display_name",
          "role",
          "active",
          "active_session_count",
          "created_at",
          "updated_at"
        ],
        "title": "HouseholdMemberResponse",
        "type": "object"
      },
      "HouseholdMemberUpdateInput": {
        "properties": {
          "active": {
            "default": true,
            "title": "Active",
            "type": "boolean"
          },
          "role": {
            "enum": [
              "admin",
              "member",
              "viewer"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "role"
        ],
        "title": "HouseholdMemberUpdateInput",
        "type": "object"
      },
      "ImportRequest": {
        "properties": {
          "item_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Ids"
          }
        },
        "title": "ImportRequest",
        "type": "object"
      },
      "LoginRequest": {
        "properties": {
          "identifier": {
            "anyOf": [
              {
                "maxLength": 320,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Identifier"
          },
          "password": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "password"
        ],
        "title": "LoginRequest",
        "type": "object"
      },
      "MasterDataCreateInput": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 500,
            "title": "Description",
            "type": "string"
          },
          "is_freezer": {
            "default": false,
            "title": "Is Freezer",
            "type": "boolean"
          },
          "name": {
            "maxLength": 150,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "name_plural": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name Plural"
          }
        },
        "required": [
          "name"
        ],
        "title": "MasterDataCreateInput",
        "type": "object"
      },
      "MasterDataItemResponse": {
        "properties": {
          "active": {
            "default": 1,
            "title": "Active",
            "type": "integer"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "grocy_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grocy Id"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "is_freezer": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Freezer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "name_plural": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name Plural"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "usage_count": {
            "default": 0,
            "title": "Usage Count",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "MasterDataItemResponse",
        "type": "object"
      },
      "MasterDataResponse": {
        "properties": {
          "locations": {
            "items": {
              "$ref": "#/components/schemas/MasterDataItemResponse"
            },
            "title": "Locations",
            "type": "array"
          },
          "product_groups": {
            "items": {
              "$ref": "#/components/schemas/MasterDataItemResponse"
            },
            "title": "Product Groups",
            "type": "array"
          },
          "quantity_units": {
            "items": {
              "$ref": "#/components/schemas/MasterDataItemResponse"
            },
            "title": "Quantity Units",
            "type": "array"
          }
        },
        "required": [
          "locations",
          "quantity_units",
          "product_groups"
        ],
        "title": "MasterDataResponse",
        "type": "object"
      },
      "MasterDataUpdateInput": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 500,
            "title": "Description",
            "type": "string"
          },
          "expected_updated_at": {
            "maxLength": 80,
            "minLength": 10,
            "title": "Expected Updated At",
            "type": "string"
          },
          "is_freezer": {
            "default": false,
            "title": "Is Freezer",
            "type": "boolean"
          },
          "name": {
            "maxLength": 150,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "name_plural": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name Plural"
          }
        },
        "required": [
          "name",
          "expected_updated_at"
        ],
        "title": "MasterDataUpdateInput",
        "type": "object"
      },
      "MatchEvidenceResponse": {
        "properties": {
          "automatic": {
            "title": "Automatic",
            "type": "boolean"
          },
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "source",
          "label",
          "confidence",
          "automatic"
        ],
        "title": "MatchEvidenceResponse",
        "type": "object"
      },
      "MfaVerifyInput": {
        "properties": {
          "challenge": {
            "maxLength": 500,
            "minLength": 20,
            "title": "Challenge",
            "type": "string"
          },
          "code": {
            "maxLength": 64,
            "minLength": 6,
            "title": "Code",
            "type": "string"
          }
        },
        "required": [
          "challenge",
          "code"
        ],
        "title": "MfaVerifyInput",
        "type": "object"
      },
      "NotificationDeliveryResponse": {
        "properties": {
          "delivered": {
            "title": "Delivered",
            "type": "integer"
          },
          "failed": {
            "title": "Failed",
            "type": "integer"
          }
        },
        "required": [
          "delivered",
          "failed"
        ],
        "title": "NotificationDeliveryResponse",
        "type": "object"
      },
      "NotificationPreferencesInput": {
        "properties": {
          "expiry_days_before": {
            "default": 7,
            "maximum": 90.0,
            "minimum": 0.0,
            "title": "Expiry Days Before",
            "type": "integer"
          },
          "expiry_enabled": {
            "default": true,
            "title": "Expiry Enabled",
            "type": "boolean"
          },
          "low_stock_enabled": {
            "default": true,
            "title": "Low Stock Enabled",
            "type": "boolean"
          },
          "push_enabled": {
            "default": false,
            "title": "Push Enabled",
            "type": "boolean"
          }
        },
        "title": "NotificationPreferencesInput",
        "type": "object"
      },
      "NotificationPreferencesResponse": {
        "properties": {
          "expiry_days_before": {
            "default": 7,
            "maximum": 90.0,
            "minimum": 0.0,
            "title": "Expiry Days Before",
            "type": "integer"
          },
          "expiry_enabled": {
            "default": true,
            "title": "Expiry Enabled",
            "type": "boolean"
          },
          "low_stock_enabled": {
            "default": true,
            "title": "Low Stock Enabled",
            "type": "boolean"
          },
          "push_enabled": {
            "default": false,
            "title": "Push Enabled",
            "type": "boolean"
          }
        },
        "title": "NotificationPreferencesResponse",
        "type": "object"
      },
      "NotificationStateResponse": {
        "properties": {
          "active_expiry_events": {
            "default": 0,
            "title": "Active Expiry Events",
            "type": "integer"
          },
          "active_low_stock_events": {
            "default": 0,
            "title": "Active Low Stock Events",
            "type": "integer"
          },
          "last_checked_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Checked At"
          },
          "preferences": {
            "$ref": "#/components/schemas/NotificationPreferencesResponse"
          },
          "public_key": {
            "title": "Public Key",
            "type": "string"
          },
          "secure_context_required": {
            "default": true,
            "title": "Secure Context Required",
            "type": "boolean"
          },
          "subscriptions": {
            "items": {
              "$ref": "#/components/schemas/PushSubscriptionResponse"
            },
            "title": "Subscriptions",
            "type": "array"
          }
        },
        "required": [
          "public_key",
          "preferences",
          "subscriptions"
        ],
        "title": "NotificationStateResponse",
        "type": "object"
      },
      "NotificationTestInput": {
        "properties": {
          "subscription_id": {
            "maxLength": 100,
            "minLength": 20,
            "title": "Subscription Id",
            "type": "string"
          }
        },
        "required": [
          "subscription_id"
        ],
        "title": "NotificationTestInput",
        "type": "object"
      },
      "OperationsAuditEventResponse": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "actor_label": {
            "title": "Actor Label",
            "type": "string"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "outcome": {
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": [
          "id",
          "category",
          "action",
          "outcome",
          "created_at",
          "actor_label"
        ],
        "title": "OperationsAuditEventResponse",
        "type": "object"
      },
      "OperationsCountResponse": {
        "properties": {
          "active_api_tokens": {
            "title": "Active Api Tokens",
            "type": "integer"
          },
          "active_push_devices": {
            "title": "Active Push Devices",
            "type": "integer"
          },
          "active_sessions": {
            "title": "Active Sessions",
            "type": "integer"
          },
          "active_users": {
            "title": "Active Users",
            "type": "integer"
          },
          "failures_24h": {
            "title": "Failures 24H",
            "type": "integer"
          },
          "pending_receipts": {
            "title": "Pending Receipts",
            "type": "integer"
          },
          "products": {
            "title": "Products",
            "type": "integer"
          },
          "stock_lots": {
            "title": "Stock Lots",
            "type": "integer"
          }
        },
        "required": [
          "active_users",
          "active_sessions",
          "active_api_tokens",
          "active_push_devices",
          "pending_receipts",
          "products",
          "stock_lots",
          "failures_24h"
        ],
        "title": "OperationsCountResponse",
        "type": "object"
      },
      "OperationsOverviewResponse": {
        "properties": {
          "counts": {
            "$ref": "#/components/schemas/OperationsCountResponse"
          },
          "database_bytes": {
            "title": "Database Bytes",
            "type": "integer"
          },
          "database_integrity": {
            "title": "Database Integrity",
            "type": "string"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "recent_events": {
            "items": {
              "$ref": "#/components/schemas/OperationsAuditEventResponse"
            },
            "title": "Recent Events",
            "type": "array"
          },
          "retention": {
            "$ref": "#/components/schemas/RetentionPreviewResponse"
          }
        },
        "required": [
          "database_integrity",
          "database_bytes",
          "counts",
          "retention",
          "recent_events",
          "generated_at"
        ],
        "title": "OperationsOverviewResponse",
        "type": "object"
      },
      "OwnerProfileUpdateInput": {
        "properties": {
          "display_name": {
            "maxLength": 100,
            "minLength": 2,
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "anyOf": [
              {
                "maxLength": 320,
                "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          }
        },
        "required": [
          "display_name"
        ],
        "title": "OwnerProfileUpdateInput",
        "type": "object"
      },
      "PasskeyResponse": {
        "properties": {
          "backed_up": {
            "title": "Backed Up",
            "type": "boolean"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "device_type": {
            "title": "Device Type",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "transports": {
            "items": {
              "type": "string"
            },
            "title": "Transports",
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "device_type",
          "backed_up",
          "transports",
          "created_at"
        ],
        "title": "PasskeyResponse",
        "type": "object"
      },
      "PasswordChangeInput": {
        "properties": {
          "password": {
            "maxLength": 512,
            "minLength": 10,
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "password"
        ],
        "title": "PasswordChangeInput",
        "type": "object"
      },
      "PriceInsightsResponse": {
        "properties": {
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "observation_count": {
            "title": "Observation Count",
            "type": "integer"
          },
          "product_count": {
            "title": "Product Count",
            "type": "integer"
          },
          "products": {
            "items": {
              "$ref": "#/components/schemas/PriceProductSummaryResponse"
            },
            "title": "Products",
            "type": "array"
          },
          "store_count": {
            "title": "Store Count",
            "type": "integer"
          }
        },
        "required": [
          "products",
          "product_count",
          "store_count",
          "observation_count",
          "generated_at"
        ],
        "title": "PriceInsightsResponse",
        "type": "object"
      },
      "PriceProductSummaryResponse": {
        "properties": {
          "change_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Change Amount"
          },
          "change_percent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Change Percent"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "highest_price": {
            "title": "Highest Price",
            "type": "number"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "latest_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Date"
          },
          "latest_price": {
            "title": "Latest Price",
            "type": "number"
          },
          "latest_store": {
            "title": "Latest Store",
            "type": "string"
          },
          "lowest_price": {
            "title": "Lowest Price",
            "type": "number"
          },
          "observation_count": {
            "title": "Observation Count",
            "type": "integer"
          },
          "previous_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Price"
          },
          "product_id": {
            "title": "Product Id",
            "type": "string"
          },
          "product_name": {
            "title": "Product Name",
            "type": "string"
          },
          "quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Name"
          },
          "store_count": {
            "title": "Store Count",
            "type": "integer"
          },
          "stores": {
            "items": {
              "$ref": "#/components/schemas/PriceStoreSummaryResponse"
            },
            "title": "Stores",
            "type": "array"
          }
        },
        "required": [
          "product_id",
          "product_name",
          "currency",
          "observation_count",
          "store_count",
          "latest_price",
          "latest_store",
          "lowest_price",
          "highest_price",
          "stores"
        ],
        "title": "PriceProductSummaryResponse",
        "type": "object"
      },
      "PriceStoreSummaryResponse": {
        "properties": {
          "average_price": {
            "title": "Average Price",
            "type": "number"
          },
          "latest_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Date"
          },
          "latest_price": {
            "title": "Latest Price",
            "type": "number"
          },
          "lowest_price": {
            "title": "Lowest Price",
            "type": "number"
          },
          "observation_count": {
            "title": "Observation Count",
            "type": "integer"
          },
          "store_key": {
            "title": "Store Key",
            "type": "string"
          },
          "store_name": {
            "title": "Store Name",
            "type": "string"
          }
        },
        "required": [
          "store_key",
          "store_name",
          "latest_price",
          "lowest_price",
          "average_price",
          "observation_count"
        ],
        "title": "PriceStoreSummaryResponse",
        "type": "object"
      },
      "PrivacySettingsInput": {
        "properties": {
          "delete_image_after_analysis": {
            "default": false,
            "title": "Delete Image After Analysis",
            "type": "boolean"
          },
          "retention_days": {
            "default": 7,
            "maximum": 365.0,
            "minimum": 0.0,
            "title": "Retention Days",
            "type": "integer"
          }
        },
        "title": "PrivacySettingsInput",
        "type": "object"
      },
      "ProductCandidateConfirmInput": {
        "properties": {
          "default_best_before_days": {
            "default": 0,
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Default Best Before Days",
            "type": "integer"
          },
          "external_id": {
            "maxLength": 100,
            "minLength": 4,
            "title": "External Id",
            "type": "string"
          },
          "location_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Id"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "new_location_is_freezer": {
            "default": false,
            "title": "New Location Is Freezer",
            "type": "boolean"
          },
          "new_location_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Location Name"
          },
          "new_product_group_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Product Group Name"
          },
          "new_quantity_unit_name": {
            "anyOf": [
              {
                "maxLength": 150,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Quantity Unit Name"
          },
          "product_group_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Id"
          },
          "product_id": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Id"
          },
          "quantity_unit_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Id"
          },
          "remember": {
            "default": true,
            "title": "Remember",
            "type": "boolean"
          },
          "source": {
            "const": "open_facts",
            "default": "open_facts",
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "external_id"
        ],
        "title": "ProductCandidateConfirmInput",
        "type": "object"
      },
      "ProductCandidateEvidenceResponse": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "source",
          "label"
        ],
        "title": "ProductCandidateEvidenceResponse",
        "type": "object"
      },
      "ProductCandidateResponse": {
        "properties": {
          "ai_confidence": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Confidence"
          },
          "ai_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Reason"
          },
          "attribution": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attribution"
          },
          "barcode": {
            "title": "Barcode",
            "type": "string"
          },
          "brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "database_license": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Database License"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ProductCandidateEvidenceResponse"
            },
            "title": "Evidence",
            "type": "array"
          },
          "external_id": {
            "title": "External Id",
            "type": "string"
          },
          "image_license": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image License"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "local_product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Local Product Id"
          },
          "local_product_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Local Product Name"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity"
          },
          "score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "source": {
            "const": "open_facts",
            "title": "Source",
            "type": "string"
          },
          "source_label": {
            "title": "Source Label",
            "type": "string"
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Url"
          },
          "store_match": {
            "title": "Store Match",
            "type": "boolean"
          },
          "stores": {
            "items": {
              "type": "string"
            },
            "title": "Stores",
            "type": "array"
          }
        },
        "required": [
          "external_id",
          "barcode",
          "name",
          "source",
          "source_label",
          "score",
          "store_match"
        ],
        "title": "ProductCandidateResponse",
        "type": "object"
      },
      "ProductCandidateSearchResponse": {
        "properties": {
          "ai_ranked": {
            "title": "Ai Ranked",
            "type": "boolean"
          },
          "cached": {
            "title": "Cached",
            "type": "boolean"
          },
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/ProductCandidateResponse"
            },
            "title": "Candidates",
            "type": "array"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "receipt_unit_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receipt Unit Price"
          },
          "source": {
            "const": "open_facts",
            "title": "Source",
            "type": "string"
          },
          "store_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Store Name"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "query",
          "currency",
          "source",
          "cached",
          "ai_ranked"
        ],
        "title": "ProductCandidateSearchResponse",
        "type": "object"
      },
      "ProviderSettingsInput": {
        "properties": {
          "api_key": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Api Key"
          },
          "base_url": {
            "default": "https://api.cortecs.ai/v1",
            "maxLength": 500,
            "minLength": 4,
            "title": "Base Url",
            "type": "string"
          },
          "model": {
            "default": "",
            "maxLength": 300,
            "title": "Model",
            "type": "string"
          },
          "type": {
            "default": "cortecs",
            "enum": [
              "cortecs",
              "openai",
              "openrouter",
              "ollama",
              "openai-compatible",
              "anthropic"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "title": "ProviderSettingsInput",
        "type": "object"
      },
      "PublicGrocySettings": {
        "properties": {
          "api_key_configured": {
            "title": "Api Key Configured",
            "type": "boolean"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "enabled",
          "url",
          "api_key_configured"
        ],
        "title": "PublicGrocySettings",
        "type": "object"
      },
      "PublicPrivacySettings": {
        "properties": {
          "delete_image_after_analysis": {
            "title": "Delete Image After Analysis",
            "type": "boolean"
          },
          "retention_days": {
            "title": "Retention Days",
            "type": "integer"
          }
        },
        "required": [
          "delete_image_after_analysis",
          "retention_days"
        ],
        "title": "PublicPrivacySettings",
        "type": "object"
      },
      "PublicProviderSettings": {
        "properties": {
          "api_key_configured": {
            "title": "Api Key Configured",
            "type": "boolean"
          },
          "base_url": {
            "title": "Base Url",
            "type": "string"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "type": {
            "enum": [
              "cortecs",
              "openai",
              "openrouter",
              "ollama",
              "openai-compatible",
              "anthropic"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type",
          "base_url",
          "model",
          "api_key_configured"
        ],
        "title": "PublicProviderSettings",
        "type": "object"
      },
      "PublicSettingsResponse": {
        "properties": {
          "grocy": {
            "$ref": "#/components/schemas/PublicGrocySettings"
          },
          "privacy": {
            "$ref": "#/components/schemas/PublicPrivacySettings"
          },
          "provider": {
            "$ref": "#/components/schemas/PublicProviderSettings"
          }
        },
        "required": [
          "grocy",
          "provider",
          "privacy"
        ],
        "title": "PublicSettingsResponse",
        "type": "object"
      },
      "PushSubscriptionCreateInput": {
        "properties": {
          "device_name": {
            "default": "Vorrio-Gerät",
            "maxLength": 100,
            "minLength": 1,
            "title": "Device Name",
            "type": "string"
          },
          "endpoint": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Endpoint",
            "type": "string"
          },
          "keys": {
            "$ref": "#/components/schemas/PushSubscriptionKeysInput"
          }
        },
        "required": [
          "endpoint",
          "keys"
        ],
        "title": "PushSubscriptionCreateInput",
        "type": "object"
      },
      "PushSubscriptionKeysInput": {
        "properties": {
          "auth": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Auth",
            "type": "string"
          },
          "p256dh": {
            "maxLength": 500,
            "minLength": 20,
            "title": "P256Dh",
            "type": "string"
          }
        },
        "required": [
          "p256dh",
          "auth"
        ],
        "title": "PushSubscriptionKeysInput",
        "type": "object"
      },
      "PushSubscriptionResponse": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "device_name": {
            "title": "Device Name",
            "type": "string"
          },
          "endpoint_fingerprint": {
            "title": "Endpoint Fingerprint",
            "type": "string"
          },
          "failure_count": {
            "title": "Failure Count",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_failure_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Failure At"
          },
          "last_success_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Success At"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "endpoint_fingerprint",
          "device_name",
          "active",
          "failure_count",
          "created_at",
          "updated_at"
        ],
        "title": "PushSubscriptionResponse",
        "type": "object"
      },
      "ReadinessCheckResponse": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "title": "ReadinessCheckResponse",
        "type": "object"
      },
      "ReadinessResponse": {
        "properties": {
          "checks": {
            "items": {
              "$ref": "#/components/schemas/ReadinessCheckResponse"
            },
            "title": "Checks",
            "type": "array"
          },
          "profile": {
            "enum": [
              "lan",
              "private_https",
              "public_https"
            ],
            "title": "Profile",
            "type": "string"
          },
          "status": {
            "enum": [
              "ready",
              "degraded",
              "blocked"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status",
          "profile",
          "checks"
        ],
        "title": "ReadinessResponse",
        "type": "object"
      },
      "ReauthenticateInput": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "password": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Password",
            "type": "string"
          }
        },
        "required": [
          "password"
        ],
        "title": "ReauthenticateInput",
        "type": "object"
      },
      "ReceiptImportResponse": {
        "properties": {
          "details": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Details",
            "type": "array"
          },
          "failed": {
            "title": "Failed",
            "type": "integer"
          },
          "grocy_exported": {
            "title": "Grocy Exported",
            "type": "integer"
          },
          "grocy_failed": {
            "title": "Grocy Failed",
            "type": "integer"
          },
          "imported": {
            "title": "Imported",
            "type": "integer"
          },
          "receipt": {
            "$ref": "#/components/schemas/ReceiptResponse"
          },
          "requested": {
            "title": "Requested",
            "type": "integer"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "requested",
          "imported",
          "failed",
          "grocy_exported",
          "grocy_failed",
          "details",
          "receipt"
        ],
        "title": "ReceiptImportResponse",
        "type": "object"
      },
      "ReceiptItemResponse": {
        "properties": {
          "barcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Barcode"
          },
          "best_before_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Best Before Date"
          },
          "brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "catalog_product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Product Id"
          },
          "catalog_product_image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Product Image Url"
          },
          "catalog_product_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Product Name"
          },
          "catalog_variant_brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Variant Brand"
          },
          "catalog_variant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Variant Id"
          },
          "catalog_variant_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Variant Name"
          },
          "catalog_variant_package_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Variant Package Amount"
          },
          "catalog_variant_package_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalog Variant Package Unit"
          },
          "grocy_exported": {
            "default": 0,
            "title": "Grocy Exported",
            "type": "integer"
          },
          "grocy_product_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grocy Product Id"
          },
          "grocy_product_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grocy Product Name"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "import_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Error"
          },
          "imported": {
            "title": "Imported",
            "type": "integer"
          },
          "match_evidence": {
            "items": {
              "$ref": "#/components/schemas/MatchEvidenceResponse"
            },
            "title": "Match Evidence",
            "type": "array"
          },
          "match_reason": {
            "title": "Match Reason",
            "type": "string"
          },
          "match_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Match Score"
          },
          "match_status": {
            "title": "Match Status",
            "type": "string"
          },
          "normalized_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalized Name"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "quantity": {
            "title": "Quantity",
            "type": "number"
          },
          "raw_name": {
            "title": "Raw Name",
            "type": "string"
          },
          "receipt_id": {
            "title": "Receipt Id",
            "type": "string"
          },
          "suggested_best_before_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Best Before Days"
          },
          "suggested_catalog_product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Catalog Product Id"
          },
          "suggested_catalog_product_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Catalog Product Name"
          },
          "suggested_catalog_product_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Catalog Product Score"
          },
          "suggested_location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Location"
          },
          "suggested_product_group": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Product Group"
          },
          "suggested_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Unit"
          },
          "suggestion_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggestion Confidence"
          },
          "total_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total Price"
          },
          "unit_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Price"
          }
        },
        "required": [
          "id",
          "receipt_id",
          "position",
          "raw_name",
          "quantity",
          "match_status",
          "match_reason",
          "imported"
        ],
        "title": "ReceiptItemResponse",
        "type": "object"
      },
      "ReceiptResponse": {
        "properties": {
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "duplicate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duplicate"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "imported_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Imported Count"
          },
          "item_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Count"
          },
          "items": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/ReceiptItemResponse"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Items"
          },
          "purchase_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Purchase Date"
          },
          "ready_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready Count"
          },
          "retailer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retailer"
          },
          "review_count": {
            "title": "Review Count",
            "type": "integer"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "store_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Store Address"
          },
          "store_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Store Name"
          },
          "store_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Store Number"
          },
          "total": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "currency",
          "status",
          "review_count",
          "created_at",
          "updated_at"
        ],
        "title": "ReceiptResponse",
        "type": "object"
      },
      "ReconcileResponse": {
        "properties": {
          "resolved": {
            "title": "Resolved",
            "type": "integer"
          },
          "scanned": {
            "title": "Scanned",
            "type": "integer"
          },
          "suggested": {
            "title": "Suggested",
            "type": "integer"
          }
        },
        "required": [
          "scanned",
          "resolved",
          "suggested"
        ],
        "title": "ReconcileResponse",
        "type": "object"
      },
      "RecoveryCodesResponse": {
        "properties": {
          "codes": {
            "items": {
              "type": "string"
            },
            "title": "Codes",
            "type": "array"
          },
          "remaining": {
            "title": "Remaining",
            "type": "integer"
          }
        },
        "required": [
          "codes",
          "remaining"
        ],
        "title": "RecoveryCodesResponse",
        "type": "object"
      },
      "RecoveryLoginInput": {
        "properties": {
          "code": {
            "maxLength": 64,
            "minLength": 10,
            "title": "Code",
            "type": "string"
          },
          "identifier": {
            "maxLength": 320,
            "minLength": 2,
            "title": "Identifier",
            "type": "string"
          }
        },
        "required": [
          "identifier",
          "code"
        ],
        "title": "RecoveryLoginInput",
        "type": "object"
      },
      "ReleaseNoteResponse": {
        "properties": {
          "highlights": {
            "items": {
              "type": "string"
            },
            "title": "Highlights",
            "type": "array"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "version",
          "title",
          "summary",
          "highlights"
        ],
        "title": "ReleaseNoteResponse",
        "type": "object"
      },
      "RetentionPreviewResponse": {
        "properties": {
          "cutoff": {
            "title": "Cutoff",
            "type": "string"
          },
          "delete_after_analysis": {
            "title": "Delete After Analysis",
            "type": "boolean"
          },
          "expired_bytes": {
            "title": "Expired Bytes",
            "type": "integer"
          },
          "expired_file_count": {
            "title": "Expired File Count",
            "type": "integer"
          },
          "retained_bytes": {
            "title": "Retained Bytes",
            "type": "integer"
          },
          "retained_file_count": {
            "title": "Retained File Count",
            "type": "integer"
          },
          "retention_days": {
            "title": "Retention Days",
            "type": "integer"
          }
        },
        "required": [
          "delete_after_analysis",
          "retention_days",
          "retained_file_count",
          "retained_bytes",
          "expired_file_count",
          "expired_bytes",
          "cutoff"
        ],
        "title": "RetentionPreviewResponse",
        "type": "object"
      },
      "RetentionRunResponse": {
        "properties": {
          "cleared_receipt_count": {
            "title": "Cleared Receipt Count",
            "type": "integer"
          },
          "completed_at": {
            "title": "Completed At",
            "type": "string"
          },
          "deleted_bytes": {
            "title": "Deleted Bytes",
            "type": "integer"
          },
          "deleted_file_count": {
            "title": "Deleted File Count",
            "type": "integer"
          },
          "rejected_path_count": {
            "title": "Rejected Path Count",
            "type": "integer"
          }
        },
        "required": [
          "deleted_file_count",
          "deleted_bytes",
          "cleared_receipt_count",
          "rejected_path_count",
          "completed_at"
        ],
        "title": "RetentionRunResponse",
        "type": "object"
      },
      "ScanConfirmInput": {
        "properties": {
          "best_before_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Best Before Date"
          },
          "brand": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "client_mutation_id": {
            "description": "Idempotency key generated once for the confirmation action.",
            "examples": [
              "confirm_018f3f1c8c1a"
            ],
            "maxLength": 100,
            "minLength": 8,
            "title": "Client Mutation Id",
            "type": "string"
          },
          "default_best_before_days": {
            "default": 0,
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Default Best Before Days",
            "type": "integer"
          },
          "image_url": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "location_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Id"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Product name used only when a local product must be created.",
            "title": "Name"
          },
          "package_amount": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "maximum": 100000.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Amount"
          },
          "package_unit": {
            "anyOf": [
              {
                "maxLength": 50,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Unit"
          },
          "product_group_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Group Id"
          },
          "product_id": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Existing local product to map before confirming.",
            "title": "Product Id"
          },
          "quantity": {
            "default": 1,
            "exclusiveMinimum": 0.0,
            "maximum": 10000.0,
            "title": "Quantity",
            "type": "number"
          },
          "quantity_unit_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Id"
          },
          "unit_price": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Price"
          },
          "variant_name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Name"
          }
        },
        "required": [
          "client_mutation_id"
        ],
        "title": "ScanConfirmInput",
        "type": "object"
      },
      "ScanResolveInput": {
        "properties": {
          "barcode": {
            "description": "EAN, UPC or GTIN as decoded by the camera or scanner. Repeated-digit placeholder GTINs are rejected even when their checksum is valid.",
            "examples": [
              "4000000000016"
            ],
            "maxLength": 100,
            "minLength": 4,
            "title": "Barcode",
            "type": "string"
          },
          "client_mutation_id": {
            "anyOf": [
              {
                "maxLength": 100,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional idempotency key generated once per resolve attempt.",
            "examples": [
              "scan_018f3f1c8c1a"
            ],
            "title": "Client Mutation Id"
          },
          "mode": {
            "default": "identify",
            "enum": [
              "identify",
              "add",
              "consume",
              "open",
              "shopping"
            ],
            "examples": [
              "identify"
            ],
            "title": "Mode",
            "type": "string"
          }
        },
        "required": [
          "barcode"
        ],
        "title": "ScanResolveInput",
        "type": "object"
      },
      "ScanResponse": {
        "properties": {
          "action_result": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action Result"
          },
          "barcode_normalized": {
            "title": "Barcode Normalized",
            "type": "string"
          },
          "barcode_raw": {
            "title": "Barcode Raw",
            "type": "string"
          },
          "brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "default_location_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Id"
          },
          "default_location_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Location Name"
          },
          "default_quantity_unit_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Quantity Unit Id"
          },
          "default_quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Quantity Unit Name"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "mode": {
            "enum": [
              "identify",
              "add",
              "consume",
              "open",
              "shopping"
            ],
            "title": "Mode",
            "type": "string"
          },
          "package_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Amount"
          },
          "package_unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Unit"
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Id"
          },
          "product_image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Image Url"
          },
          "product_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Name"
          },
          "resolution_source": {
            "enum": [
              "local",
              "cache",
              "open_facts",
              "unresolved"
            ],
            "title": "Resolution Source",
            "type": "string"
          },
          "status": {
            "enum": [
              "resolved",
              "unresolved",
              "confirmed",
              "discarded"
            ],
            "title": "Status",
            "type": "string"
          },
          "stock_quantity": {
            "default": 0,
            "title": "Stock Quantity",
            "type": "number"
          },
          "suggestion": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggestion"
          },
          "symbology": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Symbology"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          },
          "upstream_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upstream Error"
          },
          "variant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Id"
          },
          "variant_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Name"
          }
        },
        "required": [
          "id",
          "barcode_raw",
          "barcode_normalized",
          "mode",
          "status",
          "resolution_source",
          "created_at",
          "updated_at"
        ],
        "title": "ScanResponse",
        "type": "object"
      },
      "ScanUpdateInput": {
        "properties": {
          "brand": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand"
          },
          "image_url": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "mode": {
            "anyOf": [
              {
                "enum": [
                  "identify",
                  "add",
                  "consume",
                  "open",
                  "shopping"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "product_id": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Id"
          },
          "quantity_label": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Label"
          }
        },
        "title": "ScanUpdateInput",
        "type": "object"
      },
      "SecurityStateResponse": {
        "properties": {
          "passkeys": {
            "items": {
              "$ref": "#/components/schemas/PasskeyResponse"
            },
            "title": "Passkeys",
            "type": "array"
          },
          "recent_authentication": {
            "title": "Recent Authentication",
            "type": "boolean"
          },
          "recent_authentication_until": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recent Authentication Until"
          },
          "recovery_codes_remaining": {
            "title": "Recovery Codes Remaining",
            "type": "integer"
          },
          "secure_context_required": {
            "default": true,
            "title": "Secure Context Required",
            "type": "boolean"
          },
          "totp_enabled": {
            "title": "Totp Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "passkeys",
          "totp_enabled",
          "recovery_codes_remaining",
          "recent_authentication"
        ],
        "title": "SecurityStateResponse",
        "type": "object"
      },
      "SessionRevocationResponse": {
        "properties": {
          "authenticated": {
            "default": true,
            "title": "Authenticated",
            "type": "boolean"
          },
          "revoked": {
            "title": "Revoked",
            "type": "integer"
          }
        },
        "required": [
          "revoked"
        ],
        "title": "SessionRevocationResponse",
        "type": "object"
      },
      "SettingsInput": {
        "properties": {
          "grocy": {
            "$ref": "#/components/schemas/GrocySettingsInput"
          },
          "privacy": {
            "$ref": "#/components/schemas/PrivacySettingsInput"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderSettingsInput"
          }
        },
        "required": [
          "grocy",
          "provider",
          "privacy"
        ],
        "title": "SettingsInput",
        "type": "object"
      },
      "SetupRequest": {
        "properties": {
          "display_name": {
            "anyOf": [
              {
                "maxLength": 100,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          },
          "password": {
            "maxLength": 512,
            "minLength": 10,
            "title": "Password",
            "type": "string"
          },
          "preferred_locale": {
            "default": "de",
            "enum": [
              "de",
              "en"
            ],
            "title": "Preferred Locale",
            "type": "string"
          }
        },
        "required": [
          "password"
        ],
        "title": "SetupRequest",
        "type": "object"
      },
      "ShoppingGenerateInput": {
        "properties": {
          "client_mutation_id": {
            "maxLength": 100,
            "minLength": 8,
            "title": "Client Mutation Id",
            "type": "string"
          },
          "product_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Product Ids",
            "type": "array"
          }
        },
        "required": [
          "client_mutation_id",
          "product_ids"
        ],
        "title": "ShoppingGenerateInput",
        "type": "object"
      },
      "ShoppingGenerationItemResponse": {
        "properties": {
          "action": {
            "enum": [
              "created",
              "updated",
              "unchanged",
              "skipped"
            ],
            "title": "Action",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "current_quantity": {
            "title": "Current Quantity",
            "type": "number"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "minimum_quantity": {
            "title": "Minimum Quantity",
            "type": "number"
          },
          "product_id": {
            "title": "Product Id",
            "type": "string"
          },
          "product_name": {
            "title": "Product Name",
            "type": "string"
          },
          "quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Name"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "shopping_item_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shopping Item Id"
          },
          "suggested_quantity": {
            "title": "Suggested Quantity",
            "type": "number"
          },
          "target_quantity": {
            "title": "Target Quantity",
            "type": "number"
          }
        },
        "required": [
          "id",
          "run_id",
          "product_id",
          "product_name",
          "current_quantity",
          "minimum_quantity",
          "target_quantity",
          "suggested_quantity",
          "action",
          "created_at"
        ],
        "title": "ShoppingGenerationItemResponse",
        "type": "object"
      },
      "ShoppingGenerationResponse": {
        "properties": {
          "client_mutation_id": {
            "title": "Client Mutation Id",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "created_count": {
            "title": "Created Count",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ShoppingGenerationItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "requested_count": {
            "title": "Requested Count",
            "type": "integer"
          },
          "skipped_count": {
            "title": "Skipped Count",
            "type": "integer"
          },
          "unchanged_count": {
            "title": "Unchanged Count",
            "type": "integer"
          },
          "updated_count": {
            "title": "Updated Count",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "client_mutation_id",
          "requested_count",
          "created_count",
          "updated_count",
          "unchanged_count",
          "skipped_count",
          "created_at",
          "items"
        ],
        "title": "ShoppingGenerationResponse",
        "type": "object"
      },
      "ShoppingListItemResponse": {
        "properties": {
          "checked": {
            "title": "Checked",
            "type": "integer"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "desired_quantity": {
            "title": "Desired Quantity",
            "type": "number"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "minimum_stock_quantity": {
            "default": 0,
            "title": "Minimum Stock Quantity",
            "type": "number"
          },
          "notes": {
            "title": "Notes",
            "type": "string"
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Id"
          },
          "product_image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Image Url"
          },
          "product_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Name"
          },
          "quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Name"
          },
          "shopping_target_quantity": {
            "default": 0,
            "title": "Shopping Target Quantity",
            "type": "number"
          },
          "stock_quantity": {
            "default": 0,
            "title": "Stock Quantity",
            "type": "number"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "desired_quantity",
          "checked",
          "notes",
          "created_at",
          "updated_at"
        ],
        "title": "ShoppingListItemResponse",
        "type": "object"
      },
      "ShoppingListItemUpdateInput": {
        "properties": {
          "checked": {
            "default": false,
            "title": "Checked",
            "type": "boolean"
          },
          "desired_quantity": {
            "exclusiveMinimum": 0.0,
            "maximum": 1000000.0,
            "title": "Desired Quantity",
            "type": "number"
          },
          "expected_updated_at": {
            "maxLength": 80,
            "minLength": 10,
            "title": "Expected Updated At",
            "type": "string"
          },
          "notes": {
            "default": "",
            "maxLength": 500,
            "title": "Notes",
            "type": "string"
          }
        },
        "required": [
          "desired_quantity",
          "expected_updated_at"
        ],
        "title": "ShoppingListItemUpdateInput",
        "type": "object"
      },
      "ShoppingLowStockItemResponse": {
        "properties": {
          "current_quantity": {
            "title": "Current Quantity",
            "type": "number"
          },
          "existing_desired_quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Existing Desired Quantity"
          },
          "existing_item_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Existing Item Id"
          },
          "minimum_quantity": {
            "title": "Minimum Quantity",
            "type": "number"
          },
          "product_id": {
            "title": "Product Id",
            "type": "string"
          },
          "product_image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Product Image Url"
          },
          "product_name": {
            "title": "Product Name",
            "type": "string"
          },
          "quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Name"
          },
          "suggested_quantity": {
            "title": "Suggested Quantity",
            "type": "number"
          },
          "target_quantity": {
            "title": "Target Quantity",
            "type": "number"
          }
        },
        "required": [
          "product_id",
          "product_name",
          "current_quantity",
          "minimum_quantity",
          "target_quantity",
          "suggested_quantity"
        ],
        "title": "ShoppingLowStockItemResponse",
        "type": "object"
      },
      "ShoppingLowStockResponse": {
        "properties": {
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ShoppingLowStockItemResponse"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items",
          "generated_at"
        ],
        "title": "ShoppingLowStockResponse",
        "type": "object"
      },
      "StatusResponse": {
        "properties": {
          "catalog": {
            "$ref": "#/components/schemas/CatalogSummaryResponse"
          },
          "grocy_configured": {
            "title": "Grocy Configured",
            "type": "boolean"
          },
          "grocy_connected": {
            "title": "Grocy Connected",
            "type": "boolean"
          },
          "grocy_enabled": {
            "title": "Grocy Enabled",
            "type": "boolean"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "provider_configured": {
            "title": "Provider Configured",
            "type": "boolean"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "grocy_configured",
          "grocy_enabled",
          "grocy_connected",
          "provider_configured",
          "provider",
          "catalog",
          "version"
        ],
        "title": "StatusResponse",
        "type": "object"
      },
      "StockCountCreateInput": {
        "properties": {
          "client_mutation_id": {
            "description": "Idempotency key generated once for the reviewed count.",
            "examples": [
              "count_018f3f1c8c1a"
            ],
            "maxLength": 100,
            "minLength": 8,
            "title": "Client Mutation Id",
            "type": "string"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/StockCountLineInput"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Lines",
            "type": "array"
          },
          "note": {
            "default": "",
            "maxLength": 1000,
            "title": "Note",
            "type": "string"
          },
          "source": {
            "default": "manual",
            "enum": [
              "manual",
              "grocy_review"
            ],
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "client_mutation_id",
          "lines"
        ],
        "title": "StockCountCreateInput",
        "type": "object"
      },
      "StockCountLineInput": {
        "properties": {
          "best_before_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Best Before Date"
          },
          "counted_quantity": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Counted Quantity",
            "type": "number"
          },
          "location_id": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Id"
          },
          "note": {
            "default": "",
            "maxLength": 500,
            "title": "Note",
            "type": "string"
          },
          "product_id": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Product Id",
            "type": "string"
          },
          "unit_price": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Price"
          },
          "variant_id": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Id"
          }
        },
        "required": [
          "product_id",
          "counted_quantity"
        ],
        "title": "StockCountLineInput",
        "type": "object"
      },
      "StockCountLineResponse": {
        "properties": {
          "best_before_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Best Before Date"
          },
          "counted_quantity": {
            "title": "Counted Quantity",
            "type": "number"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "location_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Id"
          },
          "location_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Name"
          },
          "movement_count": {
            "title": "Movement Count",
            "type": "integer"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "previous_quantity": {
            "title": "Previous Quantity",
            "type": "number"
          },
          "product_id": {
            "title": "Product Id",
            "type": "string"
          },
          "product_name": {
            "title": "Product Name",
            "type": "string"
          },
          "quantity_delta": {
            "title": "Quantity Delta",
            "type": "number"
          },
          "quantity_unit_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit Name"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "unit_price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Price"
          },
          "variant_brand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Brand"
          },
          "variant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Id"
          },
          "variant_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Name"
          }
        },
        "required": [
          "id",
          "session_id",
          "product_id",
          "product_name",
          "previous_quantity",
          "counted_quantity",
          "quantity_delta",
          "note",
          "movement_count",
          "created_at"
        ],
        "title": "StockCountLineResponse",
        "type": "object"
      },
      "StockCountSessionResponse": {
        "properties": {
          "changed_count": {
            "title": "Changed Count",
            "type": "integer"
          },
          "client_mutation_id": {
            "title": "Client Mutation Id",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "line_count": {
            "title": "Line Count",
            "type": "integer"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/StockCountLineResponse"
            },
            "title": "Lines",
            "type": "array"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "source": {
            "enum": [
              "manual",
              "grocy_review"
            ],
            "title": "Source",
            "type": "string"
          },
          "status": {
            "const": "confirmed",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "client_mutation_id",
          "source",
          "note",
          "status",
          "line_count",
          "changed_count",
          "created_at",
          "lines"
        ],
        "title": "StockCountSessionResponse",
        "type": "object"
      },
      "TotpEnableResponse": {
        "properties": {
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "recovery_codes": {
            "items": {
              "type": "string"
            },
            "title": "Recovery Codes",
            "type": "array"
          }
        },
        "required": [
          "enabled"
        ],
        "title": "TotpEnableResponse",
        "type": "object"
      },
      "TotpSetupResponse": {
        "properties": {
          "provisioning_uri": {
            "title": "Provisioning Uri",
            "type": "string"
          },
          "qr_data_uri": {
            "title": "Qr Data Uri",
            "type": "string"
          },
          "secret": {
            "title": "Secret",
            "type": "string"
          }
        },
        "required": [
          "secret",
          "provisioning_uri",
          "qr_data_uri"
        ],
        "title": "TotpSetupResponse",
        "type": "object"
      },
      "TotpVerifyInput": {
        "properties": {
          "code": {
            "maxLength": 32,
            "minLength": 6,
            "title": "Code",
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "title": "TotpVerifyInput",
        "type": "object"
      },
      "UserPreferencesUpdateInput": {
        "properties": {
          "preferred_locale": {
            "enum": [
              "de",
              "en"
            ],
            "title": "Preferred Locale",
            "type": "string"
          }
        },
        "required": [
          "preferred_locale"
        ],
        "title": "UserPreferencesUpdateInput",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "WebAuthnBeginInput": {
        "properties": {
          "origin": {
            "maxLength": 500,
            "minLength": 8,
            "title": "Origin",
            "type": "string"
          }
        },
        "required": [
          "origin"
        ],
        "title": "WebAuthnBeginInput",
        "type": "object"
      },
      "WebAuthnCompleteInput": {
        "properties": {
          "challenge_id": {
            "maxLength": 100,
            "minLength": 20,
            "title": "Challenge Id",
            "type": "string"
          },
          "credential": {
            "additionalProperties": true,
            "title": "Credential",
            "type": "object"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "required": [
          "challenge_id",
          "credential"
        ],
        "title": "WebAuthnCompleteInput",
        "type": "object"
      },
      "WebAuthnOptionsResponse": {
        "properties": {
          "challenge_id": {
            "title": "Challenge Id",
            "type": "string"
          },
          "options": {
            "additionalProperties": true,
            "title": "Options",
            "type": "object"
          }
        },
        "required": [
          "challenge_id",
          "options"
        ],
        "title": "WebAuthnOptionsResponse",
        "type": "object"
      }
    },
    "securitySchemes": {
      "apiToken": {
        "bearerFormat": "Vorrio API token",
        "description": "Scoped automation credential sent only through the Authorization header. The raw token is returned once; Vorrio stores only its SHA-256 hash.",
        "scheme": "bearer",
        "type": "http"
      },
      "householdSession": {
        "description": "Signed HttpOnly cookie containing a random token whose hash is bound to a revocable server-side device session.",
        "in": "cookie",
        "name": "session",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "contact": {
      "name": "Amturo UG"
    },
    "description": "The versioned API used by the Vorrio PWA and external household tools. All stock-changing operations require an authenticated household session.",
    "license": {
      "identifier": "AGPL-3.0-or-later",
      "name": "GNU Affero General Public License v3.0 or later"
    },
    "summary": "Self-hosted household inventory and receipt API",
    "title": "Vorrio REST API",
    "version": "0.8.26"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/health": {
      "get": {
        "operationId": "health_api_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Check instance health",
        "tags": [
          "System"
        ]
      }
    },
    "/api/readiness": {
      "get": {
        "operationId": "readiness_api_readiness_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReadinessResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Check deployment readiness",
        "tags": [
          "System"
        ]
      }
    },
    "/api/v1/auth/api-token-scopes": {
      "get": {
        "operationId": "api_token_scopes_api_v1_auth_api_token_scopes_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApiTokenScopeResponse"
                  },
                  "title": "Response Api Token Scopes Api V1 Auth Api Token Scopes Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "List available automation-token scopes",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/api-tokens": {
      "get": {
        "operationId": "api_tokens_api_v1_auth_api_tokens_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApiTokenResponse"
                  },
                  "title": "Response Api Tokens Api V1 Auth Api Tokens Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "List the current account's automation tokens",
        "tags": [
          "Authentication"
        ]
      },
      "post": {
        "description": "Returns the raw bearer token exactly once. Vorrio stores only its SHA-256 hash. The token is restricted to the selected scopes and expires after at most 365 days.",
        "operationId": "create_api_token_api_v1_auth_api_tokens_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiTokenCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTokenCreatedResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Create a scoped automation token",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/api-tokens/{token_id}": {
      "delete": {
        "operationId": "revoke_api_token_api_v1_auth_api_tokens__token_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "token_id",
            "required": true,
            "schema": {
              "title": "Token Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionRevocationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Revoke one automation token",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/invitations": {
      "get": {
        "operationId": "household_invitations_api_v1_auth_invitations_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/HouseholdInvitationResponse"
                  },
                  "title": "Response Household Invitations Api V1 Auth Invitations Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "List active household invitations",
        "tags": [
          "Authentication"
        ]
      },
      "post": {
        "description": "Returns the raw invitation token exactly once. Only its SHA-256 hash is stored. The inviter shares the same-origin PWA link privately.",
        "operationId": "create_household_invitation_api_v1_auth_invitations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdInvitationCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HouseholdInvitationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Create a single-use household invitation",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/invitations/{invitation_id}": {
      "delete": {
        "operationId": "revoke_household_invitation_api_v1_auth_invitations__invitation_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "invitation_id",
            "required": true,
            "schema": {
              "title": "Invitation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionRevocationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Revoke an unused household invitation",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/invitations/{token}": {
      "get": {
        "operationId": "household_invitation_api_v1_auth_invitations__token__get",
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "title": "Token",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HouseholdInvitationPublicResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Read a single-use invitation",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/invitations/{token}/accept": {
      "post": {
        "operationId": "accept_household_invitation_api_v1_auth_invitations__token__accept_post",
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "title": "Token",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdInvitationAcceptInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Accept an invitation and create the member account",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "operationId": "login_api_v1_auth_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Create a household session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/logout": {
      "post": {
        "operationId": "logout_api_v1_auth_logout_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "End the current session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/me": {
      "get": {
        "operationId": "me_api_v1_auth_me_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Validate the current session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/members": {
      "get": {
        "operationId": "household_members_api_v1_auth_members_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/HouseholdMemberResponse"
                  },
                  "title": "Response Household Members Api V1 Auth Members Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "List household members",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/members/{user_id}": {
      "patch": {
        "description": "Owner membership cannot be changed through this endpoint. Admins may manage members and viewers but cannot grant or manage admin access.",
        "operationId": "update_household_member_api_v1_auth_members__user_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdMemberUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HouseholdMemberResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Change a member role or access state",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/mfa/verify": {
      "post": {
        "operationId": "verify_login_mfa_api_v1_auth_mfa_verify_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MfaVerifyInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Finish a password login with a second factor",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/passkeys/authentication/begin": {
      "post": {
        "operationId": "begin_passkey_authentication_api_v1_auth_passkeys_authentication_begin_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebAuthnBeginInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebAuthnOptionsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Start passwordless passkey authentication",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/passkeys/authentication/complete": {
      "post": {
        "operationId": "complete_passkey_authentication_api_v1_auth_passkeys_authentication_complete_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebAuthnCompleteInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Complete passwordless passkey authentication",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/passkeys/registration/begin": {
      "post": {
        "operationId": "begin_passkey_registration_api_v1_auth_passkeys_registration_begin_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebAuthnBeginInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebAuthnOptionsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Start passkey registration",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/passkeys/registration/complete": {
      "post": {
        "operationId": "complete_passkey_registration_api_v1_auth_passkeys_registration_complete_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebAuthnCompleteInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasskeyResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Verify and save a passkey",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/passkeys/{credential_id}": {
      "delete": {
        "operationId": "delete_passkey_api_v1_auth_passkeys__credential_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Delete one passkey",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/password": {
      "put": {
        "operationId": "change_password_api_v1_auth_password_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordChangeInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Change the current account password",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/preferences": {
      "patch": {
        "description": "Stores the signed-in user's supported BCP 47 interface locale. The preference is personal and does not alter household product data, currency or installation timezone.",
        "operationId": "update_user_preferences_api_v1_auth_preferences_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPreferencesUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Update personal interface preferences",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/profile": {
      "patch": {
        "description": "Names the first owner created from the former household password. The optional email is stored locally and identifies the account during recovery-code login.",
        "operationId": "update_owner_profile_api_v1_auth_profile_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerProfileUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Complete or update the owner profile",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/reauthenticate": {
      "post": {
        "operationId": "reauthenticate_api_v1_auth_reauthenticate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReauthenticateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Confirm identity before a sensitive change",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/recovery": {
      "post": {
        "operationId": "recovery_login_api_v1_auth_recovery_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecoveryLoginInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Recover an account with a single-use recovery code",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/recovery-codes": {
      "post": {
        "operationId": "regenerate_recovery_codes_api_v1_auth_recovery_codes_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecoveryCodesResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Replace all single-use recovery codes",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/security": {
      "get": {
        "operationId": "auth_security_api_v1_auth_security_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Read passkey, TOTP and recovery status",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/sessions": {
      "get": {
        "operationId": "auth_sessions_api_v1_auth_sessions_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AuthSessionResponse"
                  },
                  "title": "Response Auth Sessions Api V1 Auth Sessions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "List active browser sessions",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/sessions/revoke-others": {
      "post": {
        "operationId": "revoke_other_auth_sessions_api_v1_auth_sessions_revoke_others_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionRevocationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Revoke every other browser session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/sessions/{session_id}": {
      "delete": {
        "operationId": "revoke_auth_session_api_v1_auth_sessions__session_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionRevocationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Revoke one browser session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/setup": {
      "post": {
        "operationId": "setup_api_v1_auth_setup_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Complete first-run setup",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/state": {
      "get": {
        "operationId": "auth_state_api_v1_auth_state_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "summary": "Read setup and session state",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/totp": {
      "delete": {
        "operationId": "disable_totp_api_v1_auth_totp_delete",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Disable authenticator-app verification",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/totp/enable": {
      "post": {
        "operationId": "enable_totp_api_v1_auth_totp_enable_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpVerifyInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpEnableResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Verify and enable an authenticator app",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/auth/totp/setup": {
      "post": {
        "operationId": "setup_totp_api_v1_auth_totp_setup_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpSetupResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Create a pending authenticator-app secret",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/api/v1/catalog/barcodes/{barcode}/lookup": {
      "get": {
        "operationId": "catalog_barcode_lookup_api_v1_catalog_barcodes__barcode__lookup_get",
        "parameters": [
          {
            "in": "path",
            "name": "barcode",
            "required": true,
            "schema": {
              "title": "Barcode",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BarcodeLookupResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Resolve a barcode locally or through Open Facts",
        "tags": [
          "Catalog"
        ],
        "x-vorrio-required-scope": "catalog:read"
      }
    },
    "/api/v1/catalog/master-data": {
      "get": {
        "operationId": "catalog_master_data_api_v1_catalog_master_data_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MasterDataResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "List locations, units and product groups",
        "tags": [
          "Catalog"
        ],
        "x-vorrio-required-scope": "catalog:read"
      }
    },
    "/api/v1/catalog/master-data/{kind}": {
      "post": {
        "description": "Supported kinds are locations, quantity-units and product-groups.",
        "operationId": "create_catalog_master_data_api_v1_catalog_master_data__kind__post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "title": "Kind",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MasterDataCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MasterDataItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Create a catalog master-data entry",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/master-data/{kind}/{item_id}": {
      "delete": {
        "description": "The entry is archived instead of physically deleted. Archiving is blocked while an active product still uses it.",
        "operationId": "archive_catalog_master_data_api_v1_catalog_master_data__kind___item_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MasterDataItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Archive an unused catalog master-data entry",
        "tags": [
          "Catalog"
        ]
      },
      "patch": {
        "operationId": "update_catalog_master_data_api_v1_catalog_master_data__kind___item_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MasterDataUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MasterDataItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Rename or edit a catalog master-data entry",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/products": {
      "get": {
        "operationId": "catalog_products_api_v1_catalog_products_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "default": "",
              "maxLength": 200,
              "title": "Q",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CatalogProductResponse"
                  },
                  "title": "Response Catalog Products Api V1 Catalog Products Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Search catalog products",
        "tags": [
          "Catalog"
        ],
        "x-vorrio-required-scope": "catalog:read"
      },
      "post": {
        "operationId": "create_catalog_product_api_v1_catalog_products_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogProductCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Create a local catalog product",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/products/{product_id}": {
      "get": {
        "operationId": "catalog_product_detail_api_v1_catalog_products__product_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "title": "Product Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Read a product with variants and barcodes",
        "tags": [
          "Catalog"
        ],
        "x-vorrio-required-scope": "catalog:read"
      },
      "patch": {
        "description": "Updates confirmed household fields with optimistic concurrency. A renamed product keeps its old normalized name as an alias so earlier receipt wording continues to resolve.",
        "operationId": "update_catalog_product_api_v1_catalog_products__product_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "title": "Product Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogProductUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Edit a local catalog product",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/products/{product_id}/image": {
      "delete": {
        "operationId": "delete_catalog_product_image_api_v1_catalog_products__product_id__image_delete",
        "parameters": [
          {
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "title": "Product Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Remove the current product image",
        "tags": [
          "Catalog"
        ]
      },
      "get": {
        "operationId": "catalog_product_image_api_v1_catalog_products__product_id__image_get",
        "parameters": [
          {
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "title": "Product Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Read a locally managed product image",
        "tags": [
          "Catalog"
        ],
        "x-vorrio-required-scope": "catalog:read"
      },
      "post": {
        "description": "Accepts JPEG, PNG or WebP, removes camera metadata and stores an optimized WebP in the local Vorrio data volume.",
        "operationId": "upload_catalog_product_image_api_v1_catalog_products__product_id__image_post",
        "parameters": [
          {
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "title": "Product Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_upload_catalog_product_image_api_v1_catalog_products__product_id__image_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Upload a private product image",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/products/{product_id}/price-history": {
      "get": {
        "description": "Returns receipt-derived prices with store and package variant context. No bank or payment data is stored.",
        "operationId": "catalog_product_price_history_api_v1_catalog_products__product_id__price_history_get",
        "parameters": [
          {
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "title": "Product Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CatalogPriceHistoryItemResponse"
                  },
                  "title": "Response Catalog Product Price History Api V1 Catalog Products  Product Id  Price History Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "List receipt prices for a catalog product",
        "tags": [
          "Catalog"
        ],
        "x-vorrio-required-scope": "catalog:read"
      }
    },
    "/api/v1/catalog/products/{product_id}/variants": {
      "post": {
        "operationId": "create_catalog_variant_api_v1_catalog_products__product_id__variants_post",
        "parameters": [
          {
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "title": "Product Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogVariantCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Add a sellable product variant",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/reconcile": {
      "post": {
        "description": "Uses only the local product catalog and learned mappings. Exact matches may be assigned automatically; fuzzy candidates always remain suggestions.",
        "operationId": "reconcile_catalog_receipts_api_v1_catalog_reconcile_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReconcileResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Re-evaluate unresolved receipt lines",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/variants/{variant_id}": {
      "delete": {
        "description": "Deletion is blocked while a receipt, stock lot or scan still references the variant.",
        "operationId": "delete_catalog_variant_api_v1_catalog_variants__variant_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "title": "Variant Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Delete an unused product variant",
        "tags": [
          "Catalog"
        ]
      },
      "patch": {
        "operationId": "update_catalog_variant_api_v1_catalog_variants__variant_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "title": "Variant Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogVariantUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Edit a product variant",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/variants/{variant_id}/barcodes": {
      "post": {
        "operationId": "create_catalog_barcode_api_v1_catalog_variants__variant_id__barcodes_post",
        "parameters": [
          {
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "title": "Variant Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogBarcodeCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Attach a barcode to a product variant",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/catalog/variants/{variant_id}/barcodes/{barcode}": {
      "delete": {
        "operationId": "delete_catalog_barcode_api_v1_catalog_variants__variant_id__barcodes__barcode__delete",
        "parameters": [
          {
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "title": "Variant Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "barcode",
            "required": true,
            "schema": {
              "title": "Barcode",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogProductDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Detach a barcode from a product variant",
        "tags": [
          "Catalog"
        ]
      }
    },
    "/api/v1/experience": {
      "get": {
        "operationId": "get_experience_api_v1_experience_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExperienceStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Read personal onboarding and release-note state",
        "tags": [
          "Experience"
        ]
      },
      "put": {
        "operationId": "update_experience_api_v1_experience_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExperienceUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExperienceStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Complete onboarding or acknowledge the current release",
        "tags": [
          "Experience"
        ]
      }
    },
    "/api/v1/grocy/master-data": {
      "get": {
        "deprecated": true,
        "operationId": "grocy_master_data_api_v1_grocy_master_data_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MasterDataResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Read Grocy master data",
        "tags": [
          "Legacy Grocy"
        ]
      }
    },
    "/api/v1/grocy/products": {
      "get": {
        "deprecated": true,
        "operationId": "search_products_api_v1_grocy_products_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "default": "",
              "maxLength": 200,
              "title": "Q",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/GrocyProductResponse"
                  },
                  "title": "Response Search Products Api V1 Grocy Products Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Search Grocy products",
        "tags": [
          "Legacy Grocy"
        ]
      }
    },
    "/api/v1/insights/budget": {
      "get": {
        "description": "Returns month-to-date spending, a pace-based forecast, a comparable prior period, monthly history, store shares and explicit coverage diagnostics. Only receipts with at least one confirmed stock import are counted; historic receipt values are never presented as live market prices.",
        "operationId": "budget_overview_api_v1_insights_budget_get",
        "parameters": [
          {
            "in": "query",
            "name": "months",
            "required": false,
            "schema": {
              "default": 6,
              "maximum": 24,
              "minimum": 1,
              "title": "Months",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BudgetOverviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Summarize the household budget from confirmed receipts",
        "tags": [
          "Insights"
        ]
      }
    },
    "/api/v1/insights/budget/settings": {
      "put": {
        "description": "Owner and admin sessions can set one EUR monthly limit and warning threshold for the household. A null limit removes the target without changing receipts.",
        "operationId": "update_budget_settings_api_v1_insights_budget_settings_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BudgetSettingsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BudgetSettingsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Set or clear the shared monthly household budget",
        "tags": [
          "Insights"
        ]
      }
    },
    "/api/v1/insights/prices": {
      "get": {
        "description": "Builds a read-only household price overview from confirmed receipt imports. Store values are historic observations, not live prices or availability.",
        "operationId": "price_insights_api_v1_insights_prices_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceInsightsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Summarize confirmed receipt prices by product and store",
        "tags": [
          "Insights"
        ]
      }
    },
    "/api/v1/integrations/grocy/import-catalog": {
      "post": {
        "operationId": "import_grocy_catalog_api_v1_integrations_grocy_import_catalog_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GrocyCatalogImportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Import or update the local catalog from Grocy",
        "tags": [
          "Integrations"
        ]
      }
    },
    "/api/v1/integrations/grocy/stock-preview": {
      "get": {
        "description": "Reads the configured Grocy stock and maps it to previously imported catalog products. The response is a review proposal only; stock changes require a separate confirmed POST to /api/v1/stock/counts.",
        "operationId": "grocy_stock_preview_api_v1_integrations_grocy_stock_preview_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GrocyStockPreviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Preview mapped Grocy balances without changing Vorrio",
        "tags": [
          "Integrations"
        ]
      }
    },
    "/api/v1/notifications/preferences": {
      "put": {
        "operationId": "update_notification_preferences_api_v1_notifications_preferences_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Update personal stock notification preferences",
        "tags": [
          "Notifications"
        ]
      }
    },
    "/api/v1/notifications/state": {
      "get": {
        "operationId": "notification_state_api_v1_notifications_state_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationStateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Read personal Web Push settings and devices",
        "tags": [
          "Notifications"
        ]
      }
    },
    "/api/v1/notifications/subscriptions": {
      "post": {
        "operationId": "register_push_subscription_api_v1_notifications_subscriptions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushSubscriptionCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushSubscriptionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Register or refresh one browser push device",
        "tags": [
          "Notifications"
        ]
      }
    },
    "/api/v1/notifications/subscriptions/{subscription_id}": {
      "delete": {
        "operationId": "revoke_push_subscription_api_v1_notifications_subscriptions__subscription_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "title": "Subscription Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionRevocationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Revoke one personal push device",
        "tags": [
          "Notifications"
        ]
      }
    },
    "/api/v1/notifications/test": {
      "post": {
        "operationId": "test_push_notification_api_v1_notifications_test_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationTestInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationDeliveryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Send a visible test notification to one personal device",
        "tags": [
          "Notifications"
        ]
      }
    },
    "/api/v1/operations/overview": {
      "get": {
        "operationId": "operations_overview_api_v1_operations_overview_get",
        "parameters": [
          {
            "in": "query",
            "name": "event_limit",
            "required": false,
            "schema": {
              "default": 40,
              "maximum": 100,
              "minimum": 1,
              "title": "Event Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationsOverviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Read the privacy-safe owner operations overview",
        "tags": [
          "Privacy & Operations"
        ]
      }
    },
    "/api/v1/privacy/export": {
      "get": {
        "operationId": "privacy_export_api_v1_privacy_export_get",
        "parameters": [
          {
            "in": "query",
            "name": "include_receipt_files",
            "required": false,
            "schema": {
              "default": true,
              "title": "Include Receipt Files",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "application/zip": {}
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Download a secret-free portable household export",
        "tags": [
          "Privacy & Operations"
        ]
      }
    },
    "/api/v1/privacy/export/preview": {
      "get": {
        "operationId": "privacy_export_preview_api_v1_privacy_export_preview_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportPreviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Preview the portable household export",
        "tags": [
          "Privacy & Operations"
        ]
      }
    },
    "/api/v1/privacy/household": {
      "delete": {
        "operationId": "privacy_erase_household_api_v1_privacy_household_delete",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdEraseInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HouseholdEraseResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Permanently erase this single-household installation",
        "tags": [
          "Privacy & Operations"
        ]
      }
    },
    "/api/v1/privacy/retention": {
      "get": {
        "operationId": "privacy_retention_preview_api_v1_privacy_retention_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetentionPreviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Preview receipt-file retention",
        "tags": [
          "Privacy & Operations"
        ]
      }
    },
    "/api/v1/privacy/retention/run": {
      "post": {
        "operationId": "privacy_retention_run_api_v1_privacy_retention_run_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetentionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Apply receipt-file retention now",
        "tags": [
          "Privacy & Operations"
        ]
      }
    },
    "/api/v1/receipts": {
      "get": {
        "operationId": "receipts_api_v1_receipts_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReceiptResponse"
                  },
                  "title": "Response Receipts Api V1 Receipts Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "List recent receipts",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/analyze": {
      "post": {
        "operationId": "analyze_api_v1_receipts_analyze_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_analyze_api_v1_receipts_analyze_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Analyze an image or PDF receipt",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/{receipt_id}": {
      "get": {
        "operationId": "receipt_api_v1_receipts__receipt_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "receipt_id",
            "required": true,
            "schema": {
              "title": "Receipt Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Get a receipt with all lines",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/{receipt_id}/import": {
      "post": {
        "operationId": "import_receipt_api_v1_receipts__receipt_id__import_post",
        "parameters": [
          {
            "in": "path",
            "name": "receipt_id",
            "required": true,
            "schema": {
              "title": "Receipt Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptImportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Commit reviewed lines to local stock",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/{receipt_id}/items/{item_id}": {
      "patch": {
        "operationId": "map_item_api_v1_receipts__receipt_id__items__item_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "receipt_id",
            "required": true,
            "schema": {
              "title": "Receipt Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogItemMappingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Map a receipt line to a catalog product",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/{receipt_id}/items/{item_id}/candidate": {
      "post": {
        "description": "Loads the selected candidate from the server-side cache, links its barcode, image and package variant to an existing or newly created local product, maps the receipt line and remembers the retailer wording.",
        "operationId": "confirm_receipt_item_candidate_api_v1_receipts__receipt_id__items__item_id__candidate_post",
        "parameters": [
          {
            "in": "path",
            "name": "receipt_id",
            "required": true,
            "schema": {
              "title": "Receipt Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductCandidateConfirmInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Confirm and learn a real product candidate",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/{receipt_id}/items/{item_id}/candidates": {
      "get": {
        "description": "Searches real Open Facts records only after an explicit review action, caches the result for 30 days and optionally lets the configured AI provider rank the returned records. Candidates are never assigned automatically.",
        "operationId": "receipt_item_candidates_api_v1_receipts__receipt_id__items__item_id__candidates_get",
        "parameters": [
          {
            "in": "path",
            "name": "receipt_id",
            "required": true,
            "schema": {
              "title": "Receipt Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 3,
              "maximum": 5,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCandidateSearchResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Find real product candidates for a receipt line",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/{receipt_id}/items/{item_id}/catalog-product": {
      "post": {
        "operationId": "create_and_map_catalog_product_api_v1_receipts__receipt_id__items__item_id__catalog_product_post",
        "parameters": [
          {
            "in": "path",
            "name": "receipt_id",
            "required": true,
            "schema": {
              "title": "Receipt Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogProductCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Create and map a local catalog product",
        "tags": [
          "Receipts"
        ]
      }
    },
    "/api/v1/receipts/{receipt_id}/items/{item_id}/create-product": {
      "post": {
        "deprecated": true,
        "operationId": "create_and_map_product_api_v1_receipts__receipt_id__items__item_id__create_product_post",
        "parameters": [
          {
            "in": "path",
            "name": "receipt_id",
            "required": true,
            "schema": {
              "title": "Receipt Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GrocyProductCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Create and map a Grocy product",
        "tags": [
          "Legacy Grocy"
        ]
      }
    },
    "/api/v1/scans/resolve": {
      "post": {
        "description": "Normalizes the decoded code, checks the local catalog and fresh cache first, rejects repeated-digit placeholder GTINs, then queries Open Facts for EAN/UPC/GTIN codes. Internal codes never leave the installation. Unknown and upstream-failed codes are kept in the unresolved inbox. Reusing client_mutation_id returns the same draft.",
        "operationId": "resolve_scan_api_v1_scans_resolve_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanResolveInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Resolve a package code without changing stock",
        "tags": [
          "Scanning"
        ],
        "x-vorrio-required-scope": "scans:write"
      }
    },
    "/api/v1/scans/unresolved": {
      "get": {
        "operationId": "unresolved_scans_api_v1_scans_unresolved_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ScanResponse"
                  },
                  "title": "Response Unresolved Scans Api V1 Scans Unresolved Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "List unresolved package scans",
        "tags": [
          "Scanning"
        ],
        "x-vorrio-required-scope": "scans:read"
      }
    },
    "/api/v1/scans/{scan_id}": {
      "delete": {
        "operationId": "discard_scan_api_v1_scans__scan_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Discard an unresolved scan",
        "tags": [
          "Scanning"
        ],
        "x-vorrio-required-scope": "scans:write"
      },
      "get": {
        "operationId": "get_scan_api_v1_scans__scan_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Read one scan draft",
        "tags": [
          "Scanning"
        ],
        "x-vorrio-required-scope": "scans:read"
      },
      "patch": {
        "description": "Updates review suggestions or maps the code to an existing local product.",
        "operationId": "update_scan_api_v1_scans__scan_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Edit or map an unresolved scan",
        "tags": [
          "Scanning"
        ],
        "x-vorrio-required-scope": "scans:write"
      }
    },
    "/api/v1/scans/{scan_id}/confirm": {
      "post": {
        "description": "Optionally creates or maps the local product and then performs exactly one identify, add, consume, open or shopping-list action. The confirmation key makes retries safe.",
        "operationId": "confirm_scan_api_v1_scans__scan_id__confirm_post",
        "parameters": [
          {
            "in": "path",
            "name": "scan_id",
            "required": true,
            "schema": {
              "title": "Scan Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanConfirmInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Confirm the selected package action",
        "tags": [
          "Scanning"
        ],
        "x-vorrio-required-scope": "scans:write"
      }
    },
    "/api/v1/settings": {
      "get": {
        "operationId": "get_settings_api_v1_settings_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSettingsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Read public settings",
        "tags": [
          "Settings"
        ]
      },
      "put": {
        "operationId": "save_settings_api_v1_settings_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettingsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSettingsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Replace instance settings",
        "tags": [
          "Settings"
        ]
      }
    },
    "/api/v1/settings/test-grocy": {
      "post": {
        "operationId": "test_grocy_api_v1_settings_test_grocy_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionTestResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Test the Grocy connector",
        "tags": [
          "Settings"
        ]
      }
    },
    "/api/v1/settings/test-provider": {
      "post": {
        "operationId": "provider_test_api_v1_settings_test_provider_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionTestResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Test the selected analysis provider",
        "tags": [
          "Settings"
        ]
      }
    },
    "/api/v1/shopping-list": {
      "get": {
        "operationId": "shopping_list_api_v1_shopping_list_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ShoppingListItemResponse"
                  },
                  "title": "Response Shopping List Api V1 Shopping List Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "List open household shopping items",
        "tags": [
          "Shopping"
        ],
        "x-vorrio-required-scope": "shopping:read"
      }
    },
    "/api/v1/shopping-list/generate": {
      "post": {
        "description": "Re-checks every selected product transactionally. Existing open items are raised only when the calculated shortage is larger, and an idempotency key prevents network retries from adding twice.",
        "operationId": "generate_shopping_list_api_v1_shopping_list_generate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShoppingGenerateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShoppingGenerationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Generate reviewed shopping-list items from low stock",
        "tags": [
          "Shopping"
        ],
        "x-vorrio-required-scope": "shopping:write"
      }
    },
    "/api/v1/shopping-list/low-stock": {
      "get": {
        "description": "Returns a read-only proposal. Products without an active refill target are omitted, and no shopping-list item changes until generation is confirmed.",
        "operationId": "shopping_low_stock_api_v1_shopping_list_low_stock_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShoppingLowStockResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Preview products below their configured minimum stock",
        "tags": [
          "Shopping"
        ],
        "x-vorrio-required-scope": "shopping:read"
      }
    },
    "/api/v1/shopping-list/{item_id}": {
      "patch": {
        "operationId": "update_shopping_list_item_api_v1_shopping_list__item_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShoppingListItemUpdateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShoppingListItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Edit or complete a shopping-list item",
        "tags": [
          "Shopping"
        ],
        "x-vorrio-required-scope": "shopping:write"
      }
    },
    "/api/v1/status": {
      "get": {
        "operationId": "status_api_v1_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "Read instance and connector status",
        "tags": [
          "System"
        ],
        "x-vorrio-required-scope": "status:read"
      }
    },
    "/api/v1/stock/count/products": {
      "get": {
        "description": "Returns the complete active catalog including current totals, variants and default master data. Reading this endpoint never changes stock.",
        "operationId": "stock_count_products_api_v1_stock_count_products_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "default": "",
              "maxLength": 200,
              "title": "Q",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CatalogProductDetailResponse"
                  },
                  "title": "Response Stock Count Products Api V1 Stock Count Products Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "List products for a reviewed stock count",
        "tags": [
          "Stock"
        ],
        "x-vorrio-required-scope": "stock:read"
      }
    },
    "/api/v1/stock/counts": {
      "get": {
        "operationId": "stock_counts_api_v1_stock_counts_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/StockCountSessionResponse"
                  },
                  "title": "Response Stock Counts Api V1 Stock Counts Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          },
          {
            "apiToken": []
          }
        ],
        "summary": "List completed stock counts",
        "tags": [
          "Stock"
        ],
        "x-vorrio-required-scope": "stock:read"
      },
      "post": {
        "description": "Only explicitly submitted products are changed. Each line sets the counted total for one product; omitted products remain untouched. Positive and negative differences create append-only stock movements. Reusing the same client mutation id returns the original result.",
        "operationId": "create_stock_count_api_v1_stock_counts_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StockCountCreateInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockCountSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Authentication required"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Instance or workflow conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Configured upstream service failed"
          }
        },
        "security": [
          {
            "householdSession": []
          }
        ],
        "summary": "Apply a reviewed opening or correction count",
        "tags": [
          "Stock"
        ]
      }
    }
  },
  "tags": [
    {
      "description": "Health and instance status.",
      "name": "System"
    },
    {
      "description": "Household setup and session authentication.",
      "name": "Authentication"
    },
    {
      "description": "Opt-in Web Push devices and state-based stock alerts.",
      "name": "Notifications"
    },
    {
      "description": "Provider, connector and privacy settings.",
      "name": "Settings"
    },
    {
      "description": "Owner-only export, retention, erasure and privacy-safe operations.",
      "name": "Privacy & Operations"
    },
    {
      "description": "Receipt analysis, review and stock intake.",
      "name": "Receipts"
    },
    {
      "description": "Products, master data, barcodes and stock metadata.",
      "name": "Catalog"
    },
    {
      "description": "Reviewed opening counts and auditable stock corrections.",
      "name": "Stock"
    },
    {
      "description": "Low-stock proposals and the reviewed household shopping list.",
      "name": "Shopping"
    },
    {
      "description": "Receipt-backed household budget and historic price knowledge.",
      "name": "Insights"
    },
    {
      "description": "Idempotent package identification and stock actions.",
      "name": "Scanning"
    },
    {
      "description": "Optional external connectors.",
      "name": "Integrations"
    },
    {
      "description": "Compatibility endpoints for the former Grocy-first workflow.",
      "name": "Legacy Grocy"
    }
  ]
}
