{
  "openapi": "3.0.0",
  "info": {
    "contact": {
      "email": "support@enad.io",
      "name": "API support",
      "url": "http://enad.io/support"
    },
    "description": "This is the documentation for Public API v1",
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "termsOfService": "http://enad.io/terms/",
    "title": "Public API",
    "version": "1.0"
  },
  "paths": {
    "/api/v1/omni/:app_id/:store_group/:market/:locale/brands": {
      "get": {
        "description": "Fetch all distinct brands for a given app and locale.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by brand ID",
            "in": "query",
            "name": "id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated brands response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_BrandWithSeries"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all brands",
        "tags": [
          "Brands"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/brands/:brand_id": {
      "get": {
        "description": "Fetch a single brand and its related products.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Brand ID",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Brand with products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-BrandWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID or brand ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Brand not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch a brand",
        "tags": [
          "Brands"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/brands/slug/:slug": {
      "get": {
        "description": "Fetch a single brand and its related products.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Brand ID",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Brand with products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-BrandWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID or brand ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Brand not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch a brand by slug",
        "tags": [
          "Brands"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/categories": {
      "get": {
        "description": "Returns a list of categories without subcategories, with support for pagination and filtering by active status.",
        "parameters": [
          {
            "description": "Application ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale for translations (e.g., 'sv', 'en')",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of items per page (default: 20, max: 100)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter to include only active categories (true/false)",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by category ID(s); repeat the parameter for each ID (e.g. id=uuid1&id=uuid2)",
            "in": "query",
            "name": "id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_github_com_enadhq_goomba_internal_pkg_models_CategoryDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Retrieve categories",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/category-tree": {
      "get": {
        "description": "Retrieves the complete hierarchical category structure for a given app",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale for translations",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "StoreGroup",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OkResponse-array_github_com_enadhq_goomba_internal_pkg_models_CategoryDTO"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get full category tree for an app",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/category-tree/:parent_id": {
      "get": {
        "description": "Retrieves the category hierarchy starting from a specific parent category",
        "parameters": [
          {
            "description": "Application ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Parent Category ID",
            "in": "path",
            "name": "parent_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale for translations",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market for the categories",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20) (max: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Fetch all child categories products as well",
            "in": "query",
            "name": "include_child_category_products",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-CategoryDTOWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get category tree from a specific parent",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/category-tree/id/:category_id": {
      "get": {
        "description": "Retrieves a category using its ID",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Category ID",
            "in": "path",
            "name": "category_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale for translations",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market to select products",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Items per page (default: 20) (max: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Fetch all child categories products as well",
            "in": "query",
            "name": "include_child_category_products",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-CategoryDTOWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get category by ID",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/category-tree/slugs": {
      "get": {
        "description": "Fetch all categories slugs",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 500)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of product slugs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_string"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all categories slugs",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/category-tree/uri/:uri": {
      "get": {
        "description": "Retrieves a category using its slug or translated slug",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Category Slug",
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale for translations",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market to select products",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Items per page (default: 20) (max: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Fetch all child categories products as well",
            "in": "query",
            "name": "include_child_category_products",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-CategoryDTOWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get category by slug",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/collections": {
      "get": {
        "description": "Fetch all collections for a given app",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Only active collections",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Items per page (default: 20, max: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by collection ID",
            "in": "query",
            "name": "id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of collections",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_github_com_enadhq_goomba_internal_pkg_models_CollectionDTO"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all collections",
        "tags": [
          "Collections"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/collections/slugs": {
      "get": {
        "description": "Fetch all collection slugs for a given app",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Items per page (default: 500, max 500)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of collection slugs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_string"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all collection slugs",
        "tags": [
          "Collections"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/collections/uri/:uri": {
      "get": {
        "description": "Fetch a single collection by its URI for a given app",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Collection URI",
            "in": "path",
            "name": "uri",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug. e.g `se`",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20, max: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Fetch all child categories products as well",
            "in": "query",
            "name": "include_child_collection_products",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Collection with paginated products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-CollectionDTOWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Collection not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch a collection by URI",
        "tags": [
          "Collections"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/facets/{facet_keys}": {
      "get": {
        "description": "Fetch available facets like attributes, variant names, and price ranges. Facet keys is a comma separated string. Valid keys are: \"attributes\", \"attributes[template_key1|template_key2]\", \"variant_names\", \"price\", \"tags\", \"collections\", \"categories\", \"brands\", \"series\", \"variant_with_attributes[template_key1|template_key2]\". Product filters are optional.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale for translations",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma-separated list of facet keys (e.g., attributes,attributes[color|size],variant_names,price,tags,collections,categories,brands,series,variant_with_attributes[color|size])",
            "in": "path",
            "name": "facet_keys",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma-separated list of category UUIDs to filter products",
            "in": "query",
            "name": "category_ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Comma-separated list of collection UUIDs to filter products",
            "in": "query",
            "name": "collection_ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Comma-separated list of product SKUs to filter products",
            "in": "query",
            "name": "skus",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Full text search on products",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Include variant attributes in the response",
            "in": "query",
            "name": "include_variants",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Only include facets from available products/variants",
            "in": "query",
            "name": "only_available",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Include products from child categories when filtering by category or category_id",
            "in": "query",
            "name": "include_child_category_products",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-github_com_enadhq_goomba_internal_pkg_models_FacetsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch facets",
        "tags": [
          "Facets"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/products": {
      "get": {
        "description": "Fetch all products with pagination and filtering",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The related product market",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 50, max: 50)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability",
            "in": "query",
            "name": "in_stock",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability in a specific warehouse (by warehouse slug)",
            "in": "query",
            "name": "in_stock_in",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. One of created_at_desc, created_at_asc, name_asc, name_desc, category_order_asc, category_order_desc, collection_order_asc, collection_order_desc, tag_order_asc, tag_order_desc, price_asc, price_desc",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by SKUs",
            "in": "query",
            "name": "sku",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by Variant Names",
            "in": "query",
            "name": "variant_name",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter on collections slugs",
            "in": "query",
            "name": "collection",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by tags key. e.g `black-friday`",
            "in": "query",
            "name": "tag",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by product slugs",
            "in": "query",
            "name": "slug",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by brand slug",
            "in": "query",
            "name": "brand",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by serie slug",
            "in": "query",
            "name": "serie",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by category slug",
            "in": "query",
            "name": "category",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by smart list slug",
            "in": "query",
            "name": "smart_list",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by static list slug",
            "in": "query",
            "name": "static_list",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these SKUs",
            "in": "query",
            "name": "not_in_sku",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products in these categories (by slug)",
            "in": "query",
            "name": "not_in_category",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products in these collections (by uri)",
            "in": "query",
            "name": "not_in_collection",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these tags (by key)",
            "in": "query",
            "name": "not_in_tag",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these brands (by slug)",
            "in": "query",
            "name": "not_in_brand",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these series (by slug)",
            "in": "query",
            "name": "not_in_serie",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by minimum price (inclusive)",
            "in": "query",
            "name": "price_gte",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by maximum price (inclusive)",
            "in": "query",
            "name": "price_lte",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by attributes (format: template_key/value_key, e.g., color/blue). Product must match all specified attributes.",
            "in": "query",
            "name": "attributes",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by category IDs (UUIDs). Product must be in at least one of the specified category IDs.",
            "in": "query",
            "name": "category_id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products in these category IDs (UUIDs).",
            "in": "query",
            "name": "not_in_category_id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Full text search on products",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include products from child categories when filtering by category or category_id",
            "in": "query",
            "name": "include_child_category_products",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_ProductDTOWithShortRelatedProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all products",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/products/search": {
      "get": {
        "description": "Search products with lightweight response containing only name, descriptions, tags, images and attributes",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The related product market",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 50, max: 50)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search query",
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by active status only (default: false)",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability",
            "in": "query",
            "name": "in_stock",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability in a specific warehouse (by warehouse slug)",
            "in": "query",
            "name": "in_stock_in",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. One of name_asc, name_desc, rank (default: rank)",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_ProductSearchResultDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Search products",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/products/sku/:sku": {
      "get": {
        "description": "Fetch product by sku",
        "parameters": [
          {
            "description": "The product sku",
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter to only get related information to the market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-ProductDTOWithBundles"
                }
              }
            }
          },
          "404": {
            "description": "Product not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch product by sku",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/products/skus/:skus": {
      "get": {
        "description": "Fetch all products with matching sku, the skus need to be comma separated",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated skus",
            "in": "path",
            "name": "skus",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter to only get related information to the market",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-array_ProductDTOWithShortRelatedProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all products by skus",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/products/slug/:slug": {
      "get": {
        "description": "Fetch product by slug",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The product slug",
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-ProductDTOWithBundles"
                }
              }
            }
          },
          "404": {
            "description": "Product not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch product by slug",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/products/slugs": {
      "get": {
        "description": "Fetch all products slugs",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 500)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Include products from child categories when filtering by category or category_id",
            "in": "query",
            "name": "include_child_category_products",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of product slugs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_string"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all products slugs",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/redirects": {
      "get": {
        "description": "Fetch redirects with pagination and filtering by product type.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Product type (product category collection product_bundle)",
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated redirects response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_Redirect"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch redirects",
        "tags": [
          "Redirects"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/redirects/:item_id": {
      "get": {
        "description": "Fetch redirects for a specific item ID with pagination.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Item ID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20, max: 100)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated redirects response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_Redirect"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID or item ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch redirects by item ID",
        "tags": [
          "Redirects"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/redirects/old-slug/:old_slug": {
      "get": {
        "description": "Fetch redirects for a specific old slug with pagination.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Old Slug",
            "in": "path",
            "name": "old_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20, max: 100)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated redirects response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_Redirect"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID or old slug",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch redirects by old slug",
        "tags": [
          "Redirects"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/series": {
      "get": {
        "description": "Fetch all distinct series for a given app and locale.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 50)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by series ID",
            "in": "query",
            "name": "id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated series response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_SeriesWithBrand"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all series",
        "tags": [
          "Series"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/series/:serie_id": {
      "get": {
        "description": "Fetch a single serie and its related products.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Serie ID",
            "in": "path",
            "name": "serie_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Serie with products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-internal_pkg_webserver_v1_SeriesWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID or serie ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Serie not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch a serie",
        "tags": [
          "Series"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/series/slug/:slug": {
      "get": {
        "description": "Fetch a single serie and its related products.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 20)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated series response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-internal_pkg_webserver_v1_SeriesWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid app ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch serie by slug",
        "tags": [
          "Series"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/tags": {
      "get": {
        "description": "Fetch all tags for a given app with pagination.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 100, max: 100)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active tags",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by tag ID",
            "in": "query",
            "name": "id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of tags",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_TagDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all tags",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/tags/{tag_id}": {
      "get": {
        "description": "Fetch a single tag by its ID and its related products, ordered by the product-tag relationship order.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag ID",
            "in": "path",
            "name": "tag_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number for products (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page for products (default: 50, max: 50)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag with paginated products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-internal_pkg_webserver_v1_TagDTOWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Tag not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch tag by ID",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/tags/key/{tag_key}": {
      "get": {
        "description": "Fetch a single tag by its key and its related products, ordered by the product-tag relationship order.",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market",
            "in": "path",
            "name": "market",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Locale",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number for products (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page for products (default: 50, max: 50)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active products",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag with paginated products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponse-internal_pkg_webserver_v1_TagDTOWithPaginatedProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Tag not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch tag by key",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/variants": {
      "get": {
        "description": "Fetch all variants with pagination and filtering",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The related product market",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 50, max: 50)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active products and variants",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability",
            "in": "query",
            "name": "in_stock",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability in a specific warehouse (by warehouse slug)",
            "in": "query",
            "name": "in_stock_in",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. One of created_at_desc, created_at_asc, name_asc, name_desc, category_order_asc, category_order_desc, collection_order_asc, collection_order_desc, tag_order_asc, tag_order_desc, variant_number_asc, variant_number_desc, variant_name_asc, variant_name_desc, price_asc, price_desc",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by SKUs (parent product)",
            "in": "query",
            "name": "sku",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by Variant Names",
            "in": "query",
            "name": "variant_name",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter on collections slugs (parent product)",
            "in": "query",
            "name": "collection",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by tags key (parent product). e.g `black-friday`",
            "in": "query",
            "name": "tag",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by product slugs (parent product)",
            "in": "query",
            "name": "slug",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by brand slug (parent product)",
            "in": "query",
            "name": "brand",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by serie slug (parent product)",
            "in": "query",
            "name": "serie",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by category slug (parent product)",
            "in": "query",
            "name": "category",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by smart list slug",
            "in": "query",
            "name": "smart_list",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by static list slug",
            "in": "query",
            "name": "static_list",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these SKUs (parent product)",
            "in": "query",
            "name": "not_in_sku",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products in these categories (by slug) (parent product)",
            "in": "query",
            "name": "not_in_category",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products in these collections (by uri) (parent product)",
            "in": "query",
            "name": "not_in_collection",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these tags (by key) (parent product)",
            "in": "query",
            "name": "not_in_tag",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these brands (by slug) (parent product)",
            "in": "query",
            "name": "not_in_brand",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products with these series (by slug) (parent product)",
            "in": "query",
            "name": "not_in_serie",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by minimum price (inclusive)",
            "in": "query",
            "name": "price_gte",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by maximum price (inclusive)",
            "in": "query",
            "name": "price_lte",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Filter by attributes (format: template_key/value_key, e.g., color/blue). Product or Variant must match all specified attributes.",
            "in": "query",
            "name": "attributes",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by category IDs (UUIDs). Product must be in at least one of the specified category IDs.",
            "in": "query",
            "name": "category_id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Exclude products in these category IDs (UUIDs).",
            "in": "query",
            "name": "not_in_category_id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Find all variants who have a specific attribute template mapped, e.g size",
            "in": "query",
            "name": "has_attribute_template",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Full text search on variants",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group variants by an attribute template key (e.g., 'color'). When used, only one variant per product and attribute value is returned.",
            "in": "query",
            "name": "group_by_attribute_template",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return related variants filtered by attribute combinations (e.g., 'color', 'color,size'). For single attributes, returns unique variants by that attribute within parent products. For two attributes, returns all variants in catalog sharing the first attribute values with unique second attribute values.",
            "in": "query",
            "name": "related_variants_attr",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_VariantDTOWithProductInfo"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Fetch all variants",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/omni/:app_id/:store_group/:market/:locale/variants/search": {
      "get": {
        "description": "Search variants with lightweight response containing only name, descriptions, tags, images and attributes",
        "parameters": [
          {
            "description": "App ID",
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Alpha 2 country code. e.g `se`",
            "in": "path",
            "name": "locale",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The related product market",
            "in": "path",
            "name": "market",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 50, max: 50)",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search query",
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by active status only (default: false)",
            "in": "query",
            "name": "only_active",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability",
            "in": "query",
            "name": "in_stock",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by stock availability in a specific warehouse (by warehouse slug)",
            "in": "query",
            "name": "in_stock_in",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. One of name_asc, name_desc, rank (default: rank)",
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkResponseWithPagignation-array_VariantSearchResultDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Search variants",
        "tags": [
          "Variants"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "//shopper-cdn.enad.io"
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "description": "Type \"Bearer\" followed by a space and a token.",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    },
    "schemas": {
      "Address": {
        "description": "Address represents a physical location with detailed address information.",
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "street_address": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AttributeDTO": {
        "description": "AttributeDTO represents the data transfer object for an attribute with its values.",
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "values": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeValueDTO"
              },
              "type": "array"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "AttributeValueDTO": {
        "description": "AttributeValueDTO represents the data transfer object for an attribute value with type information.",
        "properties": {
          "type": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Brand": {
        "description": "Brand represents a product brand",
        "properties": {
          "cover_url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "logo_url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "BrandDTO": {
        "description": "BrandDTO represents the data transfer object for a brand.",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "BrandWithPaginatedProducts": {
        "properties": {
          "cover_url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "logo_url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "products": {
            "$ref": "#/components/schemas/OkResponseWithPagignation-array_ProductDTOWithShortRelatedProduct"
          },
          "series": {
            "items": {
              "$ref": "#/components/schemas/Series"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "BrandWithSeries": {
        "description": "BrandWithSeries represents a product brand with its associated series.",
        "properties": {
          "cover_url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "logo_url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "series": {
            "items": {
              "$ref": "#/components/schemas/Series"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "BundleDTO": {
        "description": "BundleDTO represents the data transfer object for a bundle.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "discounts": {
            "$ref": "#/components/schemas/DiscountDTO"
          },
          "id": {
            "type": "string"
          },
          "item_rules": {
            "items": {
              "$ref": "#/components/schemas/BundleItemRuleDTO"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "products": {
            "items": {
              "$ref": "#/components/schemas/ProductDTO"
            },
            "type": "array"
          },
          "valid_date_range": {
            "$ref": "#/components/schemas/DateRange"
          }
        },
        "type": "object"
      },
      "BundleItemRuleDTO": {
        "description": "BundleItemRuleDTO represents the data transfer object for bundle item rules.",
        "properties": {
          "exclude_discounted_prices": {
            "type": "boolean"
          },
          "exclude_full_prices": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "item_rules": {
            "$ref": "#/components/schemas/DiscountDTO"
          },
          "product_skus": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "quantity": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CategoryDTOWithPaginatedProducts": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "full_path_name": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "full_uri_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "products": {
            "$ref": "#/components/schemas/OkResponseWithPagignation-array_ProductDTOWithShortRelatedProduct"
          },
          "redirects": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "slug_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "sort_order": {
            "type": "integer"
          },
          "status": {
            "type": "string"
          },
          "sub_categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CategoryDTO"
            },
            "type": "array"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CollectionDTOWithPaginatedProducts": {
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CollectionDTO"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "products": {
            "$ref": "#/components/schemas/OkResponseWithPagignation-array_ProductDTOWithShortRelatedProduct"
          },
          "title": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DateRange": {
        "description": "DateRange represents a time period with start and end dates.",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Dimensions": {
        "description": "Dimensions represents the physical measurements of a product or its packaging.",
        "properties": {
          "capacity_milliliter": {
            "type": "integer"
          },
          "depth": {
            "type": "integer"
          },
          "diameter": {
            "type": "integer"
          },
          "height": {
            "type": "integer"
          },
          "length": {
            "type": "integer"
          },
          "weight": {
            "type": "integer"
          },
          "width": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DiscountDTO": {
        "description": "DiscountDTO represents the data transfer object for discounts.",
        "properties": {
          "fixed_discounts": {
            "additionalProperties": {
              "format": "float64",
              "type": "number"
            },
            "type": "object"
          },
          "percentage": {
            "type": "integer"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ErrorMessage": {
        "description": "ErrorMessage is the response for a ErrorMessage",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FileDTO": {
        "description": "FileDTO represents the data transfer object for a file.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FilterTag": {
        "description": "FilterTag represents the data transfer object for a tag",
        "properties": {
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ImageDTO": {
        "description": "ImageDTO represents the data transfer object for an image.",
        "properties": {
          "alt": {
            "type": "string"
          },
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "blurhash": {
            "type": "string"
          },
          "sort": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPriceDTO": {
        "description": "MarketPriceDTO extends MarketPrice with additional tax-related information.",
        "properties": {
          "base_price_amount": {
            "type": "number"
          },
          "country_code": {
            "type": "string"
          },
          "country_codes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "currency": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "market_id": {
            "type": "string"
          },
          "market_slug": {
            "type": "string"
          },
          "on_sale": {
            "type": "boolean"
          },
          "reference_price_amount": {
            "type": "number"
          },
          "sale_end_timestamp": {
            "type": "string"
          },
          "sale_price_amount": {
            "type": "number"
          },
          "sale_start_timestamp": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OkResponse-BrandWithPaginatedProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/BrandWithPaginatedProducts"
          }
        },
        "type": "object"
      },
      "OkResponse-CategoryDTOWithPaginatedProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CategoryDTOWithPaginatedProducts"
          }
        },
        "type": "object"
      },
      "OkResponse-CollectionDTOWithPaginatedProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CollectionDTOWithPaginatedProducts"
          }
        },
        "type": "object"
      },
      "OkResponse-ProductDTOWithBundles": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ProductDTOWithBundles"
          }
        },
        "type": "object"
      },
      "OkResponse-array_ProductDTOWithShortRelatedProduct": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/ProductDTOWithShortRelatedProduct"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "OkResponse-array_github_com_enadhq_goomba_internal_pkg_models_CategoryDTO": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CategoryDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "OkResponse-github_com_enadhq_goomba_internal_pkg_models_FacetsResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.FacetsResponse"
          }
        },
        "type": "object"
      },
      "OkResponse-internal_pkg_webserver_v1_SeriesWithPaginatedProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.SeriesWithPaginatedProducts"
          }
        },
        "type": "object"
      },
      "OkResponse-internal_pkg_webserver_v1_TagDTOWithPaginatedProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.TagDTOWithPaginatedProducts"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_BrandWithSeries": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/BrandWithSeries"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_ProductDTOWithShortRelatedProduct": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/ProductDTOWithShortRelatedProduct"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_ProductSearchResultDTO": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/ProductSearchResultDTO"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_Redirect": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/Redirect"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_SeriesWithBrand": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/SeriesWithBrand"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_TagDTO": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/TagDTO"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_VariantDTOWithProductInfo": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/VariantDTOWithProductInfo"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_VariantSearchResultDTO": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/VariantSearchResultDTO"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_github_com_enadhq_goomba_internal_pkg_models_CategoryDTO": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CategoryDTO"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_github_com_enadhq_goomba_internal_pkg_models_CollectionDTO": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CollectionDTO"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "OkResponseWithPagignation-array_string": {
        "properties": {
          "data": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ProductBrand": {
        "description": "ProductBrand represents a brand with an optional series.",
        "properties": {
          "name": {
            "type": "string"
          },
          "series": {
            "$ref": "#/components/schemas/ProductSeries"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductCollectionDTO": {
        "description": "ProductCollectionDTO represents the data transfer object for a collection.",
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CollectionDTO"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          },
          "parent_id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductDTO": {
        "description": "ProductDTO represents the product data transfer object with all necessary fields for API responses.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "brands": {
            "$ref": "#/components/schemas/ProductBrand"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.ProductCategoryDTO"
            },
            "type": "array"
          },
          "collections": {
            "items": {
              "$ref": "#/components/schemas/ProductCollectionDTO"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/FileDTO"
            },
            "type": "array"
          },
          "html_description": {
            "type": "string"
          },
          "html_short_description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "in_stock": {
            "type": "boolean"
          },
          "is_active": {
            "type": "boolean"
          },
          "meta_description": {
            "type": "string"
          },
          "meta_title": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "redirects": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "short_description": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "slug_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/ProductTagDTO"
            },
            "type": "array"
          },
          "third_party_links": {
            "items": {
              "$ref": "#/components/schemas/ThirdPartyLinkDTO"
            },
            "type": "array"
          },
          "updated_at": {
            "type": "string"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/VariantDTO"
            },
            "type": "array"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductDTOWithBundles": {
        "description": "ProductDTOWithBundles extends ProductDTO to include associated bundles.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "brands": {
            "$ref": "#/components/schemas/ProductBrand"
          },
          "bundles": {
            "items": {
              "$ref": "#/components/schemas/BundleDTO"
            },
            "type": "array"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.ProductCategoryDTO"
            },
            "type": "array"
          },
          "collections": {
            "items": {
              "$ref": "#/components/schemas/ProductCollectionDTO"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/FileDTO"
            },
            "type": "array"
          },
          "html_description": {
            "type": "string"
          },
          "html_short_description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "in_stock": {
            "type": "boolean"
          },
          "is_active": {
            "type": "boolean"
          },
          "meta_description": {
            "type": "string"
          },
          "meta_title": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "redirects": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "related_products": {
            "items": {
              "$ref": "#/components/schemas/ProductRelationsDTO"
            },
            "type": "array"
          },
          "short_description": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "slug_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/ProductTagDTO"
            },
            "type": "array"
          },
          "third_party_links": {
            "items": {
              "$ref": "#/components/schemas/ThirdPartyLinkDTO"
            },
            "type": "array"
          },
          "updated_at": {
            "type": "string"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/VariantDTO"
            },
            "type": "array"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductDTOWithRelatedProductSummary": {
        "description": "ProductDTOWithBundles extends ProductDTO to related product summary",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductDTOWithShortRelatedProduct": {
        "description": "ProductDTOWithBundles extends ProductDTO to include associated bundles.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "brands": {
            "$ref": "#/components/schemas/ProductBrand"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.ProductCategoryDTO"
            },
            "type": "array"
          },
          "collections": {
            "items": {
              "$ref": "#/components/schemas/ProductCollectionDTO"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/FileDTO"
            },
            "type": "array"
          },
          "html_description": {
            "type": "string"
          },
          "html_short_description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "in_stock": {
            "type": "boolean"
          },
          "is_active": {
            "type": "boolean"
          },
          "meta_description": {
            "type": "string"
          },
          "meta_title": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "redirects": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "related_products": {
            "items": {
              "$ref": "#/components/schemas/ProductDTOWithRelatedProductSummary"
            },
            "type": "array"
          },
          "short_description": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "slug_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/ProductTagDTO"
            },
            "type": "array"
          },
          "third_party_links": {
            "items": {
              "$ref": "#/components/schemas/ThirdPartyLinkDTO"
            },
            "type": "array"
          },
          "updated_at": {
            "type": "string"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/VariantDTO"
            },
            "type": "array"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductInventoryWithInformation": {
        "description": "ProductInventoryWithInformation represents inventory data along with its warehouse information.",
        "properties": {
          "inventory_date": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "warehouse": {
            "$ref": "#/components/schemas/Warehouse"
          }
        },
        "type": "object"
      },
      "ProductRelationsDTO": {
        "description": "ProductRelationsDTO represents the relationship between products in its data transfer object form.",
        "properties": {
          "direction": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "main_product": {
            "type": "string"
          },
          "products": {
            "items": {
              "$ref": "#/components/schemas/ProductDTO"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductSearchResultDTO": {
        "description": "ProductSearchResultDTO represents a lightweight search result for products.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "brand": {
            "$ref": "#/components/schemas/ProductBrand"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/VariantPricesDTO"
            },
            "type": "array"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/ProductTagDTO"
            },
            "type": "array"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductSeries": {
        "description": "ProductSeries represents a series within a product brand.",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductTagDTO": {
        "description": "ProductTagDTO represents the data transfer object for a tag with simplified market information.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "created_at": {
            "type": "string"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Redirect": {
        "description": "Redirect represents URL redirection rules for various item types in the system.",
        "properties": {
          "id": {
            "type": "string"
          },
          "item_id": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "new_slug": {
            "type": "string"
          },
          "old_slug": {
            "type": "string"
          },
          "redirect_type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Series": {
        "description": "Series represents a product series within a brand.",
        "properties": {
          "cover_url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "logo_url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "SeriesDTO": {
        "description": "SeriesDTO represents the data transfer object for a series.",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SeriesWithBrand": {
        "description": "Series represents a product series within a brand which also includes the brand",
        "properties": {
          "brand": {
            "$ref": "#/components/schemas/Brand"
          },
          "cover_url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "logo_url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "TagDTO": {
        "description": "TagDTO represents the data transfer object for a tag with simplified market information.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "created_at": {
            "type": "string"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ThirdPartyLinkDTO": {
        "description": "ThirdPartyLinkDTO represents a third-party link in its data transfer object form.",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "VariantDTO": {
        "description": "VariantDTO represents the data transfer object for a product variant.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "dimensions": {
            "$ref": "#/components/schemas/Dimensions"
          },
          "id": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "inventories": {
            "items": {
              "$ref": "#/components/schemas/ProductInventoryWithInformation"
            },
            "type": "array"
          },
          "is_active": {
            "type": "boolean"
          },
          "packaging_dimensions": {
            "$ref": "#/components/schemas/Dimensions"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/VariantPricesDTO"
            },
            "type": "array"
          },
          "shipping_attributes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/TagDTO"
            },
            "type": "array"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "VariantDTOWithProductInfo": {
        "description": "VariantDTOWithProductInfo extends VariantDTO to include information from its parent product.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "brands": {
            "$ref": "#/components/schemas/ProductBrand"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.ProductCategoryDTO"
            },
            "type": "array"
          },
          "collections": {
            "items": {
              "$ref": "#/components/schemas/ProductCollectionDTO"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "dimensions": {
            "$ref": "#/components/schemas/Dimensions"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/FileDTO"
            },
            "type": "array"
          },
          "html_description": {
            "type": "string"
          },
          "html_short_description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "inventories": {
            "items": {
              "$ref": "#/components/schemas/ProductInventoryWithInformation"
            },
            "type": "array"
          },
          "is_active": {
            "type": "boolean"
          },
          "meta_description": {
            "type": "string"
          },
          "meta_title": {
            "type": "string"
          },
          "packaging_dimensions": {
            "$ref": "#/components/schemas/Dimensions"
          },
          "parent_attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/VariantPricesDTO"
            },
            "type": "array"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "redirects": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "related_variants": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.RelatedVariant"
            },
            "type": "array"
          },
          "shipping_attributes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "short_description": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "slug_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/TagDTO"
            },
            "type": "array"
          },
          "third_party_links": {
            "items": {
              "$ref": "#/components/schemas/ThirdPartyLinkDTO"
            },
            "type": "array"
          },
          "updated_at": {
            "type": "string"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "VariantPricesDTO": {
        "description": "VariantPricesDTO extends VariantPrices with additional store group information.",
        "properties": {
          "channel_type": {
            "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.ChannelType"
          },
          "country_of_sale": {
            "type": "string"
          },
          "markets": {
            "items": {
              "$ref": "#/components/schemas/MarketPriceDTO"
            },
            "type": "array"
          },
          "store_group_description": {
            "type": "string"
          },
          "store_group_id": {
            "type": "string"
          },
          "store_group_name": {
            "type": "string"
          },
          "store_group_slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "VariantSearchResultDTO": {
        "description": "VariantSearchResultDTO represents a lightweight search result for variants.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "brand": {
            "$ref": "#/components/schemas/ProductBrand"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/VariantPricesDTO"
            },
            "type": "array"
          },
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/TagDTO"
            },
            "type": "array"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "VideoDTO": {
        "description": "VideoDTO represents the data transfer object for a video.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Warehouse": {
        "description": "Warehouse represents a storage facility for product inventory.",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_goomba_internal_pkg_models.CategoryDTO": {
        "description": "CategoryDTO represents the data transfer object for a category.",
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "full_path_name": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "full_uri_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "redirects": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "slug_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "sort_order": {
            "type": "integer"
          },
          "status": {
            "type": "string"
          },
          "sub_categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CategoryDTO"
            },
            "type": "array"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_goomba_internal_pkg_models.ChannelType": {
        "enum": [
          "B2B",
          "B2C"
        ],
        "type": "string",
        "x-enum-varnames": [
          "B2B",
          "B2C"
        ]
      },
      "github_com_enadhq_goomba_internal_pkg_models.CollectionDTO": {
        "description": "CollectionDTO represents the data transfer object for a collection.",
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CollectionDTO"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_goomba_internal_pkg_models.FacetPriceRange": {
        "properties": {
          "max": {
            "type": "number"
          },
          "min": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_goomba_internal_pkg_models.FacetVariantWithAttributes": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "$ref": "#/components/schemas/AttributeDTO"
            },
            "type": "object"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_goomba_internal_pkg_models.FacetsResponse": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "brands": {
            "items": {
              "$ref": "#/components/schemas/BrandDTO"
            },
            "type": "array"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CategoryDTO"
            },
            "type": "array"
          },
          "collections": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CollectionDTO"
            },
            "type": "array"
          },
          "price_range": {
            "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.FacetPriceRange"
          },
          "series": {
            "items": {
              "$ref": "#/components/schemas/SeriesDTO"
            },
            "type": "array"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/FilterTag"
            },
            "type": "array"
          },
          "variant_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "variant_with_attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.FacetVariantWithAttributes"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_goomba_internal_pkg_models.ProductCategoryDTO": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "full_path_name": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "full_uri_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          },
          "parent_id": {
            "type": "string"
          },
          "redirects": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "slug_translations": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "sort_order": {
            "type": "integer"
          },
          "status": {
            "type": "string"
          },
          "sub_categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_goomba_internal_pkg_models.CategoryDTO"
            },
            "type": "array"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_goomba_internal_pkg_models.RelatedVariant": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "image_url": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/ImageDTO"
            },
            "type": "array"
          },
          "inventories": {
            "items": {
              "$ref": "#/components/schemas/ProductInventoryWithInformation"
            },
            "type": "array"
          },
          "is_active": {
            "type": "boolean"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/VariantPricesDTO"
            },
            "type": "array"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/TagDTO"
            },
            "type": "array"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_id": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SeriesWithPaginatedProducts": {
        "properties": {
          "brand": {
            "$ref": "#/components/schemas/Brand"
          },
          "cover_url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "logo_url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "products": {
            "$ref": "#/components/schemas/OkResponseWithPagignation-array_ProductDTOWithShortRelatedProduct"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.TagDTOWithPaginatedProducts": {
        "properties": {
          "attributes": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/AttributeDTO"
              },
              "type": "array"
            },
            "type": "object"
          },
          "created_at": {
            "type": "string"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "products": {
            "$ref": "#/components/schemas/OkResponseWithPagignation-array_ProductDTOWithShortRelatedProduct"
          },
          "status": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  }
}
