/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/api/v1/products": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Create or fetch a product from a URL */ post: operations["createProduct"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/recipes/parse": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Parse a recipe from a URL */ get: operations["parseRecipe"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/recipes/ingredients/parse": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Parse raw ingredient lines */ get: operations["parseIngredients"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/recipes": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** List recipes (paginated) */ get: operations["listRecipes"]; put?: never; /** Create a new recipe (versioning semantics applied) */ post: operations["createRecipe"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/recipes/{recipe_id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get a single recipe */ get: operations["getRecipe"]; put?: never; post?: never; /** Soft-delete (hide) a recipe */ delete: operations["deleteRecipe"]; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/meals/upcoming": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** List upcoming meals in a date range */ get: operations["getUpcomingMeals"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/meals/{meal_id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get a meal by id */ get: operations["getMeal"]; /** Update an existing meal */ put: operations["updateMeal"]; post?: never; /** Delete a meal */ delete: operations["deleteMeal"]; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/meals": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Create a new meal */ post: operations["createMeal"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/meals/{meal_id}/consumed": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Mark a meal as consumed */ post: operations["markMealConsumed"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/shopping/current": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get the current aggregated shopping list */ get: operations["getCurrentShoppingList"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/shopping/{list_id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get a purchased shopping list by id */ get: operations["getShoppingList"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/shopping": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Purchase ingredients for a shopping list */ post: operations["purchaseIngredients"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/shopping/current/me/ingredients": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get my outstanding ingredient requests */ get: operations["getMyShoppingList"]; put?: never; /** Sync my outstanding ingredient requests */ post: operations["syncMyShoppingList"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/shopping/current/meals/me": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Request a meal for shopping */ post: operations["requestMeal"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/shopping/current/meals/{meal_id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** Remove a meal request */ delete: operations["unrequestMeal"]; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/persons": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** List persons (paginated) */ get: operations["listPersons"]; put?: never; /** Create a person */ post: operations["createPerson"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/auth/login": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Login and set user_id cookie */ post: operations["login"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/api/v1/auth/refresh": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Refresh current user from cookie */ post: operations["refresh"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/healthz": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Healthz */ get: operations["healthz_healthz_get"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; } export type webhooks = Record; export interface components { schemas: { /** CurrentShoppingList */ CurrentShoppingList: { /** Outstandingitems */ outstandingItems: components["schemas"]["ShoppingListItem"][]; /** Requestedmeals */ requestedMeals: components["schemas"]["ShoppingListItem"][]; /** Purchaseditems */ purchasedItems?: components["schemas"]["ShoppingListItem"][]; /** Ingredientslookup */ ingredientsLookup?: { [key: string]: components["schemas"]["Ingredient"]; }; /** Mealslookup */ mealsLookup?: { [key: string]: components["schemas"]["Meal-Output"]; }; /** Shoppinglistlookup */ shoppingListLookup?: { [key: string]: components["schemas"]["ShoppingList"]; }; /** Recipeslookup */ recipesLookup?: { [key: string]: components["schemas"]["Recipe-Output"]; }; }; /** HTTPValidationError */ HTTPValidationError: { /** Detail */ detail?: components["schemas"]["ValidationError"][]; }; /** HealthStatus */ HealthStatus: { /** * Status * @default ok */ status: string; }; /** Ingredient */ Ingredient: { /** * Id * @default -1 */ id: number; /** Name */ name: string; /** Line */ line: string; /** * Unit * @description Measurement unit (enum values are advisory; runtime accepts any string) * @enum {string} */ unit: "Items" | "Litre" | "Gram" | "Cup" | "Tablespoon" | "Teaspoon" | "Ounce" | "Pound" | "Fluid Ounce" | "Pint" | "Quart" | "Gallon" | "Millilitre" | "Milligram" | "Kilogram"; /** Quantity */ quantity: number; /** Preparation */ preparation: string; /** Productid */ productId?: number | null; /** Recipeid */ recipeId?: number | null; /** Mealid */ mealId?: number | null; product?: components["schemas"]["Product"] | null; }; /** LoginBody */ LoginBody: { /** Username */ username: string; }; /** Meal */ "Meal-Input": { /** * Id * @default -1 */ id: number; /** * Suggesteddate * Format: date-time */ suggestedDate: string; /** Consumeddate */ consumedDate?: string | null; /** Chefs */ chefs?: components["schemas"]["Person"][]; /** Cleanup */ cleanup?: components["schemas"]["Person"][]; /** Consumers */ consumers?: components["schemas"]["Person"][]; /** Recipes */ recipes?: components["schemas"]["MealRecipe-Input"][]; /** Extraingredients */ extraIngredients?: components["schemas"]["Ingredient"][]; /** Purchasedate */ purchaseDate?: string | null; }; /** Meal */ "Meal-Output": { /** * Id * @default -1 */ id: number; /** * Suggesteddate * Format: date-time */ suggestedDate: string; /** Consumeddate */ consumedDate?: string | null; /** Chefs */ chefs?: components["schemas"]["Person"][]; /** Cleanup */ cleanup?: components["schemas"]["Person"][]; /** Consumers */ consumers?: components["schemas"]["Person"][]; /** Recipes */ recipes?: components["schemas"]["MealRecipe-Output"][]; /** Extraingredients */ extraIngredients?: components["schemas"]["Ingredient"][]; /** Purchasedate */ purchaseDate?: string | null; }; /** MealIdWrapper */ MealIdWrapper: { /** Mealid */ mealId: number; }; /** MealRecipe */ "MealRecipe-Input": { /** Mealid */ mealId: number; /** Recipeid */ recipeId: number; /** Servings */ servings: number; recipe?: components["schemas"]["Recipe-Input"] | null; }; /** MealRecipe */ "MealRecipe-Output": { /** Mealid */ mealId: number; /** Recipeid */ recipeId: number; /** Servings */ servings: number; recipe?: components["schemas"]["Recipe-Output"] | null; }; /** Ok */ Ok: { /** * Ok * @default true */ ok: boolean; }; /** Page[Person] */ Page_Person_: { /** Items */ items: components["schemas"]["Person"][]; /** Nextcursor */ nextCursor?: string | null; /** Prevcursor */ prevCursor?: string | null; /** * Total * @description Optional total count */ total?: number | null; }; /** Page[Recipe] */ Page_Recipe_: { /** Items */ items: components["schemas"]["Recipe-Output"][]; /** Nextcursor */ nextCursor?: string | null; /** Prevcursor */ prevCursor?: string | null; /** * Total * @description Optional total count */ total?: number | null; }; /** Person */ Person: { /** * Id * @default -1 */ id: number; /** Name */ name: string; }; /** ProblemDetails */ ProblemDetails: { /** * Type * @default about:blank */ type: string; /** Title */ title: string; /** Status */ status: number; /** Detail */ detail?: string | null; /** Instance */ instance?: string | null; /** Errors */ errors?: Record | null; }; /** Product */ Product: { /** * Id * @default -1 */ id: number; /** Productid */ productId: string; /** Shopcode */ shopCode: string; /** Link */ link: string; /** Name */ name: string; /** Quantity */ quantity: number; /** Unit */ unit: string; /** Imgsmall */ imgSmall: string; /** Imglarge */ imgLarge: string; /** Rawdata */ rawData?: Record | null; }; /** ProductUrl */ ProductUrl: { /** Url */ url: string; /** Tags */ tags?: string[]; }; /** PurchasedShoppingList */ PurchasedShoppingList: { list: components["schemas"]["ShoppingList"]; /** Mealslookup */ mealsLookup?: { [key: string]: components["schemas"]["Meal-Output"]; }; /** Ingredientslookup */ ingredientsLookup?: { [key: string]: components["schemas"]["Ingredient"]; }; /** Recipeslookup */ recipesLookup?: { [key: string]: components["schemas"]["Recipe-Output"]; }; }; /** Recipe */ "Recipe-Input": { /** * Id * @default -1 */ id: number; /** Name */ name: string; /** Link */ link: string; /** Serves */ serves: number; /** Imageurls */ imageUrls?: string[]; /** Ingredients */ ingredients?: components["schemas"]["Ingredient"][]; /** Basedonrecipe */ basedOnRecipe?: number | null; /** * Datecreated * Format: date-time */ dateCreated?: string; /** Createdbyid */ createdById: number | null; createdBy?: components["schemas"]["Person"] | null; /** Datehidden */ dateHidden?: string | null; /** Hiddenbyid */ hiddenById?: number | null; hiddenBy?: components["schemas"]["Person"] | null; }; /** Recipe */ "Recipe-Output": { /** * Id * @default -1 */ id: number; /** Name */ name: string; /** Link */ link: string; /** Serves */ serves: number; /** Imageurls */ imageUrls?: string[]; /** Ingredients */ ingredients?: components["schemas"]["Ingredient"][]; /** Basedonrecipe */ basedOnRecipe?: number | null; /** * Datecreated * Format: date-time */ dateCreated?: string; /** Createdbyid */ createdById: number | null; createdBy?: components["schemas"]["Person"] | null; /** Datehidden */ dateHidden?: string | null; /** Hiddenbyid */ hiddenById?: number | null; hiddenBy?: components["schemas"]["Person"] | null; }; /** ShoppingList */ ShoppingList: { /** * Id * @default -1 */ id: number; /** * Createddate * Format: date-time */ createdDate?: string; /** @default */ storeName: components["schemas"]["StoreEnum"]; /** * Purchasedbyid * @default -1 */ purchasedById: number; purchasedBy?: components["schemas"]["Person"] | null; /** Items */ items?: components["schemas"]["ShoppingListItem"][]; }; /** ShoppingListItem */ ShoppingListItem: { /** * Id * @default -1 */ id: number; /** Listid */ listId?: number | null; /** * Personid * @default -1 */ personId: number; /** Ingredientid */ ingredientId?: number | null; /** Recipeid */ recipeId?: number | null; /** Mealid */ mealId?: number | null; /** * Createddate * Format: date-time */ createdDate?: string; }; /** * StoreEnum * @enum {string} */ StoreEnum: "woolworths" | "coles" | ""; /** ValidationError */ ValidationError: { /** Location */ loc: (string | number)[]; /** Message */ msg: string; /** Error Type */ type: string; }; }; responses: { /** @description Bad Request */ Problem400: { headers: { [name: string]: unknown; }; content: { "application/problem+json": unknown; "application/json": components["schemas"]["ProblemDetails"]; }; }; /** @description Not Found */ Problem404: { headers: { [name: string]: unknown; }; content: { "application/problem+json": unknown; "application/json": components["schemas"]["ProblemDetails"]; }; }; /** @description Validation Error */ Problem422: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ProblemDetails"]; "application/json": components["schemas"]["ProblemDetails"]; }; }; }; parameters: never; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export interface operations { createProduct: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["ProductUrl"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Product"]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; parseRecipe: { parameters: { query: { url: string; }; header?: never; path?: never; cookie: { user_id: number; }; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Recipe-Output"]; }; }; 400: components["responses"]["Problem400"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; parseIngredients: { parameters: { query: { ingredients: string[]; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Ingredient"][]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; listRecipes: { parameters: { query?: { /** @description Optional case-insensitive name filter (matches recipe name with SQL LIKE). */ q?: string | null; /** @description Opaque cursor for pagination. Pass the value returned in nextCursor to fetch the next page. */ cursor?: string | null; /** @description Maximum number of items to return (1-200). */ limit?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description A page of recipes */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "items": [ * { * "id": 1, * "name": "Example Recipe", * "link": "https://example.com/recipes/1", * "serves": 4, * "imageUrls": [], * "ingredients": [] * } * ], * "nextCursor": "2", * "prevCursor": "0", * "total": 1 * } */ "application/json": components["schemas"]["Page_Recipe_"]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; createRecipe: { parameters: { query?: never; header?: never; path?: never; cookie: { user_id: number; }; }; requestBody: { content: { "application/json": components["schemas"]["Recipe-Input"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Recipe-Output"]; }; }; 400: components["responses"]["Problem400"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; getRecipe: { parameters: { query?: never; header?: never; path: { recipe_id: number; }; cookie?: never; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Recipe-Output"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; deleteRecipe: { parameters: { query?: never; header?: never; path: { recipe_id: number; }; cookie: { user_id: number; }; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Recipe-Output"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; getUpcomingMeals: { parameters: { query: { from: string; to: string; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Meal-Output"][]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; getMeal: { parameters: { query?: never; header?: never; path: { meal_id: number; }; cookie?: never; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Meal-Output"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; updateMeal: { parameters: { query?: never; header?: never; path: { meal_id: number; }; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["Meal-Input"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Meal-Output"]; }; }; 400: components["responses"]["Problem400"]; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; deleteMeal: { parameters: { query?: never; header?: never; path: { meal_id: number; }; cookie: { user_id: number; }; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Meal-Output"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; createMeal: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["Meal-Input"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Meal-Output"]; }; }; 400: components["responses"]["Problem400"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; markMealConsumed: { parameters: { query?: { consumed_date?: string | null; }; header?: never; path: { meal_id: number; }; cookie: { user_id: number; }; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Meal-Output"]; }; }; 400: components["responses"]["Problem400"]; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; getCurrentShoppingList: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["CurrentShoppingList"]; }; }; 422: components["responses"]["Problem422"]; }; }; getShoppingList: { parameters: { query?: never; header?: never; path: { list_id: number; }; cookie?: never; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["PurchasedShoppingList"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; purchaseIngredients: { parameters: { query?: never; header?: never; path?: never; cookie: { user_id: number; }; }; requestBody: { content: { "application/json": components["schemas"]["ShoppingList"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["PurchasedShoppingList"]; }; }; 400: components["responses"]["Problem400"]; /** @description Unauthorized (invalid or unknown user) */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": unknown; "application/json": components["schemas"]["ProblemDetails"]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; getMyShoppingList: { parameters: { query?: never; header?: never; path?: never; cookie: { user_id: number; }; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Ingredient"][]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; syncMyShoppingList: { parameters: { query?: never; header?: never; path?: never; cookie: { user_id: number; }; }; requestBody: { content: { "application/json": components["schemas"]["Ingredient"][]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Ingredient"][]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; requestMeal: { parameters: { query?: never; header?: never; path?: never; cookie: { user_id: number; }; }; requestBody: { content: { "application/json": components["schemas"]["MealIdWrapper"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ShoppingListItem"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; unrequestMeal: { parameters: { query?: never; header?: never; path: { meal_id: number; }; cookie: { user_id: number; }; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Ok"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; listPersons: { parameters: { query?: { /** @description Optional case-insensitive name filter (applied after page read; may be pushed to SQL in the future). */ q?: string | null; /** @description Opaque cursor for pagination. Pass the value returned in nextCursor to fetch the next page. */ cursor?: string | null; /** @description Maximum number of items to return (1-200). */ limit?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description A page of persons */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "items": [ * { * "id": 1, * "name": "Ada Lovelace" * } * ], * "nextCursor": "2", * "prevCursor": "0", * "total": 1 * } */ "application/json": components["schemas"]["Page_Person_"]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; createPerson: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["Person"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Person"]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; login: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody: { content: { "application/json": components["schemas"]["LoginBody"]; }; }; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Person"]; }; }; 404: components["responses"]["Problem404"]; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; refresh: { parameters: { query?: never; header?: never; path?: never; cookie: { user_id: number; }; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Person"]; }; }; /** @description Validation Error */ 422: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HTTPValidationError"]; }; }; }; }; healthz_healthz_get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Successful Response */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["HealthStatus"]; }; }; }; }; }