{
    "openapi": "3.0.0",
    "info": {
        "title": "Beyond Body api documentation",
        "version": "0.0.1"
    },
    "paths": {
        "/api/v3/clients/me": {
            "get": {
                "tags": [
                    "Client"
                ],
                "description": "Get client profile",
                "operationId": "getClient",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "name": "string",
                                        "surname": "string",
                                        "email": "string",
                                        "code": "string",
                                        "country": "string",
                                        "gender": "string",
                                        "unit_system": "string",
                                        "age": 18,
                                        "height": 170,
                                        "weight": 70
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Client"
                ],
                "description": "Save client data",
                "operationId": "saveClient",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "description": "Client Name",
                                        "type": "string"
                                    },
                                    "surname": {
                                        "description": "Client Surname",
                                        "type": "string"
                                    },
                                    "unit_system": {
                                        "description": "Metric or imperial",
                                        "type": "string"
                                    },
                                    "age": {
                                        "description": "Client Age",
                                        "type": "integer"
                                    },
                                    "height": {
                                        "description": "Client Height",
                                        "type": "integer"
                                    },
                                    "weight": {
                                        "description": "Client Weight",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Client data was updated"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/clients/subscription": {
            "get": {
                "tags": [
                    "Client"
                ],
                "description": "Get Client Subscription Details",
                "operationId": "getSubscriptionDetails",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "duration": 6,
                                        "durationType": "months",
                                        "memberSince": "2023-05-09",
                                        "activeUntil": "2023-11-09",
                                        "nextPayment": "2023-11-09",
                                        "availableFeatures": "[]",
                                        "subscriptionStatus": "active",
                                        "isRenewable": "true",
                                        "subscriptionType": "standard"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/clients/delete": {
            "post": {
                "tags": [
                    "Client"
                ],
                "description": "Delete Client from all databases and 3 parties",
                "operationId": "deleteClient",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "reason": {
                                        "description": "Reason why client decided to delete account",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success",
                        "content": {}
                    }
                }
            }
        },
        "/api/v3/clients/first/login": {
            "post": {
                "tags": [
                    "Client"
                ],
                "description": "Check if its clients first login into the app",
                "operationId": "isFirstLogIn",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/clients/churn/status": {
            "get": {
                "tags": [
                    "Client"
                ],
                "description": "Get Client Churn Status",
                "operationId": "getClientChurnStatus",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "willChurn": true,
                                        "version": 1
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/client/metrics": {
            "get": {
                "tags": [
                    "ClientMetrics"
                ],
                "description": "Get Client Metrics",
                "operationId": "getClientMetrics",
                "parameters": [
                    {
                        "parameter": "type",
                        "name": "type",
                        "in": "query",
                        "description": "Get Client Metrics Type",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "water_intake",
                                "steps",
                                "weight",
                                "sleep",
                                "workout"
                            ]
                        }
                    },
                    {
                        "parameter": "period",
                        "name": "period",
                        "in": "query",
                        "description": "Period of records",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "day",
                                "week",
                                "month",
                                "six_months",
                                "year"
                            ]
                        }
                    },
                    {
                        "parameter": "date",
                        "name": "date",
                        "in": "query",
                        "description": "Date of client",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "parameter": "limit",
                        "name": "limit",
                        "in": "query",
                        "description": "Limit of records",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "parameter": "order",
                        "name": "order",
                        "in": "query",
                        "description": "Order",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asc",
                                "desc"
                            ]
                        }
                    },
                    {
                        "parameter": "orderBy",
                        "name": "orderBy",
                        "in": "query",
                        "description": "Order By Type",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id",
                                "datetime",
                                "value"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "type": "sleep",
                                        "goal": 8,
                                        "all_time_achieved_goal_days": 0,
                                        "resources": [
                                            {
                                                "id": 1,
                                                "type": "sleep",
                                                "date_time": "2023-04-27 12:10:58",
                                                "value": 8
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "ClientMetrics"
                ],
                "description": "Save Client Metrics",
                "operationId": "saveClientMetric",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "type": {
                                        "description": "Metric Type",
                                        "type": "string"
                                    },
                                    "value": {
                                        "description": "Metric Type Value",
                                        "type": "integer|float"
                                    },
                                    "date": {
                                        "description": "Date",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Metric was successfully saved for the Client"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/client/metrics/first": {
            "get": {
                "tags": [
                    "ClientMetrics"
                ],
                "description": "Get first metric for the client",
                "operationId": "getFirstMetric",
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "water_intake",
                                "steps",
                                "weight",
                                "sleep",
                                "workout",
                                "waist",
                                "arms",
                                "thighs"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MetricResource"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/client/metrics/set/goal": {
            "post": {
                "tags": [
                    "ClientMetrics"
                ],
                "description": "Save Client Metric Goal",
                "operationId": "setClientGoal",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "type": {
                                        "description": "Metric Type",
                                        "type": "string"
                                    },
                                    "value": {
                                        "description": "Metric Type Value",
                                        "type": "number",
                                        "format": "float"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Goal was successfully set for the Client"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/favorites": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Client Favorite Meals",
                "operationId": "getFavorites",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "title": "string",
                                            "photos": {
                                                "original": "Photo URL",
                                                "1000": "Photo URL",
                                                "600": "Photo URL",
                                                "100": "Photo URL"
                                            },
                                            "repastId": 1,
                                            "calories": 500,
                                            "preparationTime": 10,
                                            "rating": 4.3,
                                            "isFavorite": true
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Set Meal to Favorite",
                "operationId": "setFavorite",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "recipeId": {
                                        "description": "Recipe Id",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Meal was added to favorites"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/favorites/remove": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Remove Meal from Favorites",
                "operationId": "removeFavorite",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "recipeId": {
                                        "description": "Recipe Id",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Meal was removed from favorites"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/ingredients": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Ingredient Meals for a day",
                "operationId": "getIngredientMealPlan",
                "parameters": [
                    {
                        "parameter": "week",
                        "name": "week",
                        "in": "query",
                        "description": "week of a meal plan",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4"
                            ]
                        }
                    },
                    {
                        "parameter": "day",
                        "name": "day",
                        "in": "query",
                        "description": "day of the week",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 5186,
                                            "clientId": 100,
                                            "mealTypeId": 2032,
                                            "status": "pending",
                                            "title": "Breakfast",
                                            "mealTitle": "Porridge with Seeds",
                                            "preparationTime": 20,
                                            "calories": 315,
                                            "ingredientCount": 1,
                                            "nutrition": {
                                                "fat": 6.12,
                                                "carbs": 55.08,
                                                "protein": 12.24
                                            },
                                            "mealGuide": {
                                                "instructions": "1. abc.\\r\\n2. abc.\\r\\n3. abc\\r\\n\\r\\nNOTE instructions.",
                                                "shortInstructions": "short instructions",
                                                "photo": "https://meal-workouts-prod.s3.amazonaws.com/meals/mealtypes/original/0b2920240d4e4a28cf498b2065ddc8fa.jpg"
                                            },
                                            "ingredients": [
                                                {
                                                    "id": 200,
                                                    "externalId": 200,
                                                    "amount": 60.18,
                                                    "units": "g",
                                                    "name": "White Quinoa, dry",
                                                    "photo": "https://meal-workouts-prod.s3.amazonaws.com/meals/ingredients/360x360/RCP1eaOnYoVGT3xgvCZ2cOxSRZeX1kTYBTVuCXZz.png",
                                                    "measurements": "1/3 cup",
                                                    "alternativesCount": 2,
                                                    "calories": 50
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/ingredients/alternatives": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Ingredient alternatives",
                "operationId": "getIngredientAlternatives",
                "parameters": [
                    {
                        "parameter": "mealId",
                        "name": "mealId",
                        "in": "query",
                        "description": "meal Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "parameter": "ingredientId",
                        "name": "ingredientId",
                        "in": "query",
                        "description": "Ingredient Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "parameter": "externalIngredientId",
                        "name": "externalIngredientId",
                        "in": "query",
                        "description": "External Ingredient Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 200,
                                            "photo": "https://meal-workouts-prod.s3.amazonaws.com/meals/ingredients/360x360/RCP1eaOnYoVGT3xgvCZ2cOxSRZeX1kTYBTVuCXZz.png",
                                            "name": "White Quinoa, dry",
                                            "calories": 400
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/ingredients/change": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Change Ingredient For A Meal",
                "operationId": "changeIngredient",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "mealId": {
                                        "description": "Meal Id",
                                        "type": "integer"
                                    },
                                    "ingredientId": {
                                        "description": "Ingredient Id",
                                        "type": "integer"
                                    },
                                    "externalIngredientId": {
                                        "description": "External Ingredient Id",
                                        "type": "integer"
                                    },
                                    "newIngredientId": {
                                        "description": "New Ingredient Id",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Ingredient was successfully changed"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/ingredients/status": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Set Meal Status",
                "operationId": "setMealStatus",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "mealId": {
                                        "description": "Meal Id",
                                        "type": "integer"
                                    },
                                    "status": {
                                        "description": "Meal status",
                                        "type": "string",
                                        "enum": [
                                            "skip",
                                            "done",
                                            "pending"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Meal status was successfully changed"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/ingredients/meal/alternatives": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Meal Alternatives",
                "operationId": "getMealAlternatives",
                "parameters": [
                    {
                        "parameter": "externalClientId",
                        "name": "externalClientId",
                        "in": "query",
                        "description": "External Client Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "parameter": "mealId",
                        "name": "mealId",
                        "in": "query",
                        "description": "meal Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "parameter": "mealTypeId",
                        "name": "mealTypeId",
                        "in": "query",
                        "description": "Meal Type Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": [
                                    {
                                        "mealType": {
                                            "id": 1918,
                                            "repast_id": 1,
                                            "repast": {
                                                "id": 1,
                                                "key": "breakfast",
                                                "title": "Breakfast",
                                                "created_at": "2020-02-25T12:30:11.000000Z",
                                                "updated_at": "2020-02-25T12:30:11.000000Z"
                                            },
                                            "recipe_category_type_id": 23,
                                            "recipe_category_type": {
                                                "id": 23,
                                                "title": "Sandwiches"
                                            },
                                            "title": "Sandwich (breads/hummus/leafy greens/vegetable/vegan cheese)",
                                            "instructions": "Layer the toasted bread with leafy greens, hummus, sliced cheese, and sliced vegetables. Enjoy!",
                                            "short_name": "Sandwich with Hummus",
                                            "short_instructions": null,
                                            "preparation_time": 5,
                                            "photo": "https://mwcdn.inthecloud.ai/meals/mealtypes/600x600/9dd07eaec30f990ec6b02c3e2625cbaa.jpg",
                                            "photos": {
                                                "original": "https://mwcdn.inthecloud.ai/meals/mealtypes/original/9dd07eaec30f990ec6b02c3e2625cbaa.jpg",
                                                "1000": "https://mwcdn.inthecloud.ai/meals/mealtypes/1000x1000/9dd07eaec30f990ec6b02c3e2625cbaa.jpg",
                                                "600": "https://mwcdn.inthecloud.ai/meals/mealtypes/600x600/9dd07eaec30f990ec6b02c3e2625cbaa.jpg",
                                                "100": "https://mwcdn.inthecloud.ai/meals/mealtypes/100x100/9dd07eaec30f990ec6b02c3e2625cbaa.jpg"
                                            },
                                            "video": null,
                                            "status": 0,
                                            "created_at": "2020-11-12T13:21:53.000000Z",
                                            "updated_at": "2021-02-17T10:39:20.000000Z",
                                            "deleted_at": null,
                                            "slots": [
                                                {
                                                    "id": 11067,
                                                    "meal_type_id": 1918,
                                                    "title": "Hummus",
                                                    "calorie_share": 38,
                                                    "created_at": "2020-11-12T13:21:53.000000Z",
                                                    "updated_at": "2020-11-12T13:21:53.000000Z"
                                                }
                                            ],
                                            "nutrition": {
                                                "fat": 18,
                                                "protein": 28,
                                                "carbs": 61,
                                                "calories": 533
                                            }
                                        },
                                        "ingredients": [
                                            {
                                                "ingredient_id": 196,
                                                "amount": 114,
                                                "units": "g",
                                                "ingredient": {
                                                    "title": "Hummus",
                                                    "photo": "https://mwcdn.inthecloud.ai/meals/ingredients/200x200/MU7GiuDmgMuoTqV5amh2Vd6KqQZr6pWAnK5rhSlI.png"
                                                }
                                            }
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/ingredients/change/meal": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Change Meal",
                "operationId": "changeMeal",
                "parameters": [
                    {
                        "parameter": "mealId",
                        "name": "mealId",
                        "in": "query",
                        "description": "meal Id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "parameter": "newMeal",
                        "name": "newMeal",
                        "in": "query",
                        "description": "New Meal Array, newMeal={ mealType={}, ingredients= {} }",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {}
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Meal was successfully changed"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/generate": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Generate Meal Plan",
                "operationId": "generatePlan",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "mealType": {
                                        "description": "Meal Type",
                                        "type": "string",
                                        "enum": [
                                            "recipe",
                                            "customMealPlan"
                                        ]
                                    },
                                    "dietTypeId": {
                                        "description": "Diet Type Id",
                                        "type": "integer",
                                        "enum": [
                                            "1"
                                        ]
                                    },
                                    "quizAnswers": {
                                        "description": "Quiz Answers",
                                        "type": "string",
                                        "example": {
                                            "weight": "180",
                                            "target_weight": "160",
                                            "omit_veggies": [
                                                "carrots"
                                            ],
                                            "omit_carbs": [
                                                "pasta"
                                            ],
                                            "omit_fruits": [
                                                "banana"
                                            ],
                                            "omit_nonos": [
                                                "eggs"
                                            ],
                                            "allergies": [
                                                "fish"
                                            ],
                                            "need_to_know": [
                                                "diabetes"
                                            ],
                                            "active": 1
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Meal Plan was requested"
                                }
                            }
                        }
                    }
                },
                "deprecated": true
            }
        },
        "/api/v3/meals/plan/status": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Plan Status",
                "operationId": "getPlanStatus",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "status": "string",
                                        "clientId": 1,
                                        "planType": "string",
                                        "dietTypeId": 1,
                                        "count": 1,
                                        "generationDatetime": "2023-05-16 13:05:24",
                                        "startDatetime": "2023-05-16 13:05:24",
                                        "planFromBook": 1
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Meals for a day",
                "operationId": "getMealPlan",
                "parameters": [
                    {
                        "parameter": "week",
                        "name": "week",
                        "in": "query",
                        "description": "week of a meal plan",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4"
                            ]
                        }
                    },
                    {
                        "parameter": "day",
                        "name": "day",
                        "in": "query",
                        "description": "day of the week",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "recipeId": 1,
                                            "title": "string",
                                            "photos": [
                                                "photo URL",
                                                "photo URL"
                                            ],
                                            "repast": "string",
                                            "repastId": 1,
                                            "calories": 500,
                                            "preparationTime": 10,
                                            "rating": 4.3,
                                            "isFavorite": false,
                                            "status": "string"
                                        },
                                        [
                                            "......"
                                        ]
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/start/date": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Set Start Date Time",
                "operationId": "setStartDate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "startDateTime": {
                                        "description": "Start Date Time",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Start date was updated"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/progress": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Nutrition progress for a day",
                "operationId": "getNutritionProgress",
                "parameters": [
                    {
                        "parameter": "week",
                        "name": "week",
                        "in": "query",
                        "description": "week of a meal plan",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4"
                            ]
                        }
                    },
                    {
                        "parameter": "day",
                        "name": "day",
                        "in": "query",
                        "description": "day of the week",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7"
                            ]
                        }
                    },
                    {
                        "parameter": "date",
                        "name": "date",
                        "in": "query",
                        "description": "date",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "goal": {
                                        "calories": 1931,
                                        "protein": 66,
                                        "carbs": 206,
                                        "fat": 126
                                    },
                                    "eaten": {
                                        "calories": 637,
                                        "protein": 21,
                                        "carbs": 70,
                                        "fat": 42
                                    },
                                    "burnedCalories": 112
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/reset": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Reset meal plan to default",
                "operationId": "resetMealPlan",
                "responses": {
                    "204": {
                        "description": "Success",
                        "content": {}
                    }
                }
            }
        },
        "/api/v3/meals/categories": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Meal Categories",
                "operationId": "getMealCategories",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "title": "Stews"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe/get": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Client Meal Recipe",
                "operationId": "getRecipe",
                "parameters": [
                    {
                        "parameter": "clientMealId",
                        "name": "clientMealId",
                        "in": "query",
                        "description": "Client Meal Id",
                        "required": true,
                        "schema": {
                            "type": "int"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "title": "string",
                                            "instructions": "string",
                                            "photos": [
                                                "Photo URL",
                                                "Photo URL"
                                            ],
                                            "nutrients": {
                                                "fat": 20,
                                                "carbs": 15,
                                                "protein": 10
                                            },
                                            "ingredients": [
                                                {
                                                    "id": 87,
                                                    "title": "Strawberries",
                                                    "is_liquid": false,
                                                    "amount": "75.00",
                                                    "measurement": "6 medium, sliced",
                                                    "measurement_size": "6.00",
                                                    "measurement_unit": "medium",
                                                    "measurement_modifier": "sliced",
                                                    "user_friendly_measurement": true
                                                }
                                            ],
                                            "calories": 400,
                                            "rating": 4.3,
                                            "clientRating": 0
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Set Meal Recipe status",
                "operationId": "setRecipeStatus",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "clientMealId": {
                                        "description": "Meal Recipe Id",
                                        "type": "integer"
                                    },
                                    "status": {
                                        "description": "Action Status",
                                        "type": "string",
                                        "enum": [
                                            "skip",
                                            "done"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Meal Recipe status was changed"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe/alternatives": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Meal Recipe alternatives",
                "operationId": "getRecipeAlternatives",
                "parameters": [
                    {
                        "parameter": "alternativeCount",
                        "name": "alternativeCount",
                        "in": "query",
                        "description": "Alternative Count",
                        "required": true,
                        "schema": {
                            "type": "int"
                        }
                    },
                    {
                        "parameter": "clientMealId",
                        "name": "clientMealId",
                        "in": "query",
                        "description": "client meal Id",
                        "required": true,
                        "schema": {
                            "type": "int"
                        }
                    },
                    {
                        "parameter": "page",
                        "name": "page",
                        "in": "query",
                        "description": "page",
                        "required": true,
                        "schema": {
                            "type": "int"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "title": "string",
                                            "photos": {
                                                "original": "https://mwcdn.inthecloud.ai/meals/recipes/original/568ba470cce3cbe2fcedab4259e99c8e.jpg",
                                                "1000": "https://mwcdn.inthecloud.ai/meals/recipes/1000x1000/568ba470cce3cbe2fcedab4259e99c8e.jpg",
                                                "600": "https://mwcdn.inthecloud.ai/meals/recipes/600x600/568ba470cce3cbe2fcedab4259e99c8e.jpg",
                                                "100": "https://mwcdn.inthecloud.ai/meals/recipes/100x100/568ba470cce3cbe2fcedab4259e99c8e.jpg"
                                            },
                                            "calories": 500,
                                            "preparationTime": 10,
                                            "rating": 4.3
                                        },
                                        [
                                            "......"
                                        ]
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe/alternative": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Single Recipe Alternative",
                "operationId": "getSingleAlternative",
                "parameters": [
                    {
                        "parameter": "mealId",
                        "name": "mealId",
                        "in": "query",
                        "description": "Meal Id",
                        "required": true,
                        "schema": {
                            "type": "int"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "title": "string",
                                            "instructions": "string",
                                            "photos": [
                                                "Photo URL",
                                                "Photo URL"
                                            ],
                                            "nutrients": {
                                                "fat": 20,
                                                "carbs": 15,
                                                "protein": 10
                                            },
                                            "ingredients": [
                                                {
                                                    "id": 87,
                                                    "title": "Strawberries",
                                                    "is_liquid": false,
                                                    "amount": "75.00",
                                                    "measurement": "6 medium, sliced",
                                                    "measurement_size": "6.00",
                                                    "measurement_unit": "medium",
                                                    "measurement_modifier": "sliced",
                                                    "user_friendly_measurement": true
                                                }
                                            ],
                                            "calories": 400,
                                            "rating": 4.3
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe/change": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Change Client Recipe",
                "operationId": "changeRecipe",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "newMealId": {
                                        "description": "New Meal Id",
                                        "type": "integer"
                                    },
                                    "clientMealId": {
                                        "description": "Client Meal Id",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Client Meal Recipe was changed"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe/change/batch": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Change Meals Recipe Batch",
                "operationId": "changeRecipesInBatch",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "newRecipeId": {
                                        "title": "New Recipe Id",
                                        "description": "New Recipe Id",
                                        "type": "integer"
                                    },
                                    "repastId": {
                                        "title": "Repast Id",
                                        "description": "Repast Id",
                                        "type": "integer"
                                    },
                                    "days": {
                                        "description": "Days",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Client Meal Recipes were changed"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe/rate": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Rate Client Recipe",
                "operationId": "rateRecipe",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "action": {
                                        "description": "Action name",
                                        "type": "string",
                                        "enum": [
                                            "whole_plan_comment",
                                            "recipe_review"
                                        ]
                                    },
                                    "recipeId": {
                                        "description": "recipe Id",
                                        "type": "integer"
                                    },
                                    "rating": {
                                        "description": "Rating|Nullable",
                                        "type": "integer"
                                    },
                                    "week": {
                                        "description": "Week",
                                        "type": "integer"
                                    },
                                    "day": {
                                        "description": "Day",
                                        "type": "integer"
                                    },
                                    "comment": {
                                        "description": "Comment|Nullable",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Client Meal Recipe was rated"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/meals/recipe/alternatives/search": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Search Recipe Alternatives",
                "operationId": "searchRecipeAlternatives",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "search": {
                                        "description": "Search Query",
                                        "type": "string"
                                    },
                                    "categoriesIds": {
                                        "description": "Categories Ids",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "repastId": {
                                        "description": "Repast Id",
                                        "type": "integer"
                                    },
                                    "caloriesFrom": {
                                        "description": "Calories From",
                                        "type": "integer"
                                    },
                                    "caloriesTo": {
                                        "description": "Calories To",
                                        "type": "integer"
                                    },
                                    "page": {
                                        "description": "Page",
                                        "type": "integer"
                                    },
                                    "limit": {
                                        "description": "Limit of items in page",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "alternatives": [
                                            {
                                                "id": 132,
                                                "title": "Pasta with Tuna, Pesto, and Arugula",
                                                "photos": {
                                                    "original": "https://mwcdn.inthecloud.ai/meals/recipes/600x600/e2d8f4bf5676475193cbcf3d8f7694a5.jpg"
                                                },
                                                "rating": 4.3,
                                                "preparationTime": 15,
                                                "calories": 458
                                            }
                                        ],
                                        "meta": {
                                            "currentPage": 1,
                                            "lastPage": 10,
                                            "totalAlternatives": 57
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/webhooks/mealplan-generated": {
            "post": {
                "tags": [
                    "Callbacks"
                ],
                "description": "MW Meal Plan Webhook",
                "operationId": "mwMealPlanWebhook",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "type": {
                                        "description": "Meal Type",
                                        "type": "string",
                                        "enum": [
                                            "recipe",
                                            "customMealPlan"
                                        ]
                                    },
                                    "status": {
                                        "description": "Status",
                                        "type": "string",
                                        "enum": [
                                            "done",
                                            "failed"
                                        ]
                                    },
                                    "client_id": {
                                        "description": "Client id",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    },
                    "404": {
                        "description": "Client not found"
                    }
                }
            }
        },
        "/api/v3/oboarding": {
            "get": {
                "tags": [
                    "Onboarding"
                ],
                "description": "Get onboarding data",
                "operationId": "getOnboardingData",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "image_url": {
                                                        "type": "string"
                                                    },
                                                    "text": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/onboarding": {
            "get": {
                "tags": [
                    "Project"
                ],
                "summary": "Get onboarding",
                "description": "Get onboarding config",
                "operationId": "getOnboarding",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "Onboarding": {
                                            "$ref": "#/components/schemas/OnboardingResource"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/languages": {
            "get": {
                "tags": [
                    "Project"
                ],
                "summary": "Get languages",
                "description": "Get languages config",
                "operationId": "getlanguages",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "Language": {
                                            "$ref": "#/components/schemas/LanguageResource"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/quiz": {
            "get": {
                "tags": [
                    "Quiz"
                ],
                "description": "Get Quiz",
                "operationId": "getQuiz",
                "parameters": [
                    {
                        "parameter": "quizType",
                        "name": "quizType",
                        "in": "query",
                        "description": "Quiz type to get",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "meal",
                                "workout"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "questions": [
                                        {
                                            "label": "question label",
                                            "key": "question key",
                                            "type": "question type",
                                            "minimum_required": 1,
                                            "maximum": 4,
                                            "options": [
                                                {
                                                    "label": "option label",
                                                    "value": "option value"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/shopping-list": {
            "get": {
                "tags": [
                    "Shopping List"
                ],
                "description": "Get shopping List",
                "operationId": "getShoppingList",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "ingredients": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "amount": {
                                                                    "type": "integer"
                                                                },
                                                                "image": {
                                                                    "type": "string"
                                                                },
                                                                "is_liquid": {
                                                                    "type": "boolean"
                                                                },
                                                                "quantity": {
                                                                    "properties": {
                                                                        "unit_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "key": {
                                                                            "type": "string"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "integer"
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            },
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Shopping List"
                ],
                "description": "Remove shopping List",
                "operationId": "deleteShoppingList",
                "responses": {
                    "204": {
                        "description": "Resource deleted successfully"
                    },
                    "404": {
                        "description": "Resource not found"
                    }
                }
            }
        },
        "/api/v3/shopping-list/generate": {
            "post": {
                "tags": [
                    "Shopping List"
                ],
                "description": "Generate shopping List",
                "operationId": "createShoppingList",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "days"
                                ],
                                "properties": {
                                    "days": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "ingredients": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "amount": {
                                                                    "type": "integer"
                                                                },
                                                                "image": {
                                                                    "type": "string"
                                                                },
                                                                "is_liquid": {
                                                                    "type": "boolean"
                                                                },
                                                                "quantity": {
                                                                    "properties": {
                                                                        "unit_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "key": {
                                                                            "type": "string"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "integer"
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            },
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "api/actions/client/subscription/cancel": {
            "post": {
                "tags": [
                    "Subscription"
                ],
                "summary": "Remove a client's subscription",
                "description": "Remove a client's subscription.",
                "operationId": "22d4fc480e232874c0a6e1fa33dc08c3",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "clientCode",
                                    "product",
                                    "reason"
                                ],
                                "properties": {
                                    "clientCode": {
                                        "type": "string",
                                        "example": "client123"
                                    },
                                    "product": {
                                        "type": "string",
                                        "enum": [
                                            "product_type",
                                            "product2_type"
                                        ],
                                        "example": "product_type"
                                    },
                                    "reason": {
                                        "type": "string",
                                        "example": "Customer requested cancelation"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Subscription successfully removed",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Client subscription canceled"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Client or subscription not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Client or subscription not found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/generate/plan": {
            "post": {
                "tags": [
                    "Workouts"
                ],
                "description": "Generate workout plan",
                "operationId": "generateWorkoutPlan",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "fitness_goal": {
                                        "description": "Fitness Goal",
                                        "type": "string"
                                    },
                                    "fitness_level": {
                                        "description": "Fitness Level",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "title": "Stay Strong",
                                        "id": 17,
                                        "description": "This challenge features full-body 15–45min workouts that...",
                                        "photo": "Photo URL",
                                        "photos": {
                                            "original": "Photo URL",
                                            "200": "Photo URL 200x200",
                                            "360": "Photo URL 360x360"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/attach/plan": {
            "post": {
                "tags": [
                    "Workouts"
                ],
                "description": "Attach workout plan to the Client",
                "operationId": "attachPlan",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "plan_id": {
                                        "description": "Plan Id",
                                        "type": "integer"
                                    },
                                    "plan_title": {
                                        "description": "Plan Title",
                                        "type": "string"
                                    },
                                    "photo": {
                                        "description": "Photo Url",
                                        "type": "string"
                                    },
                                    "datetime": {
                                        "description": "2023-05-03",
                                        "type": "string",
                                        "format": "date"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Workout plan was successfully attached to the Client"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/get/plan": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get workout plan for the Client",
                "operationId": "getPlan",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "plan": {
                                            "week1": [
                                                {
                                                    "plan_workout_id": 314,
                                                    "workout_id": 100,
                                                    "day": 1,
                                                    "title": "Stockholm",
                                                    "photo": "Photo URL",
                                                    "photos": {
                                                        "original": "Photo URL",
                                                        "200": "Photo URL 200x200",
                                                        "360": "Photo URL 360x360"
                                                    },
                                                    "level": "Advanced",
                                                    "duration": 12,
                                                    "calories": 112,
                                                    "equipment": "[]",
                                                    "muscle_group": {
                                                        "name": "Full body",
                                                        "photo": "Photo URL"
                                                    },
                                                    "status": [
                                                        "pending|completed"
                                                    ]
                                                }
                                            ],
                                            "week2": "[......]",
                                            "week3": "[......]",
                                            "week4": "[......]"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/get/plan/details": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get workout plan details for the Client",
                "operationId": "getPlanDetails",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "id": 18,
                                        "title": "Stay Strong",
                                        "photo": "Photo Url",
                                        "plan_generated_date": "2023-05-03"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/get/workout/{workoutId}": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get single workout for the Client",
                "operationId": "getWorkout",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "workout_id": 100,
                                        "title": "Stockholm",
                                        "photo": "Photo URL",
                                        "photos": {
                                            "original": "Photo URL",
                                            "200": "Photo URL 200x200",
                                            "360": "Photo URL 360x360"
                                        },
                                        "level": "Advanced",
                                        "duration": 12,
                                        "calories": 112,
                                        "rounds": 1,
                                        "equipment": "",
                                        "equipments": "[]",
                                        "muscle_group": {
                                            "name": "Full body",
                                            "photo": "Photo URL"
                                        },
                                        "exercises": {
                                            "warm_up": [
                                                {
                                                    "id": 167,
                                                    "title": "High Kicks",
                                                    "photo": "Photo URL",
                                                    "photos": {
                                                        "original": "Photo URL",
                                                        "200": "Photo URL 200x200",
                                                        "360": "Photo URL 360x360"
                                                    },
                                                    "video": "Video URL",
                                                    "duration": 12,
                                                    "reps": 0,
                                                    "exercise_type": "warmUp",
                                                    "gender": "Female",
                                                    "running_level": 2,
                                                    "level": "All",
                                                    "equipment": "",
                                                    "equipments": "[]",
                                                    "body_part": "Upper body",
                                                    "primary_muscles": [
                                                        {
                                                            "id": 8,
                                                            "title": "Glutes"
                                                        },
                                                        {
                                                            "id": 9,
                                                            "title": "Hamstrings"
                                                        }
                                                    ],
                                                    "secondary_muscles": [
                                                        {
                                                            "id": 14,
                                                            "title": "Lower back"
                                                        }
                                                    ],
                                                    "description": {
                                                        "form": null,
                                                        "breathing": "Breathe slowly and avoid....",
                                                        "tips": "Don’t let your front knee....",
                                                        "common_mistakes": "Keep facing forward and maintain....",
                                                        "description": "1. Stand tall with your feet shoulder-width apart....."
                                                    },
                                                    "audio": "[]",
                                                    "rest": 5
                                                }
                                            ],
                                            "exercise": "[......]",
                                            "stretching": "[......]"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/get/exercise/{exercise}": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get single exercise for the Client",
                "operationId": "getExercise",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "id": 167,
                                        "title": "High Kicks",
                                        "photo": "Photo URL",
                                        "photos": {
                                            "original": "Photo URL",
                                            "200": "Photo URL 200x200",
                                            "360": "Photo URL 360x360"
                                        },
                                        "video": "Video URL",
                                        "duration": 12,
                                        "reps": 0,
                                        "exercise_type": "warmUp",
                                        "gender": "Female",
                                        "running_level": 2,
                                        "level": "All",
                                        "equipment": "",
                                        "equipments": "[]",
                                        "body_part": "Upper body",
                                        "primary_muscles": [
                                            {
                                                "id": 8,
                                                "title": "Glutes"
                                            },
                                            {
                                                "id": 9,
                                                "title": "Hamstrings"
                                            }
                                        ],
                                        "secondary_muscles": [
                                            {
                                                "id": 14,
                                                "title": "Lower back"
                                            }
                                        ],
                                        "description": {
                                            "form": null,
                                            "breathing": "Breathe slowly and avoid....",
                                            "tips": "Don’t let your front knee....",
                                            "common_mistakes": "Keep facing forward and maintain....",
                                            "description": "1. Stand tall with your feet shoulder-width apart....."
                                        },
                                        "audio": "[]",
                                        "rest": 5
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/complete/workout": {
            "post": {
                "tags": [
                    "Workouts"
                ],
                "description": "Complete workout",
                "operationId": "completeWorkout",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "plan_workout_id": {
                                        "description": "Plan Workout Id",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Workout has been successfully completed"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/rate/workout": {
            "post": {
                "tags": [
                    "Workouts"
                ],
                "description": "Rate workout",
                "operationId": "rateWorkout",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "workout_id": {
                                        "description": "Workout ID",
                                        "type": "integer"
                                    },
                                    "rate": {
                                        "description": "Rate score",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "true",
                                    "message": "Workout has been successfully rated"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/status": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get Client Workout Status",
                "operationId": "getWorkoutStatus",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "hasWorkouts": true,
                                        "workoutsGenerated": false
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Workouts"
                ],
                "description": "Set Workout Status",
                "operationId": "setWorkoutStatus",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "status": {
                                        "description": "Workout Status",
                                        "type": "enum",
                                        "enum": [
                                            "active",
                                            "canceled"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "true",
                                    "message": "Workout status was changed to :status"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/explore": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get Workouts Explore",
                "operationId": "getExploreWorkouts",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 3,
                                            "title": "Quick Workouts",
                                            "level": "All",
                                            "workouts": [
                                                {
                                                    "id": 193,
                                                    "title": "Abs Express",
                                                    "level": "Beginner",
                                                    "duration": 7,
                                                    "photos": "https://mwcdn.inthecloud.ai/workouts/workouts/original/ea4ecd01333298e5ddb770ba3d847034.jpg"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/plans/explore": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get Workouts Plans Explore",
                "operationId": "getExploreWorkoutsPlans",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 3,
                                            "title": "Just Started",
                                            "level": "Beginner",
                                            "workouts": [
                                                {
                                                    "id": 2,
                                                    "title": "Beginner Basics",
                                                    "level": "Beginner",
                                                    "duration": 4,
                                                    "photos": "https://mwcdn.inthecloud.ai/workouts/workouts/original/ea4ecd01333298e5ddb770ba3d847034.jpg"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/monthly/challenge": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get Monthly Challenge",
                "operationId": "getMonthlyChallenge",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "id": 3,
                                        "title": "Just Started",
                                        "photo": "photo url",
                                        "durationInWeek": 4,
                                        "level": "Beginner"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/workouts/plan/{planId}": {
            "get": {
                "tags": [
                    "Workouts"
                ],
                "description": "Get Single Workout Plan",
                "operationId": "getSinglePlan",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "id": 3,
                                        "title": "Just Started",
                                        "photo": "photo url",
                                        "durationInWeek": 4,
                                        "level": "Beginner",
                                        "equipment": "",
                                        "description": "description",
                                        "workouts": [
                                            {
                                                "id": 1,
                                                "title": "Beginner HIIT",
                                                "level": "Beginner",
                                                "photo": "https://mwcdn.inthecloud.ai/workouts/workouts/360x360/735720a26faaa4cee7f8ee63d5a4e678.jpg",
                                                "durationInMin": 12
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/zendesk/subscription/cancel": {
            "get": {
                "tags": [
                    "Zendesk"
                ],
                "description": "Api for zendesk integration, which allow to cancel subscription.",
                "operationId": "zendesk_cancel_subscription",
                "responses": {
                    "200": {
                        "description": "No content"
                    },
                    "400": {
                        "description": "Subscription already canceled or in_app"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "401": {
                        "description": "Token not in the list of allowed tokens"
                    }
                }
            }
        },
        "/api/v1/zendesk/subscription/{email}": {
            "get": {
                "tags": [
                    "Zendesk"
                ],
                "description": "Api for zendesk integration, which allow to take subscription by emails.",
                "operationId": "zendesk_get_subscriptions",
                "responses": {
                    "200": {
                        "description": "List of subscriptions"
                    },
                    "404": {
                        "description": "Client not found"
                    },
                    "401": {
                        "description": "Token not in the list of allowed tokens"
                    }
                }
            }
        },
        "/api/v1/webhooks/book-callbacks/completed": {
            "post": {
                "tags": [
                    "Callbacks"
                ],
                "description": "Success book callback",
                "operationId": "book_callbacks_completed",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "book_uuid": {
                                        "description": "Book uuid",
                                        "type": "uuid"
                                    },
                                    "status": {
                                        "description": "Status",
                                        "type": "string"
                                    },
                                    "file_url": {
                                        "description": "File url",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "example": {
                                "book_uuid": "0778b800-5698-43ae-a543-4f9736a7a5b6",
                                "status": "completed",
                                "file_url": "https://test.com"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Response with status",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "ok"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/webhooks/book-callbacks/failed": {
            "post": {
                "tags": [
                    "Callbacks"
                ],
                "description": "Failed book callback",
                "operationId": "book_callbacks_failed",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "book_uuid": {
                                        "description": "Book uuid",
                                        "type": "uuid"
                                    },
                                    "status": {
                                        "description": "Status",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "example": {
                                "book_uuid": "0778b800-5698-43ae-a543-4f9736a7a5b6",
                                "status": "failed"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Response with status",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "ok"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/webhooks/cover-callbacks/completed": {
            "post": {
                "tags": [
                    "Callbacks"
                ],
                "description": "Success cover callback",
                "operationId": "cover_callbacks_completed",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "book_uuid": {
                                        "description": "Book uuid",
                                        "type": "uuid"
                                    },
                                    "status": {
                                        "description": "Status",
                                        "type": "string"
                                    },
                                    "file_url": {
                                        "description": "File url",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "example": {
                                "book_uuid": "0778b800-5698-43ae-a543-4f9736a7a5b6",
                                "status": "completed",
                                "file_url": "https://test.com"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Response with status",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "ok"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/webhooks/cover-callbacks/failed": {
            "post": {
                "tags": [
                    "Callbacks"
                ],
                "description": "Failed cover callback",
                "operationId": "cover_callbacks_failed",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "book_uuid": {
                                        "description": "Book uuid",
                                        "type": "uuid"
                                    },
                                    "status": {
                                        "description": "Status",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "example": {
                                "book_uuid": "0778b800-5698-43ae-a543-4f9736a7a5b6",
                                "status": "failed"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Response with status",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": "ok"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/verification/app/{clientCode}/status": {
            "get": {
                "tags": [
                    "verification"
                ],
                "operationId": "GetAppSignupStatus",
                "parameters": [
                    {
                        "name": "clientCode",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "48gj4id9dibi3j9eegj5b"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "signed_to_bb_app": {
                                            "type": "string",
                                            "enum": [
                                                "true",
                                                "pending",
                                                "not_eligible"
                                            ],
                                            "example": "pending"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/firebase/client/create/account?api_token={token}": {
            "post": {
                "tags": [
                    "FireBaseClient"
                ],
                "description": "Create Account",
                "operationId": "createAccount",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "clientCode": {
                                        "description": "Client Code",
                                        "type": "string"
                                    },
                                    "email": {
                                        "description": "Client entered Email",
                                        "type": "string"
                                    },
                                    "password": {
                                        "description": "Client paswword",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Firebase client was created"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Failure",
                        "content": {
                            "application/json": {
                                "example": {
                                    "message": "email_exists|already_registered"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/funnels/{slug}": {
            "get": {
                "tags": [
                    "Funnel"
                ],
                "description": "Get funnel by slug",
                "operationId": "get_funnel_by_slug",
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "description": "The slug identifying the funnel.",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "description": "The ID of the funnel",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "slug": {
                                            "description": "The slug of the funnel",
                                            "type": "integer",
                                            "example": "115"
                                        },
                                        "internal_description": {
                                            "description": "Internal description of the funnel",
                                            "type": "string",
                                            "example": "Base Facebook funnel."
                                        },
                                        "title": {
                                            "description": "Title of the funnel",
                                            "type": "string",
                                            "example": "Woman"
                                        },
                                        "meta_description": {
                                            "description": "Meta description of the funnel",
                                            "type": "string",
                                            "example": "Get your access to the first fully personalized wellness book and achieve your body goals"
                                        },
                                        "thumbnail": {
                                            "description": "URL of the funnel thumbnail image",
                                            "type": "string",
                                            "format": "url",
                                            "example": "https://s3.amazonaws.com/cdn-s.beyondbody.me/meta-images/EkCW5yXrv24S7GCYdI2G2bYLQZyU5ay8gJVFW6Xo.png"
                                        },
                                        "quiz": {
                                            "$ref": "App\\Http\\Resources\\Funnel\\QuizResource"
                                        },
                                        "theme": {
                                            "$ref": "App\\Funnel\\Resources\\ReactFunnelThemeResource"
                                        },
                                        "gtm_container_id": {
                                            "description": "Google Tag Manager Container ID",
                                            "type": "string",
                                            "example": "GTM-XXXXXX"
                                        },
                                        "hyros_tracking_code_token": {
                                            "description": "Hyros token used in tracking script",
                                            "type": "string",
                                            "example": "7j6z3xwzrnqi2u3ljyohn0abnbtkj2h7hvus2u3o3cx7r2u2kzyj0kaf173qslfx"
                                        },
                                        "components": {
                                            "description": "Components associated with the funnel"
                                        },
                                        "cached_at": {
                                            "description": "The timestamp when the data was cached",
                                            "type": "string",
                                            "format": "datetime",
                                            "example": "2024-08-30 12:34:56"
                                        },
                                        "products": {
                                            "description": "product data",
                                            "properties": {
                                                "productKey": {
                                                    "description": "product sku",
                                                    "type": "string"
                                                },
                                                "productType": {
                                                    "description": "product prop key",
                                                    "type": "string"
                                                },
                                                "isDefault": {
                                                    "description": "is product selected as default",
                                                    "type": "boolean"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "upsell": {
                                            "description": "upsell data",
                                            "properties": {
                                                "productKey": {
                                                    "description": "upsell sku",
                                                    "type": "string"
                                                },
                                                "productType": {
                                                    "description": "upsell prop key",
                                                    "type": "string"
                                                },
                                                "isDefault": {
                                                    "description": "is upsell selected as default",
                                                    "type": "boolean"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v2/funnels/{locale}/{slug}": {
            "get": {
                "tags": [
                    "Funnel"
                ],
                "description": "Get funnel by slug with products and prices",
                "operationId": "get_funnel_by_slug_v2",
                "parameters": [
                    {
                        "name": "locale",
                        "in": "path",
                        "description": "The locale for the funnel data.",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "slug",
                        "in": "path",
                        "description": "The slug identifying the funnel.",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "description": "The ID of the funnel",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "slug": {
                                            "description": "The slug of the funnel",
                                            "type": "integer",
                                            "example": "115"
                                        },
                                        "internal_description": {
                                            "description": "Internal description of the funnel",
                                            "type": "string",
                                            "example": "Base Facebook funnel."
                                        },
                                        "title": {
                                            "description": "Title of the funnel",
                                            "type": "string",
                                            "example": "Woman"
                                        },
                                        "meta_description": {
                                            "description": "Meta description of the funnel",
                                            "type": "string",
                                            "example": "Get your access to the first fully personalized wellness book and achieve your body goals"
                                        },
                                        "thumbnail": {
                                            "description": "URL of the funnel thumbnail image",
                                            "type": "string",
                                            "format": "url",
                                            "example": "https://s3.amazonaws.com/cdn-s.beyondbody.me/meta-images/EkCW5yXrv24S7GCYdI2G2bYLQZyU5ay8gJVFW6Xo.png"
                                        },
                                        "quiz": {
                                            "$ref": "App\\Http\\Resources\\Funnel\\QuizResource"
                                        },
                                        "theme": {
                                            "$ref": "App\\Funnel\\Resources\\ReactFunnelThemeResource"
                                        },
                                        "gtm_container_id": {
                                            "description": "Google Tag Manager Container ID",
                                            "type": "string",
                                            "example": "GTM-XXXXXX"
                                        },
                                        "hyros_tracking_code_token": {
                                            "description": "Hyros token used in tracking script",
                                            "type": "string",
                                            "example": "7j6z3xwzrnqi2u3ljyohn0abnbtkj2h7hvus2u3o3cx7r2u2kzyj0kaf173qslfx"
                                        },
                                        "components": {
                                            "description": "Components associated with the funnel"
                                        },
                                        "cached_at": {
                                            "description": "The timestamp when the data was cached",
                                            "type": "string",
                                            "format": "datetime",
                                            "example": "2024-08-30 12:34:56"
                                        },
                                        "override_funnel_nr": {
                                            "description": "The funnel number used to override components and products",
                                            "type": "integer",
                                            "example": 892
                                        },
                                        "products": {
                                            "description": "product data",
                                            "properties": {
                                                "productKey": {
                                                    "description": "product sku",
                                                    "type": "string"
                                                },
                                                "productType": {
                                                    "description": "product prop key",
                                                    "type": "string"
                                                },
                                                "isDefault": {
                                                    "description": "is product selected as default",
                                                    "type": "boolean"
                                                },
                                                "data": {
                                                    "description": "all product data with prices trials and plans",
                                                    "properties": {
                                                        "id": {
                                                            "description": "Product ID",
                                                            "type": "integer"
                                                        },
                                                        "key": {
                                                            "description": "Unique key for the product",
                                                            "type": "string"
                                                        },
                                                        "sku": {
                                                            "description": "Product SKU",
                                                            "type": "string"
                                                        },
                                                        "type": {
                                                            "description": "Type of the product",
                                                            "type": "string"
                                                        },
                                                        "name": {
                                                            "description": "Name of the product",
                                                            "type": "string"
                                                        },
                                                        "variant": {
                                                            "description": "Variant of the product",
                                                            "type": "string",
                                                            "nullable": true
                                                        },
                                                        "description": {
                                                            "description": "Description of the product",
                                                            "type": "string",
                                                            "nullable": true
                                                        },
                                                        "is_subscription": {
                                                            "description": "Indicates if the product is a subscription",
                                                            "type": "boolean"
                                                        },
                                                        "is_upsell": {
                                                            "description": "Indicates if the product is an upsell",
                                                            "type": "boolean"
                                                        },
                                                        "has_trials": {
                                                            "description": "Indicates if the product has trials",
                                                            "type": "boolean"
                                                        },
                                                        "plan": {
                                                            "$ref": "#/components/schemas/ProductPlanResource"
                                                        },
                                                        "price": {
                                                            "$ref": "#/components/schemas/ProductPriceResource"
                                                        },
                                                        "trial": {
                                                            "$ref": "#/components/schemas/ProductTrialResource"
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "upsell": {
                                            "description": "upsell data",
                                            "properties": {
                                                "productKey": {
                                                    "description": "upsell sku",
                                                    "type": "string"
                                                },
                                                "productType": {
                                                    "description": "upsell prop key",
                                                    "type": "string"
                                                },
                                                "isDefault": {
                                                    "description": "is upsell selected as default",
                                                    "type": "boolean"
                                                },
                                                "data": {
                                                    "description": "all upsell data with prices trials and plans",
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/subscription/oneclick/trial?api_token={token}": {
            "post": {
                "tags": [
                    "Subscription"
                ],
                "description": "OneClick SubscriptionTrial Trial",
                "operationId": "createOneClickTrialSubscription",
                "parameters": [
                    {
                        "name": "api_token",
                        "in": "query",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "clientCode": {
                                        "description": "Client Code",
                                        "type": "string"
                                    },
                                    "productKey": {
                                        "description": "Product Key",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "orderId": 2
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "example": "Client already has access for product"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        {
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "example": "The selected product is not trial"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        {
                                            "properties": {
                                                "message": {
                                                    "type": "string",
                                                    "example": "Client does not have payment method"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/subscription/resubscribe/{clientCode}/{subscriptionType}/product?api_token={apiToken}": {
            "get": {
                "tags": [
                    "Funnel",
                    "Resubcription"
                ],
                "summary": "Get product for resubscription",
                "operationId": "resubscription_get_product",
                "responses": {
                    "200": {
                        "description": "Resubscription product success response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "resubscription_product": {
                                            "$ref": "#/components/schemas/FunnelConfigProductResource"
                                        },
                                        "payment_method_change_product": {
                                            "$ref": "#/components/schemas/FunnelConfigProductResource"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Resubscription product is not available"
                    }
                }
            }
        },
        "/api/pages/{type}/{locale}?api_token={token}": {
            "get": {
                "tags": [
                    "Pages"
                ],
                "summary": "Get page by type and locale",
                "operationId": "getPage",
                "parameters": [
                    {
                        "name": "type",
                        "in": "path",
                        "description": "Page type",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "locale",
                        "in": "path",
                        "description": "Page locale",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return page by by type and locale"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Page was not found"
                    }
                }
            }
        },
        "/api/clients/{client}/orders/{order}/addresses?api_token={token}": {
            "post": {
                "tags": [
                    "Client"
                ],
                "description": "Create address and associate with client and order",
                "operationId": "post_client_address",
                "parameters": [
                    {
                        "name": "client",
                        "in": "path",
                        "description": "Client code",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "first_name": {
                                        "description": "First name",
                                        "type": "string"
                                    },
                                    "full_name": {
                                        "description": "Full name",
                                        "type": "string"
                                    },
                                    "address_1": {
                                        "description": "Address 1",
                                        "type": "string"
                                    },
                                    "country": {
                                        "description": "Country",
                                        "type": "string"
                                    },
                                    "state": {
                                        "description": "State",
                                        "type": "string"
                                    },
                                    "city": {
                                        "description": "City",
                                        "type": "string"
                                    },
                                    "postal_code": {
                                        "description": "Postal code",
                                        "type": "string"
                                    },
                                    "phone": {
                                        "description": "Phone",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "400": {
                        "description": "Validation error"
                    },
                    "422": {
                        "description": "Validation failed",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "valid": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Validation failed"
                                        },
                                        "errors": {
                                            "type": "array",
                                            "items": {
                                                "description": "Array of validation errors, where each sub-array represents a specific error",
                                                "type": "array",
                                                "items": {
                                                    "description": "Error message",
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/geolocation/?api_token={token}": {
            "get": {
                "tags": [
                    "Geolocation"
                ],
                "description": "Get geolocation data from request object",
                "operationId": "get_geolocation_from_request",
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns geolocation data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "description": "Data",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "country": {
                                                        "description": "Country",
                                                        "type": "string"
                                                    },
                                                    "iso_country": {
                                                        "description": "ISO country",
                                                        "type": "string"
                                                    },
                                                    "city": {
                                                        "description": "City",
                                                        "type": "string"
                                                    },
                                                    "state": {
                                                        "description": "State",
                                                        "type": "string"
                                                    },
                                                    "iso_state": {
                                                        "description": "Iso state",
                                                        "type": "string"
                                                    },
                                                    "belongs_to_eu": {
                                                        "description": "Belongs to EU",
                                                        "type": "boolean"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object",
                                    "example": {
                                        "data": {
                                            "country": "Lithuania",
                                            "iso_country": "LT",
                                            "city": "Kaunas",
                                            "state": "Kaunas",
                                            "iso_state": "16",
                                            "belongs_to_eu": true
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Geolocation disabled"
                    },
                    "404": {
                        "description": "Could not determine user's location"
                    }
                }
            }
        },
        "/api/geolocation/{ip}?api_token={token}": {
            "get": {
                "tags": [
                    "Geolocation"
                ],
                "description": "Get geolocation from route parameter",
                "operationId": "get_geolocation_from_route",
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns geolocation data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "description": "Data",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "country": {
                                                        "description": "Country",
                                                        "type": "string"
                                                    },
                                                    "iso_country": {
                                                        "description": "ISO country",
                                                        "type": "string"
                                                    },
                                                    "city": {
                                                        "description": "City",
                                                        "type": "string"
                                                    },
                                                    "state": {
                                                        "description": "State",
                                                        "type": "string"
                                                    },
                                                    "iso_state": {
                                                        "description": "Iso state",
                                                        "type": "string"
                                                    },
                                                    "belongs_to_eu": {
                                                        "description": "Belongs to EU",
                                                        "type": "boolean"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object",
                                    "example": {
                                        "data": {
                                            "country": "Lithuania",
                                            "iso_country": "LT",
                                            "city": "Kaunas",
                                            "state": "Kaunas",
                                            "iso_state": "16",
                                            "belongs_to_eu": true
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Geolocation disabled"
                    },
                    "404": {
                        "description": "Could not determine user's location"
                    }
                }
            }
        },
        "/api/leads/{lead}?api_token={token}": {
            "get": {
                "tags": [
                    "Lead"
                ],
                "description": "Get lead",
                "operationId": "get_lead",
                "parameters": [
                    {
                        "name": "lead",
                        "in": "path",
                        "description": "Lead code",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns Lead resource",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "code": "code",
                                        "email": "email@email.com",
                                        "quiz_answers": {
                                            "gender": "male",
                                            "health_state": "poor",
                                            "linked_to": "bloating",
                                            "poop": "twice",
                                            "symptoms": "heartburn|stomach",
                                            "symptoms_two": "digestion|skin",
                                            "allergies": "lactose|nuts",
                                            "medical_conditions": "diabetes|cholesterol",
                                            "digestive": "GERD|IBS",
                                            "physically_active": "sometimes",
                                            "leisure": "little",
                                            "isMetric": true,
                                            "age": 26,
                                            "height": 178,
                                            "weight": 80,
                                            "target": 70,
                                            "weight_unit": "kg",
                                            "label": "Male",
                                            "undefined": "got_it"
                                        },
                                        "client": {
                                            "id": 238,
                                            "project_id": 2,
                                            "lead_id": 307,
                                            "code": "224883852c59402dbad648041bfb50df",
                                            "email": "email@kilo.health",
                                            "name": null,
                                            "created_at": "2022-05-19T07:31:02.000000Z",
                                            "updated_at": "2022-05-19T07:31:02.000000Z",
                                            "order": null,
                                            "orders": [],
                                            "addresses": []
                                        },
                                        "external_data": {
                                            "lead_id": 278,
                                            "key": "key",
                                            "value": "value",
                                            "created_at": "2022-05-19T07:31:02.000000Z",
                                            "updated_at": "2022-05-19T07:31:02.000000Z"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "400": {
                        "description": "Validation error"
                    }
                }
            },
            "put": {
                "tags": [
                    "Lead"
                ],
                "description": "Update lead",
                "operationId": "put_lead",
                "parameters": [
                    {
                        "name": "lead",
                        "in": "path",
                        "description": "Lead code",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "quiz_answers": {
                                        "description": "Quiz answers",
                                        "type": "array",
                                        "items": {}
                                    },
                                    "email": {
                                        "description": "Email",
                                        "type": "string"
                                    },
                                    "phone": {
                                        "description": "Phone",
                                        "type": "string"
                                    },
                                    "language": {
                                        "description": "Language",
                                        "type": "string"
                                    },
                                    "sms_marketing_agreement": {
                                        "description": "SMS marketing agreement",
                                        "type": "boolean"
                                    },
                                    "privacy_policy_agreement": {
                                        "description": "Privacy policy agreement",
                                        "type": "boolean"
                                    },
                                    "email_marketing_agreement": {
                                        "description": "Email marketing agreement",
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Returns Lead order notification resource",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "code": "code",
                                        "email": "email@email.com",
                                        "quiz_answers": {
                                            "gender": "male",
                                            "health_state": "poor",
                                            "linked_to": "bloating",
                                            "poop": "twice",
                                            "symptoms": "heartburn|stomach",
                                            "symptoms_two": "digestion|skin",
                                            "allergies": "lactose|nuts",
                                            "medical_conditions": "diabetes|cholesterol",
                                            "digestive": "GERD|IBS",
                                            "physically_active": "sometimes",
                                            "leisure": "little",
                                            "isMetric": true,
                                            "age": 26,
                                            "height": 178,
                                            "weight": 80,
                                            "target": 70,
                                            "weight_unit": "kg",
                                            "label": "Male",
                                            "undefined": "got_it"
                                        },
                                        "client": {
                                            "id": 238,
                                            "project_id": 2,
                                            "lead_id": 307,
                                            "code": "224883852c59402dbad648041bfb50df",
                                            "email": "email@kilo.health",
                                            "name": null,
                                            "created_at": "2022-05-19T07:31:02.000000Z",
                                            "updated_at": "2022-05-19T07:31:02.000000Z",
                                            "order": null,
                                            "orders": [],
                                            "addresses": []
                                        },
                                        "external_data": {
                                            "lead_id": 278,
                                            "key": "key",
                                            "value": "value",
                                            "created_at": "2022-05-19T07:31:02.000000Z",
                                            "updated_at": "2022-05-19T07:31:02.000000Z"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "400": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/api/leads?api_token={token}": {
            "post": {
                "tags": [
                    "Lead"
                ],
                "description": "Store lead",
                "operationId": "post_lead",
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "quiz_answers": {
                                        "description": "Quiz answers",
                                        "type": "array",
                                        "items": {}
                                    },
                                    "funnel": {
                                        "description": "Funnel",
                                        "type": "string"
                                    },
                                    "email": {
                                        "description": "Email",
                                        "type": "string"
                                    },
                                    "phone": {
                                        "description": "Phone",
                                        "type": "string"
                                    },
                                    "language": {
                                        "description": "Language",
                                        "type": "string"
                                    },
                                    "country": {
                                        "description": "Country",
                                        "type": "string"
                                    },
                                    "iso_country": {
                                        "description": "Iso Country from Geolocation endpoint",
                                        "type": "string"
                                    },
                                    "session_token": {
                                        "description": "Session token",
                                        "type": "string"
                                    },
                                    "sms_marketing_agreement": {
                                        "description": "SMS marketing agreement",
                                        "type": "boolean"
                                    },
                                    "privacy_policy_agreement": {
                                        "description": "Privacy policy agreement",
                                        "type": "boolean"
                                    },
                                    "email_marketing_agreement": {
                                        "description": "Email marketing agreement",
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Returns Lead resource",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "code": "code",
                                        "email": "email@email.com",
                                        "funnel_nr": "115",
                                        "quiz_answers": {
                                            "gender": "male",
                                            "health_state": "poor",
                                            "linked_to": "bloating",
                                            "poop": "twice",
                                            "symptoms": "heartburn|stomach",
                                            "symptoms_two": "digestion|skin",
                                            "allergies": "lactose|nuts",
                                            "medical_conditions": "diabetes|cholesterol",
                                            "digestive": "GERD|IBS",
                                            "physically_active": "sometimes",
                                            "leisure": "little",
                                            "isMetric": true,
                                            "age": 26,
                                            "height": 178,
                                            "weight": 80,
                                            "target": 70,
                                            "weight_unit": "kg",
                                            "label": "Male",
                                            "undefined": "got_it"
                                        },
                                        "client": {
                                            "id": 238,
                                            "project_id": 2,
                                            "lead_id": 307,
                                            "code": "224883852c59402dbad648041bfb50df",
                                            "email": "email@kilo.health",
                                            "name": null,
                                            "created_at": "2022-05-19T07:31:02.000000Z",
                                            "updated_at": "2022-05-19T07:31:02.000000Z",
                                            "order": null,
                                            "orders": [],
                                            "addresses": []
                                        },
                                        "external_data": {
                                            "lead_id": 278,
                                            "key": "key",
                                            "value": "value",
                                            "created_at": "2022-05-19T07:31:02.000000Z",
                                            "updated_at": "2022-05-19T07:31:02.000000Z"
                                        },
                                        "funnel_url": "woman.beyondbody.me/115",
                                        "is_subscription_active": "active"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "400": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/api/leads/{lead}/subscriber?api_token={token}": {
            "post": {
                "tags": [
                    "Lead"
                ],
                "description": "Add custom fields to Lead subscriber",
                "operationId": "post_lead_subscriber",
                "parameters": [
                    {
                        "name": "lead",
                        "in": "path",
                        "description": "Lead code",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "purchased": {
                                        "description": "Custom property",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Returns Lead resource",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "code": {
                                            "description": "Lead code",
                                            "type": "string"
                                        },
                                        "email": {
                                            "description": "Lead email",
                                            "type": "string"
                                        },
                                        "quiz_answers": {
                                            "description": "Quiz answers",
                                            "type": "array",
                                            "items": {}
                                        },
                                        "client": {
                                            "description": "Client",
                                            "type": "array",
                                            "items": {}
                                        },
                                        "external_data": {
                                            "description": "External data",
                                            "type": "array",
                                            "items": {}
                                        }
                                    },
                                    "type": "object",
                                    "example": {
                                        "data": {
                                            "code": "code",
                                            "email": "email@email.com",
                                            "quiz_answers": {
                                                "gender": "male",
                                                "health_state": "poor",
                                                "linked_to": "bloating",
                                                "poop": "twice",
                                                "symptoms": "heartburn|stomach",
                                                "symptoms_two": "digestion|skin",
                                                "allergies": "lactose|nuts",
                                                "medical_conditions": "diabetes|cholesterol",
                                                "digestive": "GERD|IBS",
                                                "physically_active": "sometimes",
                                                "leisure": "little",
                                                "isMetric": true,
                                                "age": 26,
                                                "height": 178,
                                                "weight": 80,
                                                "target": 70,
                                                "weight_unit": "kg",
                                                "label": "Male",
                                                "undefined": "got_it"
                                            },
                                            "client": {
                                                "id": 238,
                                                "project_id": 2,
                                                "lead_id": 307,
                                                "code": "224883852c59402dbad648041bfb50df",
                                                "email": "email@kilo.health",
                                                "name": null,
                                                "created_at": "2022-05-19T07:31:02.000000Z",
                                                "updated_at": "2022-05-19T07:31:02.000000Z",
                                                "order": null,
                                                "orders": [],
                                                "addresses": []
                                            },
                                            "external_data": {
                                                "lead_id": 278,
                                                "key": "key",
                                                "value": "value",
                                                "created_at": "2022-05-19T07:31:02.000000Z",
                                                "updated_at": "2022-05-19T07:31:02.000000Z"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/api/orders/{clientCode}/initial": {
            "get": {
                "tags": [
                    "Order"
                ],
                "summary": "Get initial order by client code",
                "operationId": "get_order_by_client_code",
                "parameters": [
                    {
                        "name": "clientCode",
                        "in": "path",
                        "description": "Client code",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "api_token",
                        "in": "query",
                        "description": "API token for authentication",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Order found success response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 12345
                                        },
                                        "amount": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 99.99
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "paid"
                                        },
                                        "amount_in_cents": {
                                            "type": "integer",
                                            "example": 9999
                                        },
                                        "currency_id": {
                                            "type": "string",
                                            "example": "USD"
                                        },
                                        "paid_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-10-01T12:00:00Z"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-10-01T10:00:00Z"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-10-01T11:00:00Z"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Order not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order not found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/order-summary/{clientCode}?api_token={token}": {
            "get": {
                "tags": [
                    "Order"
                ],
                "description": "Get Client Order summary",
                "operationId": "getOrderSummary",
                "parameters": [
                    {
                        "name": "clientCode",
                        "in": "path",
                        "description": "Order id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v2/order-summary/{locale}/{clientCode}?api_token={token}": {
            "get": {
                "tags": [
                    "Order"
                ],
                "description": "Get Client Order summary version 2",
                "operationId": "getOrderSummaryV2",
                "parameters": [
                    {
                        "name": "clientCode",
                        "in": "path",
                        "description": "Client code",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "locale",
                        "in": "path",
                        "description": "Supported product locale",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "api_token",
                        "in": "query",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns clients' purchased and available products",
                        "content": {
                            "application/json": {
                                "schema": {},
                                "example": {
                                    "data": {
                                        "purchased": [
                                            {
                                                "sku": "bb-1-months-ebook_subscription-v16",
                                                "name": "Ebook + 1 month subscription version 16 for 1/3/6 plans",
                                                "variant": "app",
                                                "price": 7.4,
                                                "currency": "USD"
                                            }
                                        ],
                                        "available": [
                                            {
                                                "sku": "bb-1-months-ebook_subscription-upsell-v4",
                                                "name": "1 month subscription upsell",
                                                "variant": "app",
                                                "price": 36.99,
                                                "currency": "USD"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/api/products?api_token={token}&p_locale={p_locale}": {
            "get": {
                "tags": [
                    "Product"
                ],
                "description": "Get products",
                "operationId": "get_products",
                "parameters": [
                    {
                        "name": "p_locale",
                        "in": "path",
                        "description": "Project locale",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns shipping cost resource",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "id": 18,
                                            "key": "cb-1-2",
                                            "sku": "colonbroom1",
                                            "type": "physical",
                                            "name": "1 month supplements",
                                            "description": null,
                                            "image": null,
                                            "is_subscription": false,
                                            "is_upsell": false,
                                            "has_trials": false,
                                            "prices": [
                                                {
                                                    "currency_id": "USD",
                                                    "locale": "en",
                                                    "price": 190,
                                                    "final_price": 180,
                                                    "discount": 10
                                                }
                                            ],
                                            "trials": [],
                                            "images": [],
                                            "properties": [],
                                            "cogs": null
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/api/project?api_token={token}": {
            "get": {
                "tags": [
                    "Project"
                ],
                "description": "Get project data",
                "operationId": "get_project",
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Empty response on no data",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "name": "Colonbroom",
                                        "env": "staging",
                                        "settings": [],
                                        "gateway": {
                                            "main": "http://api-boilerplate.test/vendor/kilopayments/payments.js?v=v3.6.2",
                                            "prepare_url": "http://api-boilerplate.test/api/payments/prepare/checkout/paypal_button?p_locale=en&api_token=token",
                                            "prepare_urls": {
                                                "paypal_direct": "http://api-boilerplate.test/api/payments/prepare/checkout/paypal_direct?p_locale=en&api_token=token",
                                                "stripe": "http://api-boilerplate.test/api/payments/prepare/checkout/stripe?p_locale=en&api_token=token",
                                                "primer_payments": "http://api-boilerplate.test/api/payments/prepare/checkout/primer_payments?p_locale=en&api_token=token"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/quizzes/{quiz}?api_token={token}": {
            "get": {
                "tags": [
                    "Quiz"
                ],
                "description": "Get quiz",
                "operationId": "get_quiz",
                "parameters": [
                    {
                        "name": "p_locale",
                        "in": "path",
                        "description": "Project locale",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns shipping cost resource",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": [
                                        {
                                            "name": "Main",
                                            "slug": "main",
                                            "questions": [
                                                {
                                                    "type": "single",
                                                    "options": [
                                                        {
                                                            "label": "quiz.app_funnel.question1.option.poor",
                                                            "value": "poor",
                                                            "image": "funnelOne1"
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/api/session?api_token={token}": {
            "post": {
                "tags": [
                    "Session"
                ],
                "description": "Store session details",
                "operationId": "storeSession",
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "quiz_answers": {
                                        "description": "Quiz answers",
                                        "type": "array",
                                        "items": {}
                                    },
                                    "name": {
                                        "description": "Quiz name",
                                        "type": "string"
                                    },
                                    "language": {
                                        "description": "Language",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Entry created",
                        "content": {}
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "400": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/fulfilment/webhook/status-update/{fulfilmentUUIDgeneratedOnModelBoot}?api_token={token}": {
            "post": {
                "tags": [
                    "Supplements"
                ],
                "description": "Webhook that posts status of a particular order with data payload with additional info",
                "operationId": "aae85eada6ab0cf74d12fc8520cf0be2",
                "parameters": [
                    {
                        "name": "fulfilment",
                        "in": "path",
                        "description": "Fulfilment callback token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Request body",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "": {
                                        "description": "Fulfilment order status",
                                        "type": "string"
                                    },
                                    "data": {
                                        "description": "When type=created",
                                        "properties": {
                                            "orderUuid": {
                                                "type": "string"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful request"
                    },
                    "400": {
                        "description": "Validation error"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/upsells/{client}?api_token={token}": {
            "get": {
                "tags": [
                    "Upsell"
                ],
                "description": "Get client upsells",
                "operationId": "get_upsells",
                "parameters": [
                    {
                        "name": "client",
                        "in": "path",
                        "description": "Client code",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "path",
                        "description": "Authorization token",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns products and upsell urls arrays",
                        "content": {
                            "application/json": {
                                "example": {
                                    "upsell_urls": {
                                        "cb-3-2": "http://api-boilerplate.test/api/payments/checkout/sell/product/{client_code}/{product_key}/{secret}?p_locale=en&api_token={token}"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/webhooks/nps": {
            "post": {
                "tags": [
                    "Callbacks"
                ],
                "summary": "Process Typeform NPS webhook",
                "description": "Endpoint to handle Typeform NPS responses and track them.",
                "operationId": "processNpsWebhook",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "event_id",
                                    "event_type",
                                    "form_response"
                                ],
                                "properties": {
                                    "event_id": {
                                        "description": "Unique event identifier",
                                        "type": "string"
                                    },
                                    "event_type": {
                                        "description": "Type of event",
                                        "type": "string",
                                        "enum": [
                                            "form_response"
                                        ]
                                    },
                                    "form_response": {
                                        "description": "Form submission data",
                                        "properties": {
                                            "form_id": {
                                                "description": "ID of the Typeform form",
                                                "type": "string"
                                            },
                                            "answers": {
                                                "description": "Submitted answers",
                                                "type": "array",
                                                "items": {
                                                    "properties": {
                                                        "field_id": {
                                                            "type": "string"
                                                        },
                                                        "type": {
                                                            "type": "string"
                                                        },
                                                        "text": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "422": {
                        "description": "Invalid form ID."
                    }
                }
            }
        },
        "/api/v3/feedback": {
            "get": {
                "tags": [
                    "Feedback"
                ],
                "description": "Save feedback",
                "operationId": "saveFeedback",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "comment": {
                                        "description": "Client Comment",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Feedback was saved"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/iap/applestore/verify/receipt": {
            "post": {
                "tags": [
                    "IAP"
                ],
                "description": "Verify Receipt Apple Store",
                "operationId": "verifyAppleStoreReceipt",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "productId": {
                                        "description": "Product Id(key)",
                                        "type": "string"
                                    },
                                    "productCurrency": {
                                        "description": "Currency",
                                        "type": "string"
                                    },
                                    "productAmount": {
                                        "description": "Product Amount",
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "transactionReceipt": {
                                        "description": "Receipt",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Receipt was validated successfully"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v3/iap/googlestore/verify/receipt": {
            "post": {
                "tags": [
                    "IAP"
                ],
                "description": "Verify Receipt Google Store",
                "operationId": "verifyGoogleStoreReceipt",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "productId": {
                                        "description": "Product Id(key)",
                                        "type": "string"
                                    },
                                    "productCurrency": {
                                        "description": "Currency",
                                        "type": "string"
                                    },
                                    "productAmount": {
                                        "description": "Product Amount",
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "purchaseToken": {
                                        "description": "Purchase Token(Receipt)",
                                        "type": "string"
                                    },
                                    "packageName": {
                                        "description": "Package Name",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true,
                                    "message": "Receipt was validated successfully"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v4/meals/generate": {
            "post": {
                "tags": [
                    "Meals"
                ],
                "description": "Generate Meal Plan",
                "operationId": "generatePlanV4",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "mealType": {
                                        "description": "Meal Type",
                                        "type": "string",
                                        "enum": [
                                            "recipe",
                                            "customMealPlan"
                                        ]
                                    },
                                    "dietType": {
                                        "description": "Diet Type",
                                        "type": "string",
                                        "enum": [
                                            "keto",
                                            "standard",
                                            "moms",
                                            "fasting",
                                            "sleeping",
                                            "intuitive_eating"
                                        ]
                                    },
                                    "quizAnswers": {
                                        "description": "Quiz Answers",
                                        "type": "string",
                                        "example": {
                                            "weight": "180",
                                            "target_weight": "160",
                                            "omit_veggies": [
                                                "carrots"
                                            ],
                                            "omit_carbs": [
                                                "pasta"
                                            ],
                                            "omit_fruits": [
                                                "banana"
                                            ],
                                            "omit_nonos": [
                                                "eggs"
                                            ],
                                            "allergies": [
                                                "fish"
                                            ],
                                            "need_to_know": [
                                                "diabetes"
                                            ],
                                            "active": 1
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    }
                }
            }
        },
        "/api/v4/meals/plan/status": {
            "get": {
                "tags": [
                    "Meals"
                ],
                "description": "Get Plan Status",
                "operationId": "getPlanStatusV4",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "status": "string",
                                        "clientId": 1,
                                        "planType": "string",
                                        "dietType": "string",
                                        "count": 1,
                                        "generationDatetime": "2023-05-16 13:05:24",
                                        "startDatetime": "2023-05-16 13:05:24",
                                        "planFromBook": 1
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/client-zone/downsells": {
            "get": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Get Client Retention Downsells",
                "operationId": "getClientRetentionDownsells",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "downsells": [
                                            "keto-app-downsell",
                                            "subscription-discount-50",
                                            "lifetime-offer"
                                        ],
                                        "isEligibleForPayCancel": true
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "api/client-zone/downsells": {
            "post": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Apply Downsell",
                "operationId": "applyDownsell",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "downsell": {
                                        "description": "Meal Type",
                                        "type": "string",
                                        "enum": [
                                            "keto-app-downsell",
                                            "lifetime-offer",
                                            "subscription-discount-50"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "status": true
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/client-zone/downsells/subscription-cancellation": {
            "get": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Get Pay The Difference Details",
                "operationId": "getPayTheDifferenceDetails",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "products": [
                                            {
                                                "sku": "bb-6-months-ebook_subscription-v18",
                                                "duration": 6,
                                                "durationType": "months",
                                                "paidPrice": null,
                                                "newPrice": null,
                                                "currencyId": null,
                                                "group": "app",
                                                "productToPayFor": false,
                                                "country": "en"
                                            },
                                            {
                                                "sku": "bb-print-v4",
                                                "duration": null,
                                                "durationType": null,
                                                "paidPrice": 35.99,
                                                "newPrice": 79.99,
                                                "currencyId": "USD",
                                                "group": "hardcover",
                                                "productToPayFor": true,
                                                "country": "en"
                                            },
                                            {
                                                "sku": "bb-ebook",
                                                "duration": null,
                                                "durationType": null,
                                                "paidPrice": 0,
                                                "newPrice": 0,
                                                "currencyId": "USD",
                                                "group": "ebook",
                                                "productToPayFor": false,
                                                "country": "en"
                                            }
                                        ],
                                        "fullPrice": 79.99,
                                        "discountedPrice": 35.99,
                                        "leftToPay": 44,
                                        "sku": "bb-print_addon-v3-bb-print-v4-cancel-sub",
                                        "sellUrl": "http://urlexample"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "api/client-zone/forgot/password": {
            "post": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Forgot Password",
                "operationId": "forgotPassword",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "description": "Entered Email",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    }
                }
            }
        },
        "api/client-zone/reset/password": {
            "post": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Reset Password",
                "operationId": "resetPassword",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "code": {
                                        "description": "Client Code",
                                        "type": "string"
                                    },
                                    "password": {
                                        "description": "New Password",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    }
                }
            }
        },
        "api/client-zone/firebase-project/{email}": {
            "get": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Resolve Firebase project",
                "operationId": "resolveFirebaseProject",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "firebase_project": "beyond_body"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/client-zone/subscription": {
            "get": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Get Client Subscription",
                "operationId": "getSubscription",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "code": "testclientcode123",
                                        "subscriptionId": 1,
                                        "duration": 6,
                                        "durationType": "month(s)",
                                        "memberSince": "2023-05-09",
                                        "activeUntil": "2023-11-09",
                                        "nextPayment": "2023-11-09",
                                        "subscriptionStatus": "active",
                                        "subscriptionType": "standard"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/client-zone/subscriptions": {
            "get": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Get Client Subscriptions",
                "operationId": "getSubscriptions",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "clientCode": "123131",
                                        "subscriptions": [
                                            {
                                                "id": 1,
                                                "status": "canceled",
                                                "duration": 6,
                                                "durationType": "month(s)",
                                                "activeUntil": "2023-11-09",
                                                "nextPayment": "2023-11-09",
                                                "amount": "50",
                                                "currencyId": "USD",
                                                "payForCancel": true,
                                                "applicableForRetentionDownsells": true,
                                                "subscriptionProductType": "women_app"
                                            },
                                            {
                                                "id": 2,
                                                "status": "active",
                                                "duration": 3,
                                                "durationType": "month(s)",
                                                "activeUntil": "2025-11-09",
                                                "nextPayment": "2023-11-09",
                                                "amount": "20",
                                                "currencyId": "USD",
                                                "payForCancel": false,
                                                "applicableForRetentionDownsells": false,
                                                "subscriptionProductType": "workout"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "api/client-zone/subscription/cancel": {
            "post": {
                "tags": [
                    "ClientZone"
                ],
                "description": "Cancel Subscription",
                "operationId": "cancelSubscription",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "subscriptionId": {
                                        "description": "Subscription Id to cancel",
                                        "type": "integer"
                                    },
                                    "reasons": {
                                        "description": "Reasons why client decided to cancel subscription",
                                        "type": "array",
                                        "items": {}
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Success"
                    }
                }
            }
        },
        "/support/client/{clientEmail}": {
            "get": {
                "tags": [
                    "Support"
                ],
                "description": "Get Client Details",
                "operationId": "getDetails",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "example": {
                                    "data": {
                                        "clientExist": true,
                                        "hasMultipleClients": false,
                                        "clientId": 1,
                                        "hasMultipleSubscriptions": false,
                                        "hasMultipleActiveSubscriptions": false,
                                        "singleClientHasMultipleSubscriptions": false,
                                        "hasPurchasedPhysicalProduct": false,
                                        "initialOrder": {
                                            "id": 445,
                                            "status": "paid",
                                            "createdAt": "2024-04-23",
                                            "amount": 15.19,
                                            "currency": "USD",
                                            "paymentMethod": "card",
                                            "paymentProvider": "primer_payments",
                                            "psp": "STRIPE",
                                            "paymentType": "visa",
                                            "couponApplied": false,
                                            "discountApplied": 0
                                        },
                                        "upsellOrders": [
                                            {
                                                "name": "Hardcover book upsell + protection",
                                                "amount": 31.97,
                                                "currency": "USD",
                                                "createdAt": "2023-06-21"
                                            },
                                            {
                                                "name": "3 Month supply box",
                                                "amount": 107.97,
                                                "currency": "USD",
                                                "createdAt": "2024-05-22"
                                            }
                                        ],
                                        "initialSubscriptionRecurringCount": 4,
                                        "subscription": {
                                            "id": 260,
                                            "status": "expired",
                                            "createdAt": "2024-05-22",
                                            "amount": 75.78,
                                            "currency": "USD",
                                            "duration": 6,
                                            "durationType": "months",
                                            "expiresAt": "2024-08-11",
                                            "recurringCount": 4,
                                            "subscriptionHigherRecurring": false,
                                            "lastChargeAt": null
                                        },
                                        "trial": {
                                            "amount": 15.19,
                                            "currency": "USD",
                                            "duration": 1,
                                            "durationType": "months",
                                            "endedAt": null
                                        },
                                        "appAccountCreated": true,
                                        "registrationLink": "registration_url",
                                        "country": "EN",
                                        "books": [
                                            {
                                                "createdAt": "2024-11-13",
                                                "status": "SENT",
                                                "trackingDetails": null
                                            }
                                        ],
                                        "ebooks": [
                                            {
                                                "url": "ebook_url"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/support/v2/client/{clientEmail}": {
            "get": {
                "tags": [
                    "Support"
                ],
                "description": "Get enhanced client details",
                "operationId": "getDetailsV2",
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {},
                                "example": {
                                    "data": {
                                        "clientExist": true,
                                        "hasMultipleClients": false,
                                        "clientId": 1,
                                        "hasMultipleSubscriptions": false,
                                        "hasMultipleActiveSubscriptions": false,
                                        "singleClientHasMultipleSubscriptions": false,
                                        "hasPurchasedPhysicalProduct": false,
                                        "initialOrder": {
                                            "id": 445,
                                            "status": "paid",
                                            "createdAt": "2024-04-23",
                                            "amount": 49.99,
                                            "currency": "USD",
                                            "paymentMethod": "card",
                                            "paymentProvider": "primer_payments",
                                            "psp": "STRIPE",
                                            "paymentType": "visa",
                                            "couponApplied": false,
                                            "discountApplied": 0,
                                            "subscriptionId": 260,
                                            "items": [
                                                {
                                                    "id": 1,
                                                    "sku": "bb-subscription",
                                                    "title": "Beyond Body Subscription",
                                                    "quantity": 1,
                                                    "price": 49.99,
                                                    "currency": "USD"
                                                }
                                            ],
                                            "subscriptions": [
                                                {
                                                    "id": 260,
                                                    "status": "trial",
                                                    "createdAt": "2024-05-22",
                                                    "amount": 49.99,
                                                    "currency": "USD",
                                                    "duration": 6,
                                                    "durationType": "months",
                                                    "expiresAt": "2024-08-11",
                                                    "recurringCount": 4,
                                                    "subscriptionHigherRecurring": false,
                                                    "lastChargeAt": null,
                                                    "type": "bb_app",
                                                    "isMain": true
                                                }
                                            ],
                                            "upsells": [
                                                {
                                                    "id": 446,
                                                    "status": "paid",
                                                    "createdAt": "2023-06-21",
                                                    "amount": 29.99,
                                                    "currency": "USD",
                                                    "paymentMethod": "card",
                                                    "paymentProvider": "primer_payments",
                                                    "psp": "STRIPE",
                                                    "paymentType": "visa",
                                                    "couponApplied": false,
                                                    "discountApplied": 0,
                                                    "subscriptionId": 261,
                                                    "items": [
                                                        {
                                                            "id": 2,
                                                            "sku": "bb-workout-upsell",
                                                            "title": "Workout Upsell",
                                                            "quantity": 1,
                                                            "price": 29.99,
                                                            "currency": "USD"
                                                        }
                                                    ]
                                                }
                                            ]
                                        },
                                        "initialSubscriptionRecurringCount": 4,
                                        "appAccountCreated": true,
                                        "registrationLink": "registration_url",
                                        "country": "US",
                                        "books": [
                                            {
                                                "createdAt": "2024-11-13",
                                                "status": "SENT",
                                                "externalStatus": "SHIPPED",
                                                "trackingDetails": {
                                                    "id": "1234567890",
                                                    "url": "https://www.fedex.com/fedextrack/?trknbr=1234567890"
                                                }
                                            }
                                        ],
                                        "ebooks": [
                                            {
                                                "url": "ebook_url"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/dispatcher/print-jobs/specified/actions/lulu-print-job-status-changed": {
            "post": {
                "tags": [
                    "Dispatcher"
                ],
                "description": "Webhook for Lulu print job status changing",
                "operationId": "lulu_print_job_status_changed",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LuluPrintJobStatusChangedRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No content"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "FunnelConfigProductResource": {
                "title": "FunnelConfigProductResource",
                "description": "Funnel Config Product Resource",
                "properties": {
                    "key": {
                        "description": "Product key",
                        "type": "string",
                        "example": "bb-kure-3-1-month-trial"
                    },
                    "sku": {
                        "description": "Product key",
                        "type": "string",
                        "example": "bb-kure-3-1-month-trial"
                    },
                    "type": {
                        "description": "Product type",
                        "type": "string",
                        "example": "digital"
                    },
                    "variant": {
                        "description": "Product variant",
                        "type": "string",
                        "example": "app"
                    },
                    "name": {
                        "description": "Product name",
                        "type": "string",
                        "example": "3 Month Beyond Body subscription"
                    },
                    "has_trials": {
                        "description": "Product can be trial",
                        "type": "boolean",
                        "example": "true"
                    },
                    "tags": {
                        "type": "array",
                        "items": {},
                        "example": [
                            "women_en_ebook",
                            "women_app"
                        ]
                    },
                    "plan": {
                        "$ref": "#/components/schemas/ProductPlanResource"
                    },
                    "price": {
                        "$ref": "#/components/schemas/ProductPriceResource"
                    },
                    "trial": {
                        "$ref": "#/components/schemas/ProductTrialResource"
                    }
                },
                "type": "object"
            },
            "MetricResource": {
                "title": "MetricResource",
                "description": "Metric resource",
                "properties": {
                    "id": {
                        "description": "The metric id",
                        "type": "integer",
                        "example": 1
                    },
                    "type": {
                        "description": "The metric type",
                        "type": "string",
                        "example": "water_intake"
                    },
                    "date_time": {
                        "description": "The metric date time",
                        "type": "string",
                        "example": "2021-10-10 10:10:10"
                    },
                    "value": {
                        "description": "The metric value",
                        "type": "string",
                        "example": "10"
                    }
                },
                "type": "object"
            },
            "ProductPlanResource": {
                "title": "ProductPlanResource",
                "description": "Product plan resource",
                "properties": {
                    "duration": {
                        "description": "Plan duration",
                        "type": "integer",
                        "example": 3
                    },
                    "type": {
                        "description": "Period type",
                        "type": "string",
                        "example": "months"
                    }
                },
                "type": "object"
            },
            "ProductPriceResource": {
                "title": "ProductPriceResource",
                "description": "Product Price Resource",
                "properties": {
                    "currency_id": {
                        "description": "Currency",
                        "type": "string",
                        "example": "EUR"
                    },
                    "price": {
                        "description": "Product price before discount",
                        "type": "number",
                        "format": "float",
                        "example": 105.5
                    },
                    "final_price": {
                        "description": "Product price after discount",
                        "type": "number",
                        "format": "float",
                        "example": 55
                    },
                    "discount": {
                        "description": "Applied discount amount",
                        "type": "number",
                        "format": "float",
                        "example": 50.5
                    },
                    "discount_per_cent": {
                        "description": "Applied discount amount",
                        "type": "number",
                        "format": "float",
                        "example": 0.48
                    },
                    "details": {
                        "description": "VAT information",
                        "properties": {
                            "has_vat": {
                                "description": "VAT applied",
                                "type": "boolean",
                                "example": true
                            },
                            "vat_amount": {
                                "description": "Vat applied to the price without discount",
                                "type": "number",
                                "format": "float",
                                "example": 13.2
                            },
                            "vat_excluded_price": {
                                "description": "Price without vat",
                                "type": "number",
                                "format": "float",
                                "example": 43.8
                            },
                            "vat_excluded_old_price": {
                                "description": "Price without vat and discount",
                                "type": "number",
                                "format": "float",
                                "example": 92.3
                            }
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "ProductTrialResource": {
                "title": "ProductPriceResource",
                "description": "Product Price Resource",
                "properties": {
                    "amount": {
                        "description": "Trial price after discount",
                        "type": "number",
                        "format": "float",
                        "example": 0
                    },
                    "old_amount": {
                        "description": "Trial price before discount",
                        "type": "number",
                        "format": "float",
                        "example": 15.5
                    },
                    "duration": {
                        "description": "Plan duration",
                        "type": "integer",
                        "example": 3
                    },
                    "type": {
                        "description": "Period type",
                        "type": "string",
                        "example": "months"
                    },
                    "details": {
                        "description": "VAT information",
                        "properties": {
                            "has_vat": {
                                "description": "VAT applied",
                                "type": "boolean",
                                "example": true
                            },
                            "vat_amount": {
                                "description": "Vat applied to the price without discount",
                                "type": "number",
                                "format": "float",
                                "example": 13.2
                            },
                            "vat_excluded_price": {
                                "description": "Price without vat",
                                "type": "number",
                                "format": "float",
                                "example": 43.8
                            },
                            "vat_excluded_old_price": {
                                "description": "Price without vat and discount",
                                "type": "number",
                                "format": "float",
                                "example": 92.3
                            }
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "LanguageResource": {
                "properties": {
                    "key": {
                        "description": "Class LanguageResource",
                        "type": "string",
                        "readOnly": "true",
                        "example": "language"
                    },
                    "type": {
                        "type": "string",
                        "readOnly": "true",
                        "example": "single"
                    },
                    "label": {
                        "type": "string",
                        "readOnly": "true",
                        "example": "Select your preferred language"
                    },
                    "options": {
                        "type": "array",
                        "items": {
                            "properties": {
                                "key": {
                                    "type": "string",
                                    "maxLength": 2,
                                    "example": "en"
                                },
                                "label": {
                                    "type": "string",
                                    "example": "English"
                                }
                            },
                            "type": "object"
                        }
                    }
                },
                "type": "object",
                "xml": {
                    "name": "Language"
                }
            },
            "OnboardingResource": {
                "properties": {
                    "key": {
                        "description": "Class OnboardingResource",
                        "type": "string",
                        "readOnly": "true",
                        "example": "nutrition"
                    },
                    "type": {
                        "type": "string",
                        "readOnly": "true",
                        "example": "info"
                    },
                    "label": {
                        "type": "string",
                        "readOnly": "true",
                        "example": "Our nutrition team gives you a personalized..."
                    },
                    "title": {
                        "type": "string",
                        "readOnly": "true",
                        "example": "Nutrition"
                    },
                    "image": {
                        "type": "string",
                        "readOnly": "true",
                        "example": "http://localhost:4814/assets/images/app/onboarding/nutrition.png"
                    },
                    "options": {
                        "type": "array",
                        "items": {}
                    }
                },
                "type": "object",
                "xml": {
                    "name": "Onboarding"
                }
            },
            "LuluPrintJobStatusChangedRequest": {
                "properties": {
                    "topic": {
                        "type": "enum",
                        "enum": [
                            "PRINT_JOB_STATUS_CHANGED"
                        ],
                        "example": "PRINT_JOB_STATUS_CHANGED"
                    },
                    "data": {
                        "type": "object",
                        "example": {
                            "id": 123456789,
                            "status": {
                                "name": "PRINTING",
                                "message": "The print job is being printed."
                            }
                        }
                    }
                },
                "type": "object"
            }
        },
        "responses": {
            "401": {
                "description": "Unauthorized"
            }
        },
        "parameters": {
            "clientCode": {
                "name": "clientCode",
                "in": "path",
                "description": "Client code",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "token": {
                "name": "token",
                "in": "path",
                "description": "Authorization token",
                "required": true,
                "schema": {
                    "type": "string"
                }
            }
        }
    },
    "tags": [
        {
            "name": "Client",
            "description": "Client"
        },
        {
            "name": "ClientMetrics",
            "description": "ClientMetrics"
        },
        {
            "name": "Meals",
            "description": "Meals"
        },
        {
            "name": "Callbacks",
            "description": "Callbacks"
        },
        {
            "name": "Onboarding",
            "description": "Onboarding"
        },
        {
            "name": "Project",
            "description": "Project"
        },
        {
            "name": "Quiz",
            "description": "Quiz"
        },
        {
            "name": "Shopping List",
            "description": "Shopping List"
        },
        {
            "name": "Subscription",
            "description": "Subscription"
        },
        {
            "name": "Workouts",
            "description": "Workouts"
        },
        {
            "name": "Zendesk",
            "description": "Zendesk"
        },
        {
            "name": "verification",
            "description": "verification"
        },
        {
            "name": "FireBaseClient",
            "description": "FireBaseClient"
        },
        {
            "name": "Funnel",
            "description": "Funnel"
        },
        {
            "name": "Resubcription",
            "description": "Resubcription"
        },
        {
            "name": "Pages",
            "description": "Pages"
        },
        {
            "name": "Geolocation",
            "description": "Geolocation"
        },
        {
            "name": "Lead",
            "description": "Lead"
        },
        {
            "name": "Order",
            "description": "Order"
        },
        {
            "name": "Product",
            "description": "Product"
        },
        {
            "name": "Session",
            "description": "Session"
        },
        {
            "name": "Supplements",
            "description": "Supplements"
        },
        {
            "name": "Upsell",
            "description": "Upsell"
        },
        {
            "name": "Feedback",
            "description": "Feedback"
        },
        {
            "name": "IAP",
            "description": "IAP"
        },
        {
            "name": "ClientZone",
            "description": "ClientZone"
        },
        {
            "name": "Support",
            "description": "Support"
        },
        {
            "name": "Dispatcher",
            "description": "Dispatcher"
        }
    ]
}