{
  "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/:team_slug/:app_slug/attributes": {
      "get": {
        "description": "Retrieves all attribute templates for the current application including their field definitions and associated attributes. Supports pagination, filtering by resources, searching, and sorting.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter on attribute templates for different type of resources",
            "in": "query",
            "name": "resources",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Search for attribute templates",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of  `created_at`, `name` and `type` (Default is `created_at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter the result on template key",
            "in": "query",
            "name": "template_key",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Amount of products per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attributes templates and corresponding attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeTemplateList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List attribute templates",
        "tags": [
          "Attribute Templates"
        ]
      },
      "post": {
        "description": "Creates a new attribute template that defines the structure and fields for attributes. Templates specify field types (image, text, boolean, number, color) and can be associated with resources like products, categories, or tags. Reserved field keys (key, name, description) cannot be used.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAttributeTemplate"
              }
            }
          },
          "description": "Attribute data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create attribute template",
        "tags": [
          "Attribute Templates"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key": {
      "delete": {
        "description": "Permanently deletes an attribute template by key, including all associated field definitions. Attributes created from this template are not deleted.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attribute deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeTemplateString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete attribute template",
        "tags": [
          "Attribute Templates"
        ]
      },
      "get": {
        "description": "Retrieves a single attribute template by key, including its field definitions, associated attributes, and their values. Supports searching and sorting of attributes within the template.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search for attributes within a template",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of  `created_at`, `name` and `type` (Default is `created_at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attributes template and corresponding attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get attribute template",
        "tags": [
          "Attribute Templates"
        ]
      },
      "patch": {
        "description": "Updates an existing attribute template including its name, key, type, fields, and resource associations. If a field with the same key already exists, it will be updated rather than duplicated.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateAttributeTemplatePayload"
              }
            }
          },
          "description": "Attribute data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Attribute template",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update attribute template",
        "tags": [
          "Attribute Templates"
        ]
      },
      "post": {
        "description": "Creates a new attribute using the specified template. Field values are validated against the template's field definitions (e.g., image fields require valid images, number fields must be numeric). For each template image field, send a file part using the field key, or a public image URL in the same form key, or reference an existing app image by UUID: use form field `image_id` when the field key is `image`, otherwise `<field_key>_image_id` (e.g. `hero_image_id`).",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "Used to update the key for the attribute. Leave blank if you don't want to update the key",
                    "type": "string"
                  },
                  "name": {
                    "description": "VariantName for the attribute",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description for the attribute",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttribute"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create attribute",
        "tags": [
          "Attributes"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key/:attribute_key": {
      "delete": {
        "description": "Permanently deletes an attribute by its template and attribute key. Publishes an attribute deletion event to notify dependent systems.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute key",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attribute, it's values and fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeWithFields"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete attribute",
        "tags": [
          "Attributes"
        ]
      },
      "get": {
        "description": "Retrieves a single attribute by template key and attribute key, including its field values, field definitions, linked attributes, and translations.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute key",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attribute, it's values and fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeWithFields"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get attribute",
        "tags": [
          "Attributes"
        ]
      },
      "patch": {
        "description": "Updates an existing attribute including its key, name, description, and field values. Field values are validated against the template's field types (e.g., image fields must be valid images, number fields must be numeric). For image fields, you may upload a file, pass a public image URL in the field key, or reference an existing app image by UUID via form field `image_id` when the field key is `image`, otherwise `<field_key>_image_id`.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute key",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "Unique key for the attribute. This needs to be unique per template.",
                    "type": "string"
                  },
                  "name": {
                    "description": "VariantName for the attribute",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description for the attribute",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeWithFields"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update attribute",
        "tags": [
          "Attributes"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key/:attribute_key/field/:field_key": {
      "delete": {
        "description": "Removes a specific field value from an attribute by field key. Publishes an attribute update event after deletion.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute key",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Field key, e.g `size`",
            "in": "path",
            "name": "field_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attribute value deleted ok response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete attribute value",
        "tags": [
          "Attributes"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key/:attribute_key/link/:attribute_template_key_2:/:attribute_key_2": {
      "delete": {
        "description": "Removes the bidirectional link between two attributes. After unlinking, adding one attribute to an item will no longer automatically add the other.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template you want to link to",
            "in": "path",
            "name": "attribute_template_key_2",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute you want to link to",
            "in": "path",
            "name": "attribute_key_2",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attribute link deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeWithFields"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete attribute link",
        "tags": [
          "Attributes"
        ]
      },
      "put": {
        "description": "Creates a link between two attributes. When one linked attribute is added to a product, tag, or category, the other linked attribute is automatically added as well.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template you want to link to",
            "in": "path",
            "name": "attribute_template_key_2",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute you want to link to",
            "in": "path",
            "name": "attribute_key_2",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attribute link created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeWithFields"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Link attributes",
        "tags": [
          "Attributes"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key/:attribute_key/relationship": {
      "delete": {
        "description": "Removes relationships between an attribute and one or more items (products, tags, categories, etc.). Publishes a relationship deletion event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAttributeRelationshipField"
              }
            }
          },
          "description": "Items IDs you want to remove a relationship with",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Attribute relationship created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete attribute relationship",
        "tags": [
          "Attributes"
        ]
      },
      "put": {
        "description": "Creates relationships between an attribute and one or more items (products, tags, categories, etc.). Publishes a relationship creation event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute template",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Key of the attribute",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAttributeRelationshipField"
              }
            }
          },
          "description": "Items IDs you want to create a relationship with",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Attribute relationship created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create attribute relationship",
        "tags": [
          "Attributes"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key/bulk": {
      "patch": {
        "description": "Partially updates multiple attributes for a specified attribute template. Only provided fields are modified; omitted fields remain unchanged. Supports various field types including text, number, boolean, color, and images (via URL, base64, raw image UUID string, or {\"image_id\":\"uuid\"} for an existing app image). Automatically uploads images to Cloudflare when not referencing by id. Returns lists of successful and failed updates with detailed error reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchAttributesPayload"
              }
            }
          },
          "description": "Attributes to update (max 50)",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Attributes processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchAttributes"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Attribute template not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Update Attributes",
        "tags": [
          "Attributes",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates multiple attributes for a specified attribute template in a single operation. Supports various field types including text, number, boolean, color, and images (via URL, base64, raw image UUID string, or {\"image_id\":\"uuid\"} for an existing app image). Automatically uploads images to Cloudflare when not referencing by id. Returns lists of successful and failed creations with detailed error reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributesPayload"
              }
            }
          },
          "description": "Attributes to create (max 50)",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Attributes processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateAttributes"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Attribute template not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Create Attributes",
        "tags": [
          "Attributes",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key/field": {
      "put": {
        "description": "Creates a new field definition or updates an existing one in the attribute template. If a field with the same key exists, its name and type will be overwritten.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "New or updated field",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeTemplateString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create or update attribute template field",
        "tags": [
          "Attribute Template Fields"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/:attribute_template_key/field/:attribute_template_field_key": {
      "delete": {
        "description": "Permanently deletes a field definition from an attribute template. This also removes all field values associated with this field from all attributes using the template.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template field key",
            "in": "path",
            "name": "attribute_template_field_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attribute template field deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeTemplateString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete attribute template field",
        "tags": [
          "Attribute Template Fields"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/bulk": {
      "post": {
        "description": "Creates multiple attribute templates in a single atomic operation. Each template can have custom fields defined. Returns lists of successful and failed creations with detailed error reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributeTemplatesPayload"
              }
            }
          },
          "description": "Attribute templates to create (max 50)",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Templates processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateAttributeTemplates"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Create Attribute Templates",
        "tags": [
          "Attribute Templates",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/relationships/bulk": {
      "delete": {
        "description": "Removes associations between multiple attributes and multiple items in a single operation. Each removal breaks the link between one attribute and one or more items. Returns lists of successful and failed removals with detailed error reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyAttributeRelationshipsPayload"
              }
            }
          },
          "description": "Attribute-item relationships to delete (max 50)",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relationships processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkRemoveAttributeRelationships"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Delete Attribute-Item Relationships",
        "tags": [
          "Attributes",
          "Bulk"
        ]
      },
      "post": {
        "description": "Associates multiple attributes with multiple items in a single operation. Each relationship links one attribute to one or more items. Validates attribute existence before creating relationships. Returns lists of successful and failed associations with detailed error reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyAttributeRelationshipsPayload"
              }
            }
          },
          "description": "Attribute-item relationships to create (max 50)",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relationships processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkAddAttributeRelationships"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Create Attribute-Item Relationships",
        "tags": [
          "Attributes",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/attributes/values": {
      "get": {
        "description": "Retrieves all attributes for the current application with support for pagination, filtering by template keys, searching by name, and sorting by various fields.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter attributes by template keys (e.g., template_key=color&template_key=size)",
            "in": "query",
            "name": "template_key",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Search term to filter attributes by name",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of `name`, `created_at`, `updated_at`, `key`. Default `created_at`",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of attributes per page. Minimum 1 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of attributes with pagination details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseAttributeList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g., bad pagination parameters, invalid sort key)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List application attributes",
        "tags": [
          "Attributes"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/brands": {
      "get": {
        "description": "Retrieves a paginated list of all brands for the app with optional filtering by name. Supports sorting by name, created_at, or updated_at in ascending or descending order. Includes brand details and all associated series for each brand.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Name of brand used for filtering",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of items per page (max 100)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "What key to sort on. One of name, created_at or updated_at",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order, one of desc or asc",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Brands returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.BrandResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all brands",
        "tags": [
          "Brands"
        ]
      },
      "post": {
        "description": "Creates a new brand with the provided name, slug, logo, cover image, and description. Validates that the brand name and slug are unique within the app.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.BrandRequest"
        },
        "responses": {
          "200": {
            "description": "Brand created succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.BrandResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new brand",
        "tags": [
          "Brands"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/brands/:brand_id": {
      "delete": {
        "description": "Deletes a brand and all its associated series by brand ID. Also removes any orphaned redirects associated with the deleted brand and series.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Brand deleted succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a brand",
        "tags": [
          "Brands"
        ]
      },
      "get": {
        "description": "Retrieves a single brand and all its associated series by brand ID. Includes brand details, logo, cover image, description, translations, and all series under the brand.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Brand returned succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.BrandResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Retrieve a brand by ID",
        "tags": [
          "Brands"
        ]
      },
      "put": {
        "description": "Updates an existing brand's name, slug, logo, cover image, and description. Validates that the brand exists and that the updated name/slug are unique.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.BrandRequest"
        },
        "responses": {
          "200": {
            "description": "Brand updated succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.BrandResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update an existing brand",
        "tags": [
          "Brands"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/brands/:brand_id/series": {
      "get": {
        "description": "Retrieves all series belonging to the specified brand with optional filtering by name. Validates that the brand exists. Includes series details, logo, cover image, description, and translations for each series.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Name of series used for filtering",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Series retrieved succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SeriesResponseList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all series for a brand",
        "tags": [
          "Brands"
        ]
      },
      "post": {
        "description": "Creates a new series under the specified brand with the provided name, slug, logo, cover image, and description. Validates that the parent brand exists and that the series name and slug are unique.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.BrandSeriesRequest"
        },
        "responses": {
          "200": {
            "description": "Series created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SeriesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new series under a brand",
        "tags": [
          "Brands"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/brands/:brand_id/series/:series_id": {
      "delete": {
        "description": "Deletes a series by series ID and brand ID. Validates that the series belongs to the specified brand. All products linked to the series will be moved to the parent brand.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "series_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Series deleted succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a series",
        "tags": [
          "Brands"
        ]
      },
      "get": {
        "description": "Retrieves a single series by series ID and brand ID. Validates that the series belongs to the specified brand. Includes series details, logo, cover image, description, and translations.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of series",
            "in": "path",
            "name": "series_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Series retrieved succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SeriesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Retrieve a series by ID",
        "tags": [
          "Brands"
        ]
      },
      "put": {
        "description": "Updates an existing series' name, slug, logo, cover image, and description. Validates that the parent brand exists and that the series belongs to the specified brand. Ensures the updated name/slug are unique.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "brand_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Id of brand",
            "in": "path",
            "name": "series_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.BrandSeriesRequest"
        },
        "responses": {
          "200": {
            "description": "Series updated succesfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SeriesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update an existing series",
        "tags": [
          "Brands"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups": {
      "get": {
        "description": "Retrieves a paginated list of product bundle groups for the specified app, including their associated bundles, markets, and translations. Optionally filter by bundle group name using the search parameter.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of bundle groups per page. Minimum 1 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search on bundle group name",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product bundle group lists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroupList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Bundle Groups",
        "tags": [
          "Product Bundle Groups"
        ]
      },
      "post": {
        "description": "Creates a new product bundle group with optional start and end dates. Bundle groups are containers for bundles that share common configuration and availability settings.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateProductBundleGroupPayload"
              }
            }
          },
          "description": "Product bundle group data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Product created or updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Bundle Group",
        "tags": [
          "Product Bundle Groups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id": {
      "delete": {
        "description": "Permanently deletes a product bundle group and all its associated bundles. Triggers a deletion sync event to remove the bundle group from downstream systems.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group UUID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Bundle deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroupDeleted"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete Bundle Group",
        "tags": [
          "Product Bundle Groups"
        ]
      },
      "get": {
        "description": "Retrieves a single product bundle group including all associated bundles, markets, translations, and compliance status.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group UUID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search on bundle name",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product bundle group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Bundle Group",
        "tags": [
          "Product Bundle Groups"
        ]
      },
      "patch": {
        "description": "Updates the name, description, start date, and end date of an existing product bundle group. Only provided fields will be updated. Triggers a sync event if the bundle group is compliant.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group UUID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateProductBundlePayload"
              }
            }
          },
          "description": "Product bundle data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Product created or updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update Bundle Group",
        "tags": [
          "Product Bundle Groups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/bundles": {
      "post": {
        "description": "Creates a new product bundle within the specified bundle group. The bundle can have relative or fixed discount configurations. Product bundles are treated as individual products across different sales channels.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group UUID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateProductBundlePayload"
              }
            }
          },
          "description": "Product bundle configuration",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Product bundle created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundle"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create product bundle",
        "tags": [
          "Product Bundles"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/bundles/:bundle_id": {
      "delete": {
        "description": "Permanently deletes the specified product bundle from the bundle group. Cannot delete the last remaining bundle in a group. Also removes any orphaned redirects associated with the bundle.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group UUID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle UUID",
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product bundle deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleDeleted"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete product bundle",
        "tags": [
          "Product Bundles"
        ]
      },
      "get": {
        "description": "Retrieves detailed information about a specific product bundle, including its configuration, status, discount rules, and validation status.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group UUID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle UUID",
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product bundle retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundle"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get product bundle",
        "tags": [
          "Product Bundles"
        ]
      },
      "patch": {
        "description": "Updates the specified product bundle's status, discount type, discount percentage, and discount rules. Supports partial updates where only provided fields are modified.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group UUID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle UUID",
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateProductBundlePayload"
              }
            }
          },
          "description": "Product bundle update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Product bundle updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundle"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update product bundle",
        "tags": [
          "Product Bundles"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/bundles/:bundle_id/rules": {
      "get": {
        "description": "Retrieves all bundle rules for a specific bundle, including their products, discount settings, and tag conditions.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Bundle ID",
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of bundle rules",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleRules"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Bundle not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all bundle rules",
        "tags": [
          "Bundle Rules"
        ]
      },
      "post": {
        "description": "Creates a new bundle rule within a bundle, specifying products, quantity, discount settings, and optional tag conditions for product matching.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Bundle ID",
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateBundleRulePayload"
              }
            }
          },
          "description": "Bundle rule configuration",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Bundle rule created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleRule"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Bundle not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a bundle rule",
        "tags": [
          "Bundle Rules"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/bundles/:bundle_id/rules/:rule_id": {
      "delete": {
        "description": "Removes a bundle rule from a bundle. Note that bundles must have at least one rule.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Rule ID",
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Bundle rule deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.Message"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Bundle rule not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a bundle rule",
        "tags": [
          "Bundle Rules"
        ]
      },
      "get": {
        "description": "Retrieves a single bundle rule by its ID, including associated products, discount settings, and tag conditions.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Rule ID",
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Bundle rule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleRule"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Bundle rule not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a bundle rule",
        "tags": [
          "Bundle Rules"
        ]
      },
      "put": {
        "description": "Updates an existing bundle rule's configuration including products, quantity, discount settings, and tag conditions.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Rule ID",
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateBundlePayload"
              }
            }
          },
          "description": "Bundle rule configuration",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Bundle rule updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleRule"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Bundle rule not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a bundle rule",
        "tags": [
          "Bundle Rules"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/markets/:market_slug": {
      "delete": {
        "deprecated": true,
        "description": "Deprecated: Removes a market association from the product bundle group by removing it from all store groups within that market. A bundle group must have at least one market.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group ID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated product bundle group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove Market from Bundle Group (Deprecated)",
        "tags": [
          "Product Bundle Groups"
        ],
        "x-alt-ref": {
          "endpoint": "DELETE /api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/store-groups/:store_group/markets/:market_slug"
        }
      },
      "put": {
        "deprecated": true,
        "description": "Deprecated: Associates a market with the product bundle group by adding it to all store groups within that market. Markets define regional availability for bundles.",
        "parameters": [
          {
            "description": "Product bundle group ID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add Market to Bundle Group (Deprecated)",
        "tags": [
          "Product Bundle Groups"
        ],
        "x-alt-ref": {
          "endpoint": "PUT /api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/store-groups/:store_group/markets/:market_slug"
        }
      }
    },
    "/api/v1/:team_slug/:app_slug/bundle-groups/:bundle_group_id/store-groups/:store_group/markets/:market_slug": {
      "delete": {
        "description": "Removes the association between a specific market within a store group and the product bundle group. A bundle group must have at least one market. Triggers a sync event if the bundle group is compliant.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product bundle group ID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated product bundle group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove Store Group Market from Bundle Group",
        "tags": [
          "Product Bundle Groups"
        ]
      },
      "put": {
        "description": "Associates a specific market within a store group with the product bundle group. This enables fine-grained control over which markets the bundle is available in per store group. Triggers a sync event if the bundle group is compliant.",
        "parameters": [
          {
            "description": "Product bundle group ID",
            "in": "path",
            "name": "product_bundle_group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundleGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add Store Group Market to Bundle Group",
        "tags": [
          "Product Bundle Groups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/categories": {
      "get": {
        "description": "Retrieves a paginated list of categories for an app with optional search, sorting, and filtering capabilities",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search on category name",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of products per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of `name`, `sort_order`, `created-at`, `updated-at` (Default is `created-at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Categories list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCategoryList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Categories",
        "tags": [
          "Categories"
        ]
      },
      "post": {
        "description": "Creates a new category with optional parent, translations, and sort order",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCategory"
              }
            }
          },
          "description": "Category data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "The category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCategory"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Category",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/categories/:category_id": {
      "delete": {
        "description": "Deletes a category and all its child categories recursively, along with associated translations and redirects",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Category ID",
            "in": "path",
            "name": "category_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCategoryRemove"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete Category",
        "tags": [
          "Categories"
        ]
      },
      "get": {
        "description": "Retrieves a single category by ID, including its children, translations, attributes, and redirects",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Category ID",
            "in": "path",
            "name": "category_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCategory"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Category",
        "tags": [
          "Categories"
        ]
      },
      "patch": {
        "description": "Updates a category with partial data. Only provided fields are updated. If parent_id is omitted or null, the category becomes a root category",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Category ID",
            "in": "path",
            "name": "category_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputUpdateCategory"
              }
            }
          },
          "description": "Category data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "The category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCategory"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update Category",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/categories/:category_id/products": {
      "get": {
        "description": "Retrieves a paginated list of products associated with a specific category",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID for category",
            "in": "path",
            "name": "category_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of items per page",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Got a list of all products from category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Category Products",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/categories/bulk": {
      "delete": {
        "description": "Deletes multiple categories simultaneously in a single bulk operation. Supports recursive deletion of category hierarchies (up to 100 categories), automatically removing all child categories, associated translations, and orphaned redirects.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteCategoriesPayload"
              }
            }
          },
          "description": "Category IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Categories deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteCategories"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Delete Categories",
        "tags": [
          "Categories",
          "Bulk"
        ]
      },
      "patch": {
        "description": "Updates multiple categories simultaneously in a single bulk operation. Supports partial updates for up to 50 categories per request, including name, slug, parent, status, translations, and sort order modifications.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchCategoriesPayload"
              }
            }
          },
          "description": "Categories data to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Categories updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchCategories"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Update Categories",
        "tags": [
          "Categories",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates multiple categories simultaneously in a single bulk operation. Supports up to 50 categories per request with optional parent relationships, translations, and custom sort order.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateCategoriesPayload"
              }
            }
          },
          "description": "Categories data to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Categories created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateCategories"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Create Categories",
        "tags": [
          "Categories",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/categories/products/bulk": {
      "delete": {
        "description": "Removes multiple products from multiple categories simultaneously in a single bulk operation. Supports up to 50 category-product relationship items per request, automatically publishing update events for affected products.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyCategoryProductsPayload"
              }
            }
          },
          "description": "Product and category relationships to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products removed from categories successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkRemoveProductsFromCategories"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Remove Products from Categories",
        "tags": [
          "Categories",
          "Bulk"
        ]
      },
      "post": {
        "description": "Adds multiple products to multiple categories simultaneously in a single bulk operation. Supports up to 50 category-product relationship items per request, automatically handling sort order and publishing update events for affected products and categories.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyCategoryProductsPayload"
              }
            }
          },
          "description": "Product and category relationships to create",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products added to categories successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkAddProductsToCategories"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Add Products to Categories",
        "tags": [
          "Categories",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/categories/tree": {
      "get": {
        "description": "Retrieves the hierarchical category tree structure for an app with parent-child relationships and optional sorting",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of `name`, `sort_order`, `created_at`, `updated_at` (Default is `created-at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Categories tree",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCategoryList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Category Tree",
        "tags": [
          "Categories"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels": {
      "get": {
        "description": "Retrieves all channels for the app, including their associated tag rules.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channels retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseChannelList"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List channels",
        "tags": [
          "Channels"
        ]
      },
      "post": {
        "description": "Creates a new channel linked to a store group and optional market. Validates the store group and market exist before creation.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCreateChannel"
              }
            }
          },
          "description": "Channel data",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Channel created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseChannel"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Store group or market not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels/:channel_id": {
      "delete": {
        "description": "Deletes a channel. Related records are cascade-deleted by the database.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channel deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.Message"
                }
              }
            }
          },
          "400": {
            "description": "Invalid channel ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Channel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a channel",
        "tags": [
          "Channels"
        ]
      },
      "get": {
        "description": "Retrieves a channel by its ID, including all associated tag rules.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channel retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseChannel"
                }
              }
            }
          },
          "404": {
            "description": "Channel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a channel",
        "tags": [
          "Channels"
        ]
      },
      "patch": {
        "description": "Updates a channel's name, slug, description, and active status.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputUpdateChannel"
              }
            }
          },
          "description": "Channel update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Channel updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseChannel"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Channel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels/:channel_id/products": {
      "delete": {
        "description": "Removes many products from a channel. IDs that were not members go in `successful` (post-condition idempotent). Unknown product IDs go in `failed`.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddChannelProductMembershipsPayload"
              }
            }
          },
          "description": "Product IDs to remove",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Bulk remove result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_BulkChannelMembershipResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Channel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk remove products from channel",
        "tags": [
          "Channels"
        ]
      },
      "post": {
        "description": "Adds many products to a channel in one transaction. Each product's status is computed from the channel's effective publishing rule. Already-members are refreshed and returned in `successful`. Invalid IDs go in `failed` with a reason.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddChannelProductMembershipsPayload"
              }
            }
          },
          "description": "Product IDs to add",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Bulk add result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_BulkChannelMembershipResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Channel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk add products to channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels/:channel_id/products/:product_id": {
      "delete": {
        "description": "Removes a product from a channel. Returns 200 even if the product was not a member.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Membership removed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.Message"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Channel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove product from channel",
        "tags": [
          "Channels"
        ]
      },
      "put": {
        "description": "Adds a product to a channel as an explicit member. The status field is computed synchronously from the channel's effective publishing rule. Re-adding an existing member is an idempotent refresh.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Membership added",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_ChannelProductMembership"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Channel or product not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add product to channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels/{channel_id}/content": {
      "post": {
        "description": "Creates or updates a channel content override for a product or variant. Supports text fields (name, description, slug, etc.) and relationship fields (category, collection, tag, attribute, image).",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCreateChannelContent"
              }
            }
          },
          "description": "Channel content data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_ChannelContent"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Create Channel Content Override",
        "tags": [
          "Channels",
          "ChannelContent"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels/{channel_id}/content/{content_id}": {
      "delete": {
        "description": "Permanently deletes a channel content override and all its associated relationships by ID.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Content ID",
            "in": "path",
            "name": "content_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Delete Channel Content Override",
        "tags": [
          "Channels",
          "ChannelContent"
        ]
      },
      "patch": {
        "description": "Partially updates an existing channel content override. Allows modification of text values or relationship associations based on the field type.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Content ID",
            "in": "path",
            "name": "content_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputUpdateChannelContent"
              }
            }
          },
          "description": "Channel content update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_ChannelContent"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Update Channel Content Override",
        "tags": [
          "Channels",
          "ChannelContent"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels/{channel_id}/content/bulk": {
      "patch": {
        "description": "Updates multiple existing channel content overrides in a single operation. Supports partial success — individual failures don't affect successful updates.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUpdateChannelContentPayload"
              }
            }
          },
          "description": "Channel content data to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_BulkUpdateChannelContentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Bulk Update Channel Content Overrides",
        "tags": [
          "Channels",
          "ChannelContent",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates or updates multiple channel content overrides for products or variants in a single operation. Supports partial success — individual failures don't affect successful creations.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateChannelContentPayload"
              }
            }
          },
          "description": "Channel content data to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_BulkCreateChannelContentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Bulk Create Channel Content Overrides",
        "tags": [
          "Channels",
          "ChannelContent",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/channels/{channel_id}/content/parent/{parent_id}": {
      "get": {
        "description": "Retrieves all channel content overrides for a specific product or variant within a channel.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Channel ID",
            "in": "path",
            "name": "channel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Parent ID (product or variant)",
            "in": "path",
            "name": "parent_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_ChannelContent"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "List Channel Content Overrides by Parent",
        "tags": [
          "Channels",
          "ChannelContent"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/collections": {
      "delete": {
        "description": "Permanently deletes a collection, its translations, and associated redirects.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of collection",
            "in": "path",
            "name": "collection_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Collection deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionStringResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a collection",
        "tags": [
          "Collections"
        ]
      },
      "get": {
        "description": "Retrieves paginated list of collections with translations and redirects. Supports search filtering and pagination.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of collection",
            "in": "path",
            "name": "collection_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of items per page",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "All collections for the app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all collections",
        "tags": [
          "Collections"
        ]
      },
      "patch": {
        "description": "Updates collection properties (title, slug, status, parent). Automatically creates redirects when slug changes if automation is enabled.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.PatchCollectionBody"
              }
            }
          },
          "description": "Collection data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Collection updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.FullCollectionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a collection",
        "tags": [
          "Collections"
        ]
      },
      "post": {
        "description": "Creates a new collection with the specified title, slug, status, and optional parent. Returns the created collection with translations and redirects.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionRequest"
              }
            }
          },
          "description": "Collection data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Collection created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.FullCollectionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new collection",
        "tags": [
          "Collections"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/collections/:collection_id": {
      "get": {
        "description": "Retrieves a collection with all translations, redirects, and its children (nested collections).",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of collection",
            "in": "path",
            "name": "collection_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Collection updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.FullCollectionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a collection by ID",
        "tags": [
          "Collections"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/collections/:collection_id/products": {
      "delete": {
        "description": "Removes one or more products from a collection. Products remain in the system but are no longer associated with the collection.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of collection",
            "in": "path",
            "name": "collection_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionProductRequest"
              }
            }
          },
          "description": "Product IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Collection updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionStringResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove products from collection",
        "tags": [
          "Collections"
        ]
      },
      "get": {
        "description": "Retrieves paginated list of products in a collection. Optionally includes products from child collections using the 'children' query parameter.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "slug for collection",
            "in": "path",
            "name": "collection_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Flag for if products of children should be included ",
            "in": "query",
            "name": "children",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of items per page",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Got a list of all products from collection",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List products in a collection",
        "tags": [
          "Collections"
        ]
      },
      "put": {
        "description": "Adds one or more products to a collection. Validates that products exist and are not deleted before association.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of collection",
            "in": "path",
            "name": "collection_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionProductRequest"
              }
            }
          },
          "description": "Product IDs to add",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Collection updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionStringResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add products to collection",
        "tags": [
          "Collections"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/collections/bulk": {
      "delete": {
        "description": "Deletes multiple collections by their IDs in a single request. Accepts up to 100 collection IDs. Also removes associated translations. Returns lists of successful and failed deletions.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteCollectionsPayload"
              }
            }
          },
          "description": "Collection IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Collections deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteCollections"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk delete collections",
        "tags": [
          "Collections",
          "Bulk"
        ]
      },
      "patch": {
        "description": "Updates multiple collections in a single request. Accepts up to 50 collections with partial updates to title, slug, status, or parent. Returns lists of successful and failed updates.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchCollectionsPayload"
              }
            }
          },
          "description": "Collections data to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Collections updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchCollections"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk update collections",
        "tags": [
          "Collections",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates multiple collections in a single request. Accepts up to 50 collections with optional parent relationships. Returns lists of successful and failed creations.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateCollectionsPayload"
              }
            }
          },
          "description": "Collections data to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Collections created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateCollections"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk create collections",
        "tags": [
          "Collections",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/collections/products/bulk": {
      "delete": {
        "description": "Removes multiple products from multiple collections in a single request. Accepts up to 50 collection-product relationships. Returns lists of successful and failed removals.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyCollectionProductsPayload"
              }
            }
          },
          "description": "Product and collection relationships to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products removed from collections successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkRemoveProductsFromCollections"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk remove products from collections",
        "tags": [
          "Collections",
          "Bulk"
        ]
      },
      "post": {
        "description": "Adds multiple products to multiple collections in a single request. Accepts up to 50 collection-product relationships. Returns lists of successful and failed additions.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyCollectionProductsPayload"
              }
            }
          },
          "description": "Product and collection relationships to create",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products added to collections successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkAddProductsToCollections"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk add products to collections",
        "tags": [
          "Collections",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/collections/tree": {
      "get": {
        "description": "Retrieves all collections organized as a nested tree structure based on parent-child relationships, with translations and redirects.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "All collections for the app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get collection tree",
        "tags": [
          "Collections"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/custom-roles": {
      "get": {
        "description": "List all custom roles within an app",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search by name",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of  `created_at`, `updated_at`, and `name` (Default is `created_at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of custom roles per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of app custom roles",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCustomRoleList"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all custom roles within pagination",
        "tags": [
          "CustomRoles"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/files/:file_id/folder": {
      "put": {
        "description": "Sets or updates the folder_id for a file",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "File ID",
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SetMediaFolderRequest"
        },
        "responses": {
          "200": {
            "description": "File folder updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-bool"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Set File Folder",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/folders": {
      "get": {
        "description": "Retrieves all accessible Digital Asset Management folders in a flat list with pagination support. Includes media counts and supports sorting by name, creation date, or update date.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default: 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page (default: 100)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Sort key: name, created_at, updated_at (default: created_at)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order: asc, desc (default: desc)",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Folders retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFolders"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List DAM Folders (Flat View)",
        "tags": [
          "DAM"
        ]
      },
      "post": {
        "description": "Creates a new Digital Asset Management folder with automatic slug generation from the name. The folder can be nested under a parent folder and configured as public or private.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateFolderRequest"
              }
            }
          },
          "description": "Folder details",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Folder created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFolder"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create DAM Folder",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/folders/:folder_id": {
      "delete": {
        "description": "Deletes an empty Digital Asset Management folder. Folders containing images, videos, files, or subfolders cannot be deleted. Default folders cannot be deleted.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Folder deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-bool"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Folder not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete DAM Folder",
        "tags": [
          "DAM"
        ]
      },
      "get": {
        "description": "Retrieves a single Digital Asset Management folder by ID, including counts of images, videos, and files within the folder",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Folder retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFolder"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Folder not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get DAM Folder by ID",
        "tags": [
          "DAM"
        ]
      },
      "patch": {
        "description": "Updates an existing Digital Asset Management folder's properties including name, parent folder, and visibility. The slug remains unchanged after updates to maintain consistent references.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateFolderRequest"
              }
            }
          },
          "description": "Folder details",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Folder updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFolder"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Folder not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update DAM Folder",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/folders/:folder_id/items/bulk": {
      "put": {
        "description": "Sets or updates the folder_id for multiple media items (images, videos, files)",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkSetMediaFolderRequest"
              }
            }
          },
          "description": "Items to move",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Items moved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Set Media Folder",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/folders/:folder_id/media": {
      "get": {
        "description": "Retrieves all media (images, videos, files) for a specific folder with pagination",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter on status. Valid status: active, inactive, pending, draft",
            "in": "query",
            "name": "status",
            "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 by media type: image, video, or file",
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Full-text search: images match filename_search (filename); videos and files match path basename and title",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Media retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFolderMedia"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Folder Media",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/folders/:folder_id/roles/:role_id": {
      "delete": {
        "description": "Removes a role from a folder",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Role ID",
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Role removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-bool"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Role not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove Role from Folder",
        "tags": [
          "DAM"
        ]
      },
      "put": {
        "description": "Adds a role to a folder for access control",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Role ID",
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Role added successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-bool"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add Role to Folder",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/folders/:folder_id/tree": {
      "get": {
        "description": "Retrieves a folder tree starting from a specific folder",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Folder ID",
            "in": "path",
            "name": "folder_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Folder tree retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFolderTreeItem"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Folder not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Folder Tree from Path",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/folders/tree": {
      "get": {
        "description": "Retrieves the complete hierarchical tree of all accessible Digital Asset Management folders with nested child folders and media counts",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Folder tree retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFolderTree"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get DAM Folder Hierarchy Tree",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/images/:image_id/folder": {
      "put": {
        "description": "Sets or updates the folder_id for an image",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SetMediaFolderRequest"
        },
        "responses": {
          "200": {
            "description": "Image folder updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-bool"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Set Image Folder",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/shareable-links": {
      "get": {
        "description": "Retrieves a paginated list of all shareable links for the app, with optional filtering by folder ID",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "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 by folder ID",
            "in": "query",
            "name": "folder-id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Shareable links retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseShareableLinks"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all shareable links",
        "tags": [
          "DAM"
        ]
      },
      "post": {
        "description": "Creates a new shareable link that allows sharing of DAM resources (folders, images, videos, files) with optional description and expiration date",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateShareableLinkRequest"
              }
            }
          },
          "description": "Shareable link details",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Shareable link created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseShareableLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new shareable link",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/shareable-links/:link_id": {
      "delete": {
        "description": "Permanently deletes a shareable link and removes all resource associations (folders, images, videos, files)",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Shareable link ID",
            "in": "path",
            "name": "link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Shareable link deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-bool"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Shareable link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a shareable link",
        "tags": [
          "DAM"
        ]
      },
      "get": {
        "description": "Retrieves detailed information about a specific shareable link including all associated folders, images, videos, and files with full resource details",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Shareable link ID",
            "in": "path",
            "name": "link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Shareable link retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseShareableLinkWithResources"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Shareable link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a specific shareable link",
        "tags": [
          "DAM"
        ]
      },
      "patch": {
        "description": "Updates the description and/or expiration date of a specific shareable link",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Shareable link ID",
            "in": "path",
            "name": "link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateShareableLinkRequest"
              }
            }
          },
          "description": "Update details",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Shareable link updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseShareableLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Shareable link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a shareable link",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/shareable-links/:link_id/resources": {
      "delete": {
        "description": "Removes multiple folders, images, videos, and files from a shareable link in a single batch operation",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Shareable link ID",
            "in": "path",
            "name": "link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.RemoveResourcesFromShareableLinkRequest"
              }
            }
          },
          "description": "Resources to remove",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Resources removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseShareableLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Shareable link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove resources from a shareable link",
        "tags": [
          "DAM"
        ]
      },
      "post": {
        "description": "Adds multiple folders, images, videos, and files to a shareable link in a single batch operation",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Shareable link ID",
            "in": "path",
            "name": "link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.AddResourcesToShareableLinkRequest"
              }
            }
          },
          "description": "Resources to add",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Resources added successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseShareableLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Shareable link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add resources to a shareable link",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/dam/videos/:video_id/folder": {
      "put": {
        "description": "Sets or updates the folder_id for a video",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Video ID",
            "in": "path",
            "name": "video_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SetMediaFolderRequest"
        },
        "responses": {
          "200": {
            "description": "Video folder updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSingleItem-bool"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Set Video Folder",
        "tags": [
          "DAM"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/drafts": {
      "get": {
        "description": "Retrieves a paginated list of all product drafts for the current app, including draft metadata, changeset summaries, and scheduled publication times.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "description": "Items per page",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Drafts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductDraftList"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Product Drafts",
        "tags": [
          "Product Drafts"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/files": {
      "get": {
        "description": "Retrieves a paginated list of all files for an application, including translations, attributes, and CDN URLs. Supports sorting by title, type, created_at, or updated_at in ascending or descending order.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of `title`,  `type`, `created_at`, `updated_at` (Default is `created-at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Files retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFiles"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Files",
        "tags": [
          "Files"
        ]
      },
      "put": {
        "description": "Uploads a file to Cloudflare R2 storage, creates a database record with metadata (title, type, visibility), and returns the created file with its CDN URL. Supports both public and private file visibility settings.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/putApiV1_teamSlug_appSlugFiles"
        },
        "responses": {
          "200": {
            "description": "File uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFile"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Upload File",
        "tags": [
          "Files"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/files/:file_id": {
      "delete": {
        "description": "Permanently deletes a file from Cloudflare R2 storage, removes all database records, translations, relationships with products, and clears CDN cache. Triggers product update events for all items that previously used this file.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "File ID",
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFileString"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "File not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete File",
        "tags": [
          "Files"
        ]
      },
      "get": {
        "description": "Retrieves detailed information about a specific file, including translations, attributes, CDN URL, and references to products/items that use this file. Returns 404 if the file does not exist.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "File ID",
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFileWithReferences"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "File not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get File",
        "tags": [
          "Files"
        ]
      },
      "patch": {
        "description": "Updates file metadata (title, type, visibility) and optionally replaces the file content in storage. If the file content is updated, the old file is replaced in Cloudflare R2. Triggers product update events for all items using this file.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "File ID",
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/putApiV1_teamSlug_appSlugFiles"
        },
        "responses": {
          "200": {
            "description": "File updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFile"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "File not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update File",
        "tags": [
          "Files"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/files/:file_id/relationships/:item_id": {
      "delete": {
        "description": "Removes the relationship between a file and a product/item, disassociating the file from that product. Triggers a product update event to propagate changes.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "File ID",
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Item ID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relationship deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFileString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete File Relationship",
        "tags": [
          "Files"
        ]
      },
      "put": {
        "description": "Creates a relationship between a file and a product/item, allowing the file to be associated with and used by that product. Triggers a product update event to propagate changes.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "File ID",
            "in": "path",
            "name": "file_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Item ID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relationship created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseFileString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add File Relationship",
        "tags": [
          "Files"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/images": {
      "get": {
        "description": "Fetches all images associated with an app",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by attribute IDs",
            "in": "query",
            "name": "attribute_id",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Search by filename",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of  `created_at`, `updated_at`, `title`, and `alt` (Default is `created_at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of images per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of app images",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImages"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Retrieve all images",
        "tags": [
          "Images"
        ]
      },
      "put": {
        "description": "Uploads an image by either URL or file. If both a URL and file are provided, the URL will be used over the file. A URL can be provided without a file, and vice versa.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Try to connect the image to a product or variant using the filename. If filename matches an existing product or variant do we connect it. We do also allow decide priority when connect_to_sku is true. The format for the filenames is sku_priority.extension and if the format don't match sku_priority(e.g sku.jpeg) do we fallback to priority 10",
            "in": "query",
            "name": "connect_to_sku",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Try to connect the image to a product usign the filename. If filename matches an existing product do we connect it. We do also allow decide priority when connect_to_sku is true. The format for the filenames is slug_priority.extension and if the format don't match slug_priority(e.g slug.jpeg) do we fallback to priority 10",
            "in": "query",
            "name": "connect_to_slug",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "description": "Image title",
                    "type": "string"
                  },
                  "alt": {
                    "description": "Alternative image text",
                    "type": "string"
                  },
                  "copyright": {
                    "description": "Image copyright text",
                    "type": "string"
                  },
                  "image": {
                    "description": "Image file to upload",
                    "type": "string",
                    "format": "binary"
                  },
                  "url": {
                    "description": "Url to source file. Url will be used if provided over file",
                    "type": "string"
                  },
                  "status": {
                    "description": "Status for image. One of `active`, `inactive`, `draft`",
                    "type": "string"
                  },
                  "filename": {
                    "description": "Custom filename (without extension)",
                    "type": "string"
                  },
                  "blurhash": {
                    "description": "Optional precomputed blurhash. If provided, generation is skipped",
                    "type": "string"
                  },
                  "parent_id": {
                    "description": "Parent image ID",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Image uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Upload image",
        "tags": [
          "Images"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/images/:image_id": {
      "delete": {
        "description": "Removes a specific image from the image gallery and deletes all associated translations",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImageString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete image",
        "tags": [
          "Images"
        ]
      },
      "get": {
        "description": "Fetches a single image by ID with all metadata including translations, attributes, variants, and usage information",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Got image",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Retrieve image",
        "tags": [
          "Images"
        ]
      },
      "patch": {
        "description": "Updates image metadata including title, alt text, copyright, status, custom fields, filename, parent image, and visibility",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateImageMetadata"
              }
            }
          },
          "description": "Image data",
          "required": true,
          "x-s2o-overloaded": true
        },
        "responses": {
          "200": {
            "description": "Image updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update image",
        "tags": [
          "Images"
        ],
        "x-s2o-warning": "Operation patch:/api/v1/:team_slug/:app_slug/images/:image_id has multiple requestBodies"
      }
    },
    "/api/v1/:team_slug/:app_slug/images/:image_id/relationship": {
      "delete": {
        "description": "Removes an image relationship between an image and a product, variant, or attribute",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.DeleteItemImageRelationship"
              }
            }
          },
          "description": "Image relationship data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Image deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImageString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete image relationship",
        "tags": [
          "Images"
        ]
      },
      "put": {
        "description": "Creates a new relationship between an image and a product or variant with optional priority ordering",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.AddImageRelationship"
              }
            }
          },
          "description": "Image relationship data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Image deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImageString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create image relationship",
        "tags": [
          "Images"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/images/{image_id}/relationships/bulk": {
      "delete": {
        "description": "Removes relationships between an image and up to 100 items. Automatically renormalizes image priorities after each removal to maintain consistent ordering. Returns lists of successful and failed removals with error details.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveImageRelationshipsPayload"
              }
            }
          },
          "description": "Items to unlink from the image",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relationships removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkRemoveImageRelationships"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Image not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Remove Image Relationships",
        "tags": [
          "Images",
          "Bulk"
        ]
      },
      "put": {
        "description": "Creates relationships between an image and up to 100 items (products or variants) with optional priority ordering. Validates that each item exists and is not deleted before creating the relationship. Returns lists of successful and failed relationship creations with error details.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddImageRelationshipsPayload"
              }
            }
          },
          "description": "Items to link to the image",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relationships added successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkAddImageRelationships"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Image not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Add Image Relationships",
        "tags": [
          "Images",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/images/bulk": {
      "delete": {
        "description": "Permanently deletes up to 100 images by their IDs. Removes images from Cloudflare CDN, purges cache, and deletes all associated translations and relationships. Returns lists of successfully deleted and failed deletion attempts with error details.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteImagesPayload"
              }
            }
          },
          "description": "Image IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Images deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteImages"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Delete Images",
        "tags": [
          "Images",
          "Bulk"
        ]
      },
      "post": {
        "description": "Uploads up to 10 images from base64 encoded strings or URLs. Supports automatic product/variant association via filename matching with SKU or slug. Generates blurhash automatically if not provided. Returns lists of successful and failed uploads with detailed error reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUploadImagesPayload"
              }
            }
          },
          "description": "Images to upload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Images uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkUploadImages"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Upload Images",
        "tags": [
          "Images",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/logs/:item_id": {
      "get": {
        "description": "Retrieves all historical logs associated with a specific item, including log level, message, and timestamp",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Item ID (e.g., product UUID)",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of logs for the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseLogsList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g., bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Item Logs",
        "tags": [
          "Logs"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/markets": {
      "get": {
        "description": "Retrieves markets configured for the specified application with pagination, including their locale, currency, and country code settings.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of markets per page. Minimum 1 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of markets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMarketList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all markets",
        "tags": [
          "Markets"
        ]
      },
      "post": {
        "description": "Creates a new market with the specified configuration including name, slug, locale, currency code, and associated country codes.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputMarket"
        },
        "responses": {
          "200": {
            "description": "Market created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMarket"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new market",
        "tags": [
          "Markets"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/markets/:market_slug": {
      "delete": {
        "description": "Deletes a market and its associated relationships including tax groups, tax group markets, and product variant prices. Triggers events to update dependent systems.",
        "parameters": [
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Market deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMarketDeleted"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a market",
        "tags": [
          "Markets"
        ]
      },
      "get": {
        "description": "Retrieves detailed information for a specific market including its name, locale, currency code, active status, and associated country codes.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Market details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMarket"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a market by slug",
        "tags": [
          "Markets"
        ]
      },
      "patch": {
        "description": "Updates an existing market's configuration including name, slug, locale, currency code, active status, and associated country codes.",
        "parameters": [
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputMarket"
        },
        "responses": {
          "200": {
            "description": "Market updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMarket"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update an existing market",
        "tags": [
          "Markets"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/omnichannels": {
      "post": {
        "description": "Creates a new omnichannel entry or updates an existing one for a parent entity (product, variant, or translation). Supports text fields (name, description, slug, etc.) and relationship fields (category, collection, tag, attribute, image).",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateOmniChannel"
              }
            }
          },
          "description": "Omnichannel data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_Omnichannel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Create Omnichannel Entry",
        "tags": [
          "Omnichannels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/omnichannels/{omnichannel_id}": {
      "delete": {
        "description": "Permanently deletes an omnichannel entry and all its associated relationships by ID.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Omnichannel ID",
            "in": "path",
            "name": "omnichannel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Delete Omnichannel Entry",
        "tags": [
          "Omnichannels"
        ]
      },
      "patch": {
        "description": "Partially updates an existing omnichannel entry. Allows modification of text values or relationship associations based on the field type.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Omnichannel ID",
            "in": "path",
            "name": "omnichannel_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateOmniChannel"
              }
            }
          },
          "description": "Omnichannel data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_Omnichannel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Update Omnichannel Entry",
        "tags": [
          "Omnichannels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/omnichannels/{parent_id}": {
      "get": {
        "description": "Retrieves all omnichannel entries associated with a specific parent entity (product, variant, or translation) with pagination support.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Parent ID",
            "in": "path",
            "name": "parent_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseList-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_Omnichannel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "List Omnichannel Entries by Parent",
        "tags": [
          "Omnichannels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/omnichannels/all": {
      "get": {
        "description": "Retrieves all omnichannel entries for an application, grouped by product with pagination support. Returns product details along with their associated omnichannel entries.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Items per page",
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseList-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_OmnichannelProduct"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "List All Omnichannel Entries",
        "tags": [
          "Omnichannels"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/omnichannels/bulk": {
      "patch": {
        "description": "Updates multiple existing omnichannel entries in a single atomic operation. Supports partial success - individual failures don't affect successful updates. Updates either the value field for text-based types or relationships for relationship-based types, depending on the omnichannel's field type.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchOmnichannelsPayload"
              }
            }
          },
          "description": "Omnichannels data to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Omnichannels updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchOmnichannels"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Bulk Update Omnichannels",
        "tags": [
          "Omnichannels",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates or updates multiple omnichannel entries for products, variants, or translations in a single atomic operation. Supports partial success - individual failures don't affect successful creations. Validates field types, relationships, and parent references before processing.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateOmnichannelsPayload"
              }
            }
          },
          "description": "Omnichannels data to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Omnichannels created/updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateOmnichannels"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Bulk Create Omnichannels",
        "tags": [
          "Omnichannels",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders": {
      "get": {
        "description": "Retrieves a paginated list of orders for the application. Supports optional search filtering by order reference or ID.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "description": "Items per page",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer",
              "default": 20
            }
          },
          {
            "description": "Search query",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Orders retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseList-array_internal_pkg_webserver_v1_OrderResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all orders",
        "tags": [
          "Orders"
        ]
      },
      "post": {
        "description": "Creates a new order with order lines, addresses, and payment information. Validates that all products and variants exist. Publishes an order created event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCreateOrder"
              }
            }
          },
          "description": "Order data",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Order created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (validation error, product/variant not found)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create order",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders/:order_id": {
      "delete": {
        "description": "Cancels an order by setting its status to 'cancelled'. The order remains retrievable and a history entry is created. Publishes an order cancelled event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Order cancelled successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_MessageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid order ID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Cancel order",
        "tags": [
          "Orders"
        ]
      },
      "get": {
        "description": "Retrieves complete order details including addresses, order lines, discounts, user content, and merchant user information.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Order retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid order ID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get order by ID",
        "tags": [
          "Orders"
        ]
      },
      "patch": {
        "description": "Updates order fields including addresses, payment information, and optionally replaces all order lines. Validates products and variants. Publishes an order updated event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputUpdateOrder"
              }
            }
          },
          "description": "Order update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Order updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (validation error, product/variant not found)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update order",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders/:order_id/history": {
      "get": {
        "description": "Retrieves a chronological list of all changes made to an order, including status transitions, address updates, and line modifications.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Order history retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-array_internal_pkg_webserver_v1_OrderHistoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid order ID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get order history",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders/:order_id/lines": {
      "get": {
        "description": "Retrieves all order lines for a specific order, including enriched product and variant information such as names, numbers, descriptions, and images.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Order lines retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-array_internal_pkg_webserver_v1_OrderLineResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid order ID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get order lines",
        "tags": [
          "Orders"
        ]
      },
      "post": {
        "description": "Adds a new order line to an existing order with quantity, pricing, and tax information. Validates that the product and variant exist. Publishes an order updated event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderLine"
              }
            }
          },
          "description": "Order line data",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Order line created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderLineResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (validation error, product/variant not found)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create order line",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders/:order_id/lines/:line_id": {
      "delete": {
        "description": "Removes an order line from an existing order. Creates an order history entry and publishes an order updated event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order line ID (UUID)",
            "in": "path",
            "name": "line_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Order line deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_MessageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (line doesn't belong to order)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order or order line not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete order line",
        "tags": [
          "Orders"
        ]
      },
      "patch": {
        "description": "Updates an existing order line's product, variant, quantity, pricing, and tax information. Validates that the product and variant exist. Publishes an order updated event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order line ID (UUID)",
            "in": "path",
            "name": "line_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderLine"
              }
            }
          },
          "description": "Order line update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Order line updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderLineResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (validation error, product/variant not found, line doesn't belong to order)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order or order line not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update order line",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders/:order_id/status": {
      "patch": {
        "description": "Updates the order status to one of: placed, refunded, compensated, released, delivered, or cancelled. Creates a history entry tracking the status transition. Publishes an order updated event.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Order ID (UUID)",
            "in": "path",
            "name": "order_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputUpdateOrderStatus"
              }
            }
          },
          "description": "Status update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Order status updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (validation error, invalid status)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Order not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update order status",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders/merchant-user/:user_id": {
      "get": {
        "description": "Retrieves a paginated list of orders associated with a specific merchant user, including all order details and related data.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID (UUID)",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "description": "Items per page",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Orders retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseList-array_internal_pkg_webserver_v1_OrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid user ID format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Merchant user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List orders by merchant user",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/orders/metrics": {
      "get": {
        "description": "Retrieves aggregated sales metrics for a specified date range. Returns hourly or daily granularity with order counts and sales totals grouped by currency.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start date (YYYY-MM-DD)",
            "in": "query",
            "name": "start_date",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date (YYYY-MM-DD)",
            "in": "query",
            "name": "end_date",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Granularity of the metrics (hour, day)",
            "in": "query",
            "name": "granularity",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sales metrics with order counts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_SalesMetricsDataResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid date format or missing parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get sales metrics",
        "tags": [
          "Orders"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products": {
      "get": {
        "description": "Retrieves a paginated list of products with extensive filtering and sorting options. Supports filtering by categories, collections, tags, attributes, brands, markets, status, product numbers, dates, and more. Returns products with all related data including variants, prices, and market status.",
        "parameters": [
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of products per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by category URI",
            "in": "query",
            "name": "categories",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by collection URI",
            "in": "query",
            "name": "collections",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by attributes. The format should be `template_key/attribute_key`. e.g `colors/black`",
            "in": "query",
            "name": "attributes",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by brand name",
            "in": "query",
            "name": "brands",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by market slugs (commercial availability - products with variant prices in these markets)",
            "in": "query",
            "name": "markets",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Search on product name",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by exact product number/SKU (case-insensitive, supports multiple values)",
            "in": "query",
            "name": "product-number",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Search by status, active | inactive | draft | incomplete",
            "in": "query",
            "name": "status",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of `product-name`, `product-number`, `created-at`, `updated-at`, `status`, `category`, `tag`, `collection`. (Default is `created_at`). When sorting by `category`, `tag`, or `collection` order, you must also filter by a single corresponding item.",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by tag keys",
            "in": "query",
            "name": "tags",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by smart-listing slug(s). A product matches if any variant belongs to one of these smart-listings",
            "in": "query",
            "name": "smart-listing",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by static-listing slug(s). A product matches if any variant belongs to one of these static-listings",
            "in": "query",
            "name": "static-listing",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Only show products which don't follow the publishing rules for the specific app",
            "in": "query",
            "name": "dont-match-publishing-rules",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "ISO 8601 date. Fetch products created before this date.",
            "in": "query",
            "name": "created-at-before",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ISO 8601 date. Fetch products created after this date.",
            "in": "query",
            "name": "created-at-after",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ISO 8601 date. Fetch products updated before this date.",
            "in": "query",
            "name": "updated-at-before",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ISO 8601 date. Fetch products updated after this date.",
            "in": "query",
            "name": "updated-at-after",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by whether product description exists.",
            "in": "query",
            "name": "has-description",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by substring in description.",
            "in": "query",
            "name": "description-includes",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by whether any product translations exist.",
            "in": "query",
            "name": "has-translations",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by whether any product relation exist.",
            "in": "query",
            "name": "has-product-relation",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter on a specific product relation type",
            "in": "query",
            "name": "product-relation-type",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by marketing status (active, inactive, draft, incomplete, archived). Can be combined with product-market-status-market and/or product-market-status-store-group",
            "in": "query",
            "name": "product-market-status",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter products by marketing status in specific market(s). Requires product-market-status to be specified",
            "in": "query",
            "name": "product-market-status-market",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter products by marketing status in specific store group/channel. Requires product-market-status to be specified",
            "in": "query",
            "name": "product-market-status-store-group",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by product ids",
            "in": "query",
            "name": "product-ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter products that have no categories",
            "in": "query",
            "name": "no-categories",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter products that have no variants",
            "in": "query",
            "name": "no-variants",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter products that are members of the given channel (UUID). Each returned product gets a `channel_status` field.",
            "in": "query",
            "name": "channel-id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter products in the given channel by status (active or incomplete). Requires channel-id.",
            "in": "query",
            "name": "channel-status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List products",
        "tags": [
          "Products"
        ]
      },
      "post": {
        "description": "Creates a new product with the provided details including name, product number, status, tax group, and optional metadata. Returns the created product with all related data including variants, prices, and market status.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateProductPayload"
              }
            }
          },
          "description": "Product data",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Product created or updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id": {
      "delete": {
        "description": "Permanently deletes a product by ID and removes all associated data including variants, prices, stock, categories, collections, tags, images, videos, files, attributes, translations, redirects, and third-party links. This action cannot be undone.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a product",
        "tags": [
          "Products"
        ]
      },
      "get": {
        "description": "Retrieves a complete product by its unique identifier including all related data: variants with prices and stock, categories, collections, tags, images, videos, files, attributes, translations, redirects, third-party links, and market status.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Show product that is marked as deleted(status = deleted)",
            "in": "query",
            "name": "show-deleted-product",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateProductPayload"
              }
            }
          },
          "description": "Category data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Product data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a product by ID",
        "tags": [
          "Products"
        ]
      },
      "patch": {
        "description": "Partially updates an existing product by ID. Supports updating name, slug, status, descriptions, tax group, brand, dimensions, custom fields, and market status. Only provided fields are updated. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.PatchProductPayload"
              }
            }
          },
          "description": "Product data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Product updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/attributes/:attribute_template_key/:attribute_key": {
      "delete": {
        "description": "Removes the relationship between a product and an attribute identified by template key and attribute key. The attribute is removed from the product's attribute list. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute key",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove an attribute from a product",
        "tags": [
          "Products"
        ]
      },
      "put": {
        "description": "Creates a relationship between a product and an attribute identified by template key and attribute key. The attribute is added to the product's attribute list. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute template key",
            "in": "path",
            "name": "attribute_template_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Attribute key",
            "in": "path",
            "name": "attribute_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add an attribute to a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/categories": {
      "get": {
        "description": "Retrieves all categories that a product is associated with, including translations and attributes",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Categories list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseCategoryList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Product Categories",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/categories/:category_id": {
      "delete": {
        "description": "Removes the association between a product and a category. The category itself is not deleted",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_number",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Category ID",
            "in": "path",
            "name": "category_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Category removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove Product from Category",
        "tags": [
          "Products"
        ]
      },
      "put": {
        "description": "Associates a product with a category and sets its display order within that category",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Category ID",
            "in": "path",
            "name": "category_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.AddCategoryToProduct"
              }
            }
          },
          "description": "Payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Category created or updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add Product to Category",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/collections": {
      "delete": {
        "description": "Removes relationships between a product and multiple collections by their IDs. The product is removed from the specified collections. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of product",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SetProductCollectionsRequest"
        },
        "responses": {
          "200": {
            "description": "Product collections updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove collections from a product",
        "tags": [
          "Products"
        ]
      },
      "put": {
        "description": "Creates relationships between a product and multiple collections by their IDs. If a collection already has a relationship with the product, it is ignored. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of product",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SetProductCollectionsRequest"
        },
        "responses": {
          "200": {
            "description": "Product collections updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add collections to a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/collections/:collection_id": {
      "put": {
        "description": "Creates or updates a relationship between a product and a collection by collection ID. If the relationship exists, the order position is updated. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of product",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.SetProductCollection"
              }
            }
          },
          "description": "Set order of the product in the collection",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Product collections updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add a collection to a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/draft": {
      "delete": {
        "description": "Permanently deletes a product draft and discards all pending changes. Also removes any scheduled publication jobs associated with the draft.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Draft deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.Message"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "No draft found for this product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete Product Draft",
        "tags": [
          "Product Drafts"
        ]
      },
      "get": {
        "description": "Retrieves the draft changeset and metadata for a specific product, including the scheduled publication time if set.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Draft retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductDraft"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "No draft found for this product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Product Draft",
        "tags": [
          "Product Drafts"
        ]
      },
      "patch": {
        "description": "Replaces the existing draft changeset for a product with new values. Updates the scheduled publication time if provided and reschedules any existing publication jobs.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateProductDraftPayload"
              }
            }
          },
          "description": "Updated draft changeset and optional publish_at",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Draft updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductDraft"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "No draft found for this product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update Product Draft",
        "tags": [
          "Product Drafts"
        ]
      },
      "post": {
        "description": "Creates a new draft changeset for a product. Only one draft can exist per product at a time. Optionally schedules automatic publication at a future time.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateProductDraftPayload"
              }
            }
          },
          "description": "Draft changeset and optional publish_at",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Draft created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductDraft"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "A draft already exists for this product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Product Draft",
        "tags": [
          "Product Drafts"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/draft/promote": {
      "post": {
        "description": "Applies all pending changes from the draft to the live product and removes the draft. This publishes the changes immediately and triggers product update events.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Draft promoted and product updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponsePromoteProductDraft"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "No draft found for this product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Promote Product Draft",
        "tags": [
          "Product Drafts"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/images": {
      "get": {
        "description": "Fetches all images associated with a product",
        "parameters": [
          {
            "description": "Product Number",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by attribute",
            "in": "query",
            "name": "attribute",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of product images",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductImages"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Retrieve product images",
        "tags": [
          "Products"
        ]
      },
      "put": {
        "description": "Uploads an image either by file or URL and adds it to a product",
        "parameters": [
          {
            "description": "Product Number",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "description": "Image file to upload",
                    "type": "string",
                    "format": "binary"
                  },
                  "title": {
                    "description": "Title for the image",
                    "type": "string"
                  },
                  "status": {
                    "description": "Status for image. One of `active`, `inactive`, `draft`",
                    "type": "string"
                  },
                  "alt": {
                    "description": "Alternative text for the image",
                    "type": "string"
                  },
                  "copyright": {
                    "description": "Copyright text for the image",
                    "type": "string"
                  },
                  "priority": {
                    "description": "Priority for the image list",
                    "type": "number"
                  },
                  "url": {
                    "description": "URL for image to upload",
                    "type": "string"
                  },
                  "public": {
                    "description": "If image is public or not",
                    "type": "boolean"
                  },
                  "filename": {
                    "description": "Custom filename (without extension)",
                    "type": "string"
                  },
                  "blurhash": {
                    "description": "Optional precomputed blurhash. If provided, generation is skipped",
                    "type": "string"
                  },
                  "parent_id": {
                    "description": "Parent image ID",
                    "type": "string"
                  },
                  "attributes": {
                    "description": "Attribute for image, e.g. white-background",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Image uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductImage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Upload product image",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/images/:image_id": {
      "delete": {
        "description": "Removes a specific image from a product and renormalizes image priorities",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Image ID",
            "in": "path",
            "name": "image_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Image deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseImageString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete product image",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/relations": {
      "get": {
        "description": "Retrieve all product relations that involve a specific product",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all relations for a product",
        "tags": [
          "Relations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/soft-delete": {
      "patch": {
        "description": "Marks a product as deleted by setting its status to \"deleted\" and updating all market statuses accordingly. The product remains in the database but is excluded from normal queries. Sends a delete event to downstream systems. The product can be restored by updating its status.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Product is used as a component in virtual bundles",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Soft delete a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/tags/:tag_key": {
      "delete": {
        "description": "Removes the relationship between a product and a tag identified by tag key. The product is removed from the tag's product list. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove a tag from a product",
        "tags": [
          "Products"
        ]
      },
      "put": {
        "description": "Creates a relationship between a product and a tag identified by tag key. Optionally specifies the order position of the product within the tag. Returns the updated product with all related data.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.AddTagToProductPayload"
              }
            }
          },
          "description": "Payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add a tag to a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants": {
      "get": {
        "description": "Retrieves all variants for a specific product with optional filtering by attributes, warehouse, store group, market, tags, categories, and status. Supports pagination and sorting.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Amount of product variants per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by attributes. Format: `template_key/value_key`. e.g., `color/red`",
            "in": "query",
            "name": "attributes",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by warehouse slugs. e.g., `main-warehouse`",
            "in": "query",
            "name": "warehouse_slugs",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by store group slugs. e.g., `retail-stores`",
            "in": "query",
            "name": "store_group_slugs",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by market slugs. e.g., `us-market`",
            "in": "query",
            "name": "market_slugs",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by variant ids",
            "in": "query",
            "name": "ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by tag keys. e.g., `color`, `size`",
            "in": "query",
            "name": "tag_keys",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by category IDs",
            "in": "query",
            "name": "category_ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by collection IDs",
            "in": "query",
            "name": "collection_ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by status. Allowed values: active, draft, inactive, archived",
            "in": "query",
            "name": "status",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Sort by field: name, variant_number, created_at (default: name)",
            "in": "query",
            "name": "sort_by",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order: asc, desc (default: asc)",
            "in": "query",
            "name": "sort_order",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product variants",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List product variants",
        "tags": [
          "Variants"
        ]
      },
      "post": {
        "description": "Creates a new variant for a product with the specified name, number, stock levels, and status",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputVariant"
              }
            }
          },
          "description": "Variant data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Variant created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariant"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create product variant",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id": {
      "delete": {
        "description": "Deletes a product variant and its associated warehouse stock records",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Variant deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantDelete"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete product variant",
        "tags": [
          "Variants"
        ]
      },
      "get": {
        "description": "Retrieves a single product variant by ID with full details including stock, prices, attributes, and images",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product variants",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariant"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get product variant",
        "tags": [
          "Variants"
        ]
      },
      "patch": {
        "description": "Updates an existing product variant's name, status, stock validation, purchase price, dimensions, or custom fields",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.PatchVariantPayload"
              }
            }
          },
          "description": "Variant data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Variant updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariant"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update product variant",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/prices": {
      "get": {
        "description": "Retrieves all prices for a product variant grouped by store groups and their associated markets.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of store groups with their associated prices and markets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductPriceStoreGroupList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List variant prices by store group",
        "tags": [
          "Variants"
        ]
      },
      "put": {
        "description": "Creates a new price or updates an existing price for a product variant in a specific market and store group.",
        "parameters": [
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputPrice"
              }
            }
          },
          "description": "Price data including market, store group, and pricing details",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Created or updated price with store group and market details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductPrice"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create or update variant price",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/prices-batch": {
      "put": {
        "description": "Creates or updates multiple prices for a product variant across different markets within a store group in a single request.",
        "parameters": [
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputPriceBatch"
              }
            }
          },
          "description": "Batch price data with store group and array of market prices",
          "required": true
        },
        "responses": {
          "200": {
            "description": "List of created or updated prices with store group and market details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductPriceList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Batch create or update variant prices",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/prices/:store_group_slug": {
      "get": {
        "description": "Retrieves all prices for a product variant within a specific store group across all its markets.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Store group with all its prices and associated markets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductStoreGroupPrice"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get variant prices for store group",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/prices/:store_group_slug/:market_slug": {
      "delete": {
        "description": "Deletes a specific price for a product variant based on store group and market.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Confirmation message with validation details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductPriceString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete variant price",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/shipping-attributes": {
      "put": {
        "description": "Completely replaces the shipping attributes for a product variant.\nThe request should contain the complete list of attributes to set.\nAttributes not included in the request will be removed.\nExample attributes: bulky, fragile, hazardous.\nAn empty array removes all shipping attributes from the variant.",
        "parameters": [
          {
            "description": "UUID of the variant to update",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.ShippingAttributesRequest"
              }
            }
          },
          "description": "List of shipping attributes to set",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated shipping attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariant"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request format or validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Unable to process request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Upsert shipping attributes for a variant",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/stock": {
      "put": {
        "description": "Creates or updates the stock quantity for a variant in a specific warehouse. If the stock record exists, it will be updated; otherwise, a new record will be created.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputVariantStock"
              }
            }
          },
          "description": "Variant stock data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Warehouse stock for variant created or updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantWarehouseStock"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Set variant warehouse stock",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/stock/:warehouse_slug": {
      "delete": {
        "description": "Removes the stock record for a variant in a specific warehouse. The warehouse itself is not deleted, only the stock association.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Warehouse slug",
            "in": "path",
            "name": "warehouse_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Warehouse stock deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantWarehouseStockString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete variant warehouse stock",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/stock/:warehouse_slug/diff": {
      "post": {
        "description": "Adjusts the stock quantity for a variant in a specific warehouse by adding or subtracting the provided delta value",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Warehouse slug",
            "in": "path",
            "name": "warehouse_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.VariantStockDiff"
              }
            }
          },
          "description": "Variant stock diff data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Warehouse stock for variant updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantWarehouseStock"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error or stock can't be negative)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Adjust variant stock by delta",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/:product_id/variants/:variant_id/tags/:tag_key": {
      "delete": {
        "description": "Removes the association between a tag and a product variant. Returns the updated variant without the tag.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated variant without tag association",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariant"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove tag from variant",
        "tags": [
          "Variants"
        ]
      },
      "put": {
        "description": "Creates an association between a tag and a product variant. Returns the updated variant with the new tag association.",
        "parameters": [
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant ID",
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated variant with new tag association",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariant"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Associate tag with variant",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/bulk": {
      "delete": {
        "description": "Permanently deletes multiple products in a single request. Accepts up to 50 product IDs and returns lists of successful and failed deletions with detailed error reasons.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteProductsPayload"
              }
            }
          },
          "description": "Product IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk delete products",
        "tags": [
          "Products",
          "Bulk"
        ]
      },
      "patch": {
        "description": "Updates multiple products in a single request. Accepts up to 20 product updates and returns lists of successful and failed updates with detailed error reasons.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchProductPayload"
              }
            }
          },
          "description": "Product data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk update products",
        "tags": [
          "Products",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates multiple products in a single request. Accepts up to 20 products and returns lists of successful and failed creations with detailed error reasons.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateProductsPayload"
              }
            }
          },
          "description": "Products data",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Products created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk create products",
        "tags": [
          "Products",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/bulk/soft-delete": {
      "patch": {
        "description": "Soft deletes multiple products by setting their status to 'deleted'. Accepts up to 50 product IDs and returns lists of successful and failed soft deletions with detailed error reasons.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteProductsPayload"
              }
            }
          },
          "description": "Product IDs to soft delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products soft deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteProducts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk soft delete products",
        "tags": [
          "Products",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/sku/:product_number": {
      "get": {
        "description": "Retrieves a complete product by its product number (SKU) including all related data: variants with prices and stock, categories, collections, tags, images, videos, files, attributes, translations, redirects, third-party links, and market status. The search is case-insensitive.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product Number (Case insensitive)",
            "in": "path",
            "name": "product_number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a product by product number",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/products/tags/bulk": {
      "delete": {
        "description": "Removes associations between multiple products and multiple tags in a single request. Deletes product-tag relationships.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyProductTagsPayload"
              }
            }
          },
          "description": "Product and tag relationships to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products removed from tags successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkRemoveProductsFromTags"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Remove Products from Tags",
        "tags": [
          "Tags",
          "Bulk"
        ]
      },
      "put": {
        "description": "Associates multiple products with multiple tags in a single request. Creates product-tag relationships.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyProductTagsPayload"
              }
            }
          },
          "description": "Product and tag relationships to create",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Products added to tags successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkAddProductsToTags"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Add Products to Tags",
        "tags": [
          "Tags",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/redirects": {
      "get": {
        "description": "Retrieves a paginated list of all redirects within the specified application, with optional filtering by type and search query",
        "parameters": [
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of items per page",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Redirect type, Can be one of product page collection category product_bundle brand serie campaign",
            "in": "query",
            "name": "type",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search on old_slug and new_slug",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Redirect List",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRedirectList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all app redirects",
        "tags": [
          "Redirects"
        ]
      },
      "post": {
        "description": "Creates a new redirect mapping from an old slug to a new slug for an item or generic path",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputRedirect"
        },
        "responses": {
          "200": {
            "description": "Redirect created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRedirect"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new redirect",
        "tags": [
          "Redirects"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/redirects/:redirect_id": {
      "delete": {
        "description": "Removes a single redirect by its unique identifier",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Redirect ID",
            "in": "path",
            "name": "redirect_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Redirect removed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRedirectRemove"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a redirect",
        "tags": [
          "Redirects"
        ]
      },
      "get": {
        "description": "Retrieves a single redirect by its unique identifier",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Redirect ID",
            "in": "path",
            "name": "redirect_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Redirect",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRedirect"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get redirect by ID",
        "tags": [
          "Redirects"
        ]
      },
      "patch": {
        "description": "Updates an existing redirect's properties including old slug, new slug, type, and locale",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Redirect UUID id",
            "in": "path",
            "name": "redirect_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputRedirect"
        },
        "responses": {
          "200": {
            "description": "Redirect created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRedirect"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a redirect",
        "tags": [
          "Redirects"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/redirects/item/:item_id": {
      "delete": {
        "description": "Removes all redirects associated with a specific item",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Item ID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Item redirects removed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRedirectRemove"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete all redirects for an item",
        "tags": [
          "Redirects"
        ]
      },
      "get": {
        "description": "Retrieves all redirects associated with a specific item",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Item ID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Redirects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRedirectList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List redirects for an item",
        "tags": [
          "Redirects"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/relations": {
      "get": {
        "description": "Retrieve all product relations defined within an application, including their associated products",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all relations in an app",
        "tags": [
          "Relations"
        ]
      },
      "post": {
        "description": "Create a new relation between multiple products using a specified relation type",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.RelationRequest"
              }
            }
          },
          "description": "Relation data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relation created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a product relation",
        "tags": [
          "Relations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/relations/:relation_id": {
      "delete": {
        "description": "Delete a specific product relation by its ID",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Relation ID",
            "in": "path",
            "name": "relation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationRemove"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a product relation",
        "tags": [
          "Relations"
        ]
      },
      "get": {
        "description": "Retrieve a specific relation by its ID, including all associated products and relation details",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Relation ID",
            "in": "path",
            "name": "relation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a product relation",
        "tags": [
          "Relations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/relations/:relation_id/:product_id": {
      "delete": {
        "description": "Remove a specific product from a product relation. If only one product remains in the relation, the entire relation is deleted",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Relation ID",
            "in": "path",
            "name": "relation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product relation removes as it's only 1 item left in the relation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationRemove"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove a product from a relation",
        "tags": [
          "Relations"
        ]
      },
      "put": {
        "description": "Add an existing product to an existing product relation",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Relation ID",
            "in": "path",
            "name": "relation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Product added to relation successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add a product to a relation",
        "tags": [
          "Relations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/relations/types": {
      "get": {
        "description": "Retrieve all relation types defined within an application",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relations Types",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationTypeList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all relation types in an app",
        "tags": [
          "Relations"
        ]
      },
      "post": {
        "description": "Create a new relation type that defines how products can be related to each other",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.RelationTypeRequest"
              }
            }
          },
          "description": "Relation type data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relation type created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationType"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a relation type",
        "tags": [
          "Relations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/relations/types/:type_id": {
      "delete": {
        "description": "Delete a relation type and all its associated product relations from the application",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Type ID",
            "in": "path",
            "name": "type_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation type deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationTypeRemove"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a relation type",
        "tags": [
          "Relations"
        ]
      },
      "get": {
        "description": "Retrieve a specific relation type by its ID",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Type ID",
            "in": "path",
            "name": "type_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relation types",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationType"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a relation type",
        "tags": [
          "Relations"
        ]
      },
      "patch": {
        "description": "Update the title and/or type identifier of an existing relation type",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Type ID",
            "in": "path",
            "name": "type_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.PatchRelationTypeBody"
              }
            }
          },
          "description": "Relation type data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relation type updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseRelationType"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a relation type",
        "tags": [
          "Relations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/schedule": {
      "get": {
        "description": "Retrieves all scheduled jobs for an application with pagination and optional date range filtering. Supports filtering by execution date range.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of jobs per page. Minimum 1 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Include jobs with execute_at >= this RFC3339 timestamp",
            "in": "query",
            "name": "from-date",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include jobs with execute_at <= this RFC3339 timestamp",
            "in": "query",
            "name": "to-date",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Scheduled jobs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSchedulingList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad query params)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Scheduled Jobs",
        "tags": [
          "Scheduling"
        ]
      },
      "post": {
        "description": "Schedules a new job to modify item status, price, tags, categories, or collections at a specified future date. Supports products, tags, images, prices, and variants.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateSchedulingPayload"
              }
            }
          },
          "description": "Scheduling data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Job is scheduled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseScheduling"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Scheduled Job",
        "tags": [
          "Scheduling"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/schedule/:item_id": {
      "get": {
        "description": "Retrieves all scheduled jobs associated with a specific item (product, tag, image, price, or variant). Returns all pending jobs for the item.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Item ID. e.g product UUID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Job is scheduled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSchedulingList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Item Scheduled Jobs",
        "tags": [
          "Scheduling"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/schedule/:job_id": {
      "delete": {
        "description": "Cancels and removes a scheduled job by its ID. The job will no longer execute at the scheduled time.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Job id",
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Job is scheduled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseSchedulingDelete"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete Scheduled Job",
        "tags": [
          "Scheduling"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/schedule/bulk": {
      "delete": {
        "description": "Cancels and removes multiple scheduled jobs in a single request. Returns lists of successful deletions and failed operations with reasons.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteSchedulingPayload"
              }
            }
          },
          "description": "Job IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Jobs deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteScheduling"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Delete Scheduled Jobs",
        "tags": [
          "Scheduling",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates multiple scheduled jobs in a single request. Each job can modify different items and their properties at specified future dates. Returns both successful and failed operations.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateSchedulingPayload"
              }
            }
          },
          "description": "Scheduling data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Jobs scheduled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateScheduling"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Create Scheduled Jobs",
        "tags": [
          "Scheduling",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/smart-listings": {
      "post": {
        "description": "Creates a new smart listing with the specified rules for filtering product variants",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SmartListingRequest"
        },
        "responses": {
          "200": {
            "description": "smart-listing created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SmartListingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a smart listing",
        "tags": [
          "Smart Listings"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/smart-listings/": {
      "get": {
        "description": "Retrieves all smart listings configured for the app",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SmartListingRequest"
        },
        "responses": {
          "200": {
            "description": "All smart-listings for the app",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SmartListingsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all smart listings",
        "tags": [
          "Smart Listings"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/smart-listings/:listing_id": {
      "delete": {
        "description": "Deletes a smart listing by its ID",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "id for the smart-listing to delete",
            "in": "path",
            "name": "listing_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SmartListingRequest"
        },
        "responses": {
          "200": {
            "description": "smart-listing deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Could not find smart-listing to delete",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a smart listing",
        "tags": [
          "Smart Listings"
        ]
      },
      "get": {
        "description": "Retrieves a specific smart listing by its ID",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "id for the smart-listing to fetch",
            "in": "path",
            "name": "listing_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "smart-listing returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SmartListingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Could not find smart-listing to update",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a smart listing",
        "tags": [
          "Smart Listings"
        ]
      },
      "put": {
        "description": "Updates an existing smart listing's configuration and rules",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "id for the smart-listing to update",
            "in": "path",
            "name": "listing_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SmartListingRequest"
        },
        "responses": {
          "200": {
            "description": "smart-listing updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SmartListingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Could not find smart-listing to update",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a smart listing",
        "tags": [
          "Smart Listings"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/smart-listings/preview": {
      "post": {
        "description": "Returns all product variants that match the specified listing rules without creating a listing",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.SmartListingRequest"
        },
        "responses": {
          "200": {
            "description": "All product-variants affected by the listing rules",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.SmartListingProductsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Preview smart listing results",
        "tags": [
          "Smart Listings"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/static-listings": {
      "get": {
        "description": "Retrieves all static listings configured for the app",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "static-listings retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.StaticListingsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get all static listings",
        "tags": [
          "Static Listings"
        ]
      },
      "post": {
        "description": "Creates a new static listing with the specified slug and variant IDs for the app",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.StaticListingRequest"
        },
        "responses": {
          "200": {
            "description": "static-listing created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.StaticListingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a static listing",
        "tags": [
          "Static Listings"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/static-listings/:listing_id": {
      "delete": {
        "description": "Deletes a static listing and triggers product update events",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of static listing",
            "in": "path",
            "name": "listing_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "static-listing deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a static listing",
        "tags": [
          "Static Listings"
        ]
      },
      "get": {
        "description": "Retrieves a specific static listing by its ID",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of static listing",
            "in": "path",
            "name": "listing_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "static-listing retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.StaticListingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a static listing",
        "tags": [
          "Static Listings"
        ]
      },
      "put": {
        "description": "Updates an existing static listing's slug and variant IDs",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of static listing",
            "in": "path",
            "name": "listing_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.StaticListingRequest"
        },
        "responses": {
          "200": {
            "description": "static-listing updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.StaticListingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a static listing",
        "tags": [
          "Static Listings"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/store-groups": {
      "get": {
        "description": "Retrieves all store groups for the specified app, including their associated markets with pricing and tax configuration details.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Store groups retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseStoreGroupList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all store groups",
        "tags": [
          "StoreGroups"
        ]
      },
      "post": {
        "description": "Creates a new store group with the specified name, slug, store type, and optional markets. The store group defines pricing and availability settings for products across multiple markets.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputStoreGroup"
        },
        "responses": {
          "200": {
            "description": "Store group created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseStoreGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a store group",
        "tags": [
          "StoreGroups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/store-groups/:store_group_slug": {
      "delete": {
        "description": "Deletes a store group by its slug. The store group must not have any markets attached or merchant users associated with it. This operation also removes any related product pricing for the store group.",
        "parameters": [
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Store group deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseStoreGroupRemove"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a store group",
        "tags": [
          "StoreGroups"
        ]
      },
      "get": {
        "description": "Retrieves a single store group by its slug, including all associated markets with their pricing and tax configuration details.",
        "parameters": [
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Store group retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseStoreGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a store group",
        "tags": [
          "StoreGroups"
        ]
      },
      "patch": {
        "description": "Updates an existing store group's name, slug, store type, and associated markets. Markets specified in the payload will be added to the store group.",
        "parameters": [
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputStoreGroup"
        },
        "responses": {
          "200": {
            "description": "Store group updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseStoreGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a store group",
        "tags": [
          "StoreGroups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/store-groups/:store_group_slug/market/:market_slug": {
      "delete": {
        "description": "Removes a market from a store group. The market must not have any prices attached to it within the store group. Returns the updated store group with remaining markets.",
        "parameters": [
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Market removed from store group successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseStoreGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove a market from a store group",
        "tags": [
          "StoreGroups"
        ]
      },
      "put": {
        "description": "Adds a market to a store group with configurable tax settings for price inclusion and exemption eligibility. The market must exist in the app.",
        "parameters": [
          {
            "description": "Store group slug",
            "in": "path",
            "name": "store_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputStoreGroupMarket"
              }
            }
          },
          "description": "Market-specific tax settings for the store group",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Market added to store group successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseStoreGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add a market to a store group",
        "tags": [
          "StoreGroups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tags": {
      "get": {
        "description": "Retrieves all tags for an application including attributes, translations, associated markets, and scheduled jobs. Supports search filtering and pagination.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search on tags name",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of products per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of tags with full details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTagList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all tags",
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "description": "Creates a new tag with the specified key, name, status, and filterable properties. The tag is automatically associated with all app markets.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateTagPayload"
              }
            }
          },
          "description": "Tag creation data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Tag created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTag"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tags/:tag_key": {
      "delete": {
        "description": "Permanently deletes a tag and removes all its associations with variants, markets, and other entities.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTagString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a tag",
        "tags": [
          "Tags"
        ]
      },
      "get": {
        "description": "Retrieves a single tag including its attributes, translations, associated markets, and scheduled jobs.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag data with full details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTag"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a tag by key",
        "tags": [
          "Tags"
        ]
      },
      "patch": {
        "description": "Updates an existing tag's key, name, status, and filterable properties. Only provided fields are updated.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateTagPayload"
              }
            }
          },
          "description": "Tag update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Tag updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTag"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tags/:tag_key/markets/:market_slug": {
      "delete": {
        "description": "Removes the relationship between a tag and a market, making the tag unavailable in that market.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag with updated market associations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTag"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove tag from market",
        "tags": [
          "Tags"
        ]
      },
      "put": {
        "description": "Creates a relationship between a tag and a market, making the tag available in that market.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tag with new market association",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTag"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Associate tag with market",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tags/:tag_key/products": {
      "get": {
        "description": "Retrieves all products that have the specified tag, with pagination support. Returns full product details including variants and attributes.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tag key",
            "in": "path",
            "name": "tag_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of items per page",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of products with the specified tag",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProductList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request and not parsable by backend",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List products by tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tags/bulk": {
      "delete": {
        "description": "Deletes multiple tags by their IDs in a single request. Returns lists of successful and failed deletions.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteTagsPayload"
              }
            }
          },
          "description": "Tag IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Tags deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteTags"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Delete Tags",
        "tags": [
          "Tags",
          "Bulk"
        ]
      },
      "patch": {
        "description": "Updates multiple tags in a single request. Supports partial updates where only specified fields are modified.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchTagsPayload"
              }
            }
          },
          "description": "Tags data to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Tags updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchTags"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Update Tags",
        "tags": [
          "Tags",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates multiple tags in a single request. Returns lists of successful and failed tag creations with detailed error reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateTagsPayload"
              }
            }
          },
          "description": "Tags data to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Tags created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateTags"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Create Tags",
        "tags": [
          "Tags",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tax-groups": {
      "get": {
        "description": "Retrieves all tax groups for an application, including their associated markets and country-specific tax percentages.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of tax groups",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTaxGroupList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all tax groups",
        "tags": [
          "TaxGroups"
        ]
      },
      "post": {
        "description": "Creates a new tax group with name, slug, description, and default status. If marked as default, removes default status from other tax groups.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputTaxGroup"
        },
        "responses": {
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a tax group",
        "tags": [
          "TaxGroups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tax-groups/:tax_group_slug": {
      "delete": {
        "description": "Permanently deletes a tax group by its slug, including all associated market configurations and tax percentages.",
        "parameters": [
          {
            "description": "Tax group slug",
            "in": "path",
            "name": "tax_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tax group deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTaxGroupString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Tax group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a tax group",
        "tags": [
          "TaxGroups"
        ]
      },
      "get": {
        "description": "Retrieves a specific tax group by its slug, including associated markets and country-specific tax percentages.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Tax group slug",
            "in": "path",
            "name": "tax_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tax group details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTaxGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Tax group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a tax group",
        "tags": [
          "TaxGroups"
        ]
      },
      "patch": {
        "description": "Updates an existing tax group's name, slug, description, and default status. If marked as default, removes default status from other tax groups.",
        "parameters": [
          {
            "description": "Tax group slug",
            "in": "path",
            "name": "tax_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputTaxGroup"
        },
        "responses": {
          "200": {
            "description": "Tax group updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTaxGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a tax group",
        "tags": [
          "TaxGroups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/tax-groups/:tax_group_slug/market/:market_slug": {
      "delete": {
        "description": "Removes a market association from a tax group and deletes all country-specific tax percentages for that market.",
        "parameters": [
          {
            "description": "Tax group slug",
            "in": "path",
            "name": "tax_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Market removed from tax group successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTaxGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Tax group or market not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove a market from a tax group",
        "tags": [
          "TaxGroups"
        ]
      },
      "put": {
        "description": "Associates a market with a tax group and configures country-specific tax percentages for all countries in the market.",
        "parameters": [
          {
            "description": "Tax group slug",
            "in": "path",
            "name": "tax_group_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAddMarketToTaxGroup"
              }
            }
          },
          "description": "Country tax percentages",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Market added to tax group successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTaxGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Tax group or market not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add a market to a tax group",
        "tags": [
          "TaxGroups"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/third-party-link": {
      "post": {
        "description": "Creates a new third-party link resource (image, video, or external link) associated with the specified app",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputThirdPartyLinks"
              }
            }
          },
          "description": "Third-party link payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Third-party link created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseThirdPartyLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g., bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new third-party link",
        "tags": [
          "Third Party Link"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/third-party-links": {
      "get": {
        "description": "Retrieves all third-party links associated with the specified application",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Third-party links retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseThirdPartyLinkList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all third-party links",
        "tags": [
          "Third Party Link"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/third-party-links/:third_party_link_id": {
      "delete": {
        "description": "Permanently removes a third-party link and its associations with products",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Third-party link ID",
            "in": "path",
            "name": "third_party_link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Third-party link deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseThirdPartyLinkString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g., bad UUID)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Third-party link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a third-party link",
        "tags": [
          "Third Party Link"
        ]
      },
      "get": {
        "description": "Retrieves details of a specific third-party link by its ID",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Third-party link ID",
            "in": "path",
            "name": "third_party_link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Third-party link retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseThirdPartyLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g., bad UUID)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Third-party link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a third-party link",
        "tags": [
          "Third Party Link"
        ]
      },
      "patch": {
        "description": "Updates the properties (title, type, or URL) of an existing third-party link",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Third-party link ID",
            "in": "path",
            "name": "third_party_link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputUpdateThirdPartyLink"
              }
            }
          },
          "description": "Third-party link update data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Third-party link updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseThirdPartyLink"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g., bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Third-party link not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a third-party link",
        "tags": [
          "Third Party Link"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/third-party-links/:third_party_link_id/relationships/:item_id": {
      "delete": {
        "description": "Removes the association between a third-party link and a product",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Third-party link ID",
            "in": "path",
            "name": "third_party_link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relationship removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseThirdPartyLinkString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Unlink a third-party link from a product",
        "tags": [
          "Third Party Link"
        ]
      },
      "put": {
        "description": "Creates an association between a third-party link and a product",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Third-party link ID",
            "in": "path",
            "name": "third_party_link_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relationship created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseThirdPartyLinkString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Product not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Link a third-party link to a product",
        "tags": [
          "Third Party Link"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/translations": {
      "get": {
        "description": "Retrieves a paginated list of all translations for the application with optional filtering by parent type and field type",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of products per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter on parent type. Can be one of product product_bundle product_variant image attribute attribute_value category tag collection file bundle_group",
            "in": "query",
            "name": "parent-type",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter on field type. Can be one of name value description alt title copyright slug meta_title meta_description html_description short_description html_short_description key",
            "in": "query",
            "name": "field-type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Translations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTranslationListWithPagignation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all translations",
        "tags": [
          "Translations"
        ]
      },
      "post": {
        "description": "Creates a new translation record for a parent item with support for automatic slug generation for products",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateTranslationBody"
              }
            }
          },
          "description": "Translation data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Translation created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.TranslationDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create translation",
        "tags": [
          "Translations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/translations/:translation_id": {
      "delete": {
        "description": "Permanently removes a translation record from the system by its unique identifier",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "translation uuid",
            "in": "path",
            "name": "translation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Translation deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete translation by ID",
        "tags": [
          "Translations"
        ]
      },
      "get": {
        "description": "Retrieves a single translation record by its unique identifier",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "translation item uuid",
            "in": "path",
            "name": "translation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Translation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTranslation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get translation by ID",
        "tags": [
          "Translations"
        ]
      },
      "put": {
        "description": "Updates an existing translation record with automatic redirect creation for slug changes when enabled",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "translation uuid",
            "in": "path",
            "name": "translation_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateTranslationBody"
              }
            }
          },
          "description": "Translation data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Translation updates successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.TranslationDTO"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update translation",
        "tags": [
          "Translations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/translations/bulk": {
      "post": {
        "description": "Creates multiple translation records in a single request (max 30) with support for automatic slug generation for products",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateTranslationBody"
                },
                "type": "array"
              }
            }
          },
          "description": "Translation data, max 30 translations",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Translations created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk create translations",
        "tags": [
          "Translations"
        ]
      },
      "put": {
        "description": "Updates multiple translation records in a single request with support for automatic redirect creation for slug changes",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.TranslationDTO"
                },
                "type": "array"
              }
            }
          },
          "description": "Translation data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Translation updates successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseMessage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk update translations",
        "tags": [
          "Translations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/translations/ref/:parent_ref": {
      "get": {
        "description": "Retrieves all translations associated with a specific parent item identified by its UUID reference",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "reference item uuid",
            "in": "path",
            "name": "parent_ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Translations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseTranslationList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List translations by parent reference",
        "tags": [
          "Translations"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/variants": {
      "get": {
        "description": "Retrieves all variants for an app with optional filtering by product, category, collection, status, attributes, and more. Supports pagination and sorting.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Amount of variants per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by product numbers. e.g., `SKU-001`",
            "in": "query",
            "name": "product_numbers",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by product IDs",
            "in": "query",
            "name": "product_ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by tag keys (variants that have these tags)",
            "in": "query",
            "name": "tag_keys",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by category IDs",
            "in": "query",
            "name": "category_ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by collection IDs",
            "in": "query",
            "name": "collection_ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by status. Allowed values: active, draft, inactive, archived",
            "in": "query",
            "name": "status",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by attributes. Format: `template_key/value_key`. e.g., `color/red`",
            "in": "query",
            "name": "attributes",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by parent product attributes. Format: `template_key/value_key`. e.g., `color/red`",
            "in": "query",
            "name": "parent_attributes",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by warehouse slugs. e.g., `main-warehouse`",
            "in": "query",
            "name": "warehouse_slugs",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by store group slugs. e.g., `retail-stores`",
            "in": "query",
            "name": "store_group_slugs",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by market slugs. e.g., `us-market`",
            "in": "query",
            "name": "market_slugs",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by variant ids",
            "in": "query",
            "name": "ids",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Search by variant name (case-insensitive, partial match)",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort by field: name, variant_number, created_at (default: name)",
            "in": "query",
            "name": "sort_by",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order: asc, desc (default: asc)",
            "in": "query",
            "name": "sort_order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by smart-listing slug(s)",
            "in": "query",
            "name": "smart-listing",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "description": "Filter by static-listing slug(s)",
            "in": "query",
            "name": "static-listing",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of variants",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseList-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_VariantWithProductInformation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g., bad query parameter)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all app variants",
        "tags": [
          "Variants"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/variants/bulk": {
      "delete": {
        "description": "Deletes multiple product variants in a single batch operation. Removes variants and their associated data. Supports up to 50 variants per batch. Returns arrays of successfully deleted variant IDs and failed deletions.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteVariantsPayload"
              }
            }
          },
          "description": "Variant IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Variants deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteVariants"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk delete product variants",
        "tags": [
          "Variants",
          "Bulk"
        ]
      },
      "patch": {
        "description": "Updates multiple product variants in a single batch operation. Supports partial updates to variant properties including name, status, stock levels, dimensions, and custom fields. Processes up to 50 variants per batch. Returns arrays of successful and failed updates.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchVariantsPayload"
              }
            }
          },
          "description": "Variants data to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Variants updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchVariants"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk update product variants",
        "tags": [
          "Variants",
          "Bulk"
        ]
      },
      "post": {
        "description": "Creates multiple product variants in a single batch operation. Each variant can be associated with different products and includes stock levels, dimensions, and custom fields. Supports up to 50 variants per batch. Returns arrays of successful and failed creations.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateVariantsPayload"
              }
            }
          },
          "description": "Variants data to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Variants created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkCreateVariants"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk create product variants",
        "tags": [
          "Variants",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/variants/prices/bulk": {
      "delete": {
        "description": "Deletes multiple variant prices in bulk by their IDs. Accepts up to 100 price IDs to remove from the system. Returns lists of successfully deleted and failed deletion attempts.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeletePricesPayload"
              }
            }
          },
          "description": "Price IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Prices deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeletePrices"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk delete variant prices",
        "tags": [
          "Variants",
          "Bulk"
        ]
      },
      "patch": {
        "description": "Updates existing variant prices in bulk with partial data. Accepts up to 100 price items to update specific fields such as amount, sale price, reference price, status, and sale date ranges. Only provided fields will be updated.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchPricesPayload"
              }
            }
          },
          "description": "Prices data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Prices updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchPrices"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk update variant prices",
        "tags": [
          "Variants",
          "Bulk"
        ]
      },
      "put": {
        "description": "Creates new prices or updates existing prices for product variants in bulk. Accepts up to 100 price items with variant, store group, and market information. Each price item can include regular price, sale price, reference price, status, and sale date ranges.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPutPricesPayload"
              }
            }
          },
          "description": "Prices data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Prices created or updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPutPrices"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk create or update variant prices",
        "tags": [
          "Variants",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/variants/stock/bulk": {
      "delete": {
        "description": "Removes stock records for multiple product variants from specific warehouses in a single bulk operation. Permanently deletes the stock entries and sets quantities to zero. Returns lists of successful and failed deletions with failure reasons.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteStockPayload"
              }
            }
          },
          "description": "Stock data to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Stock deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteStock"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete Stock for Multiple Variants",
        "tags": [
          "Variants",
          "Bulk"
        ]
      },
      "put": {
        "description": "Updates or creates stock quantities for multiple product variants across different warehouses in a single bulk operation. Each item in the request specifies a variant ID, warehouse slug, and the new stock quantity with an optional inventory date. Returns lists of successful and failed operations.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkSetStockPayload"
              }
            }
          },
          "description": "Stock data to set",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Stock set successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkSetStock"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Set Stock for Multiple Variants",
        "tags": [
          "Variants",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/variants/tags/bulk": {
      "delete": {
        "description": "Removes associations between multiple variants and multiple tags in a single request. Deletes variant-tag relationships.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyVariantTagsPayload"
              }
            }
          },
          "description": "Variant and tag relationships to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Variants removed from tags successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkRemoveVariantsFromTags"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Remove Variants from Tags",
        "tags": [
          "Tags",
          "Bulk"
        ]
      },
      "put": {
        "description": "Associates multiple variants with multiple tags in a single request. Creates variant-tag relationships.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkModifyVariantTagsPayload"
              }
            }
          },
          "description": "Variant and tag relationships to create",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Variants added to tags successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkAddVariantsToTags"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk Add Variants to Tags",
        "tags": [
          "Tags",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/videos": {
      "get": {
        "description": "Retrieves all videos for an app with pagination support. Supports sorting by created_at, updated_at, or title in ascending or descending order.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Should be one of ASC or DESC. Default DESC",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The key to sort on. Can be one of  `created_at`, `updated_at`, `title` (Default is `created_at`)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number (default is 1)",
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Amount of videos per page. Minimum 0 and max 100 (default is 20)",
            "in": "query",
            "name": "per-page",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of app videos",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVideos"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List videos",
        "tags": [
          "Videos"
        ]
      },
      "put": {
        "description": "Creates a new video record and returns a presigned URL for uploading the video file to R2 storage. The URL expires after 20 minutes.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UploadVideoUrl"
              }
            }
          },
          "description": "Video payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Presigned URL generated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVideoUrl"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Generate video upload URL",
        "tags": [
          "Videos"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/videos/:video_id": {
      "delete": {
        "description": "Permanently deletes a video from the database and R2 storage. Also removes all associated translations and relationships.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Video ID",
            "in": "path",
            "name": "video_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Video deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVideoString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete video",
        "tags": [
          "Videos"
        ]
      },
      "get": {
        "description": "Retrieves a single video with its variants, translations, attributes, and information about products/variants using this video.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Video ID",
            "in": "path",
            "name": "video_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Got video",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVideo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get video by ID",
        "tags": [
          "Videos"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/videos/:video_id/relationship": {
      "delete": {
        "description": "Removes the association between a video and a product or variant. Validates publishing rules after removal.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Video ID",
            "in": "path",
            "name": "video_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.DeleteItemVideoRelationship"
              }
            }
          },
          "description": "Video relationship data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Video deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVideoString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete video-to-item relationship",
        "tags": [
          "Videos"
        ]
      },
      "put": {
        "description": "Associates a video with a product or variant. Validates publishing rules and triggers relationship events.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Video ID",
            "in": "path",
            "name": "video_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.AddVideoRelationship"
              }
            }
          },
          "description": "Video relationship data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Video relationship added successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVideoString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create video-to-item relationship",
        "tags": [
          "Videos"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/videos/bulk": {
      "delete": {
        "description": "Deletes up to 100 videos in a single request. Returns lists of successful and failed deletions with reasons for failures.",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteVideosPayload"
              }
            }
          },
          "description": "Video IDs to delete",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Videos deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseBulkDeleteVideos"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Bulk delete videos",
        "tags": [
          "Videos",
          "Bulk"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/warehouses": {
      "get": {
        "description": "Retrieves all warehouses associated with the specified application, including their addresses and linked markets.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Warehouse data list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseWarehouseList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all warehouses",
        "tags": [
          "Warehouses"
        ]
      },
      "post": {
        "description": "Creates a new warehouse with the specified name, slug, address, and optional market associations. The warehouse can be marked as available online and linked to one or more markets.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputWarehouse"
        },
        "responses": {
          "200": {
            "description": "Warehouse created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseWarehouse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new warehouse",
        "tags": [
          "Warehouses"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/warehouses/:warehouse_slug": {
      "delete": {
        "description": "Permanently deletes a warehouse and its associations. This action cannot be undone and will remove all market relationships.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Warehouse slug",
            "in": "path",
            "name": "warehouse_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Warehouse deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseWarehouseString"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a warehouse",
        "tags": [
          "Warehouses"
        ]
      },
      "get": {
        "description": "Retrieves detailed information about a specific warehouse, including its address and linked markets.",
        "parameters": [
          {
            "description": "Warehouse slug",
            "in": "path",
            "name": "warehouse_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Warehouse data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseWarehouse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a warehouse",
        "tags": [
          "Warehouses"
        ]
      },
      "patch": {
        "description": "Updates an existing warehouse's name, slug, address, online availability status, and market associations. Only provided fields will be updated.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Warehouse slug",
            "in": "path",
            "name": "warehouse_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputWarehouse"
        },
        "responses": {
          "200": {
            "description": "Warehouse updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseWarehouse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a warehouse",
        "tags": [
          "Warehouses"
        ]
      }
    },
    "/api/v1/:team_slug/:app_slug/warehouses/:warehouse_slug/market/:market_slug": {
      "delete": {
        "description": "Removes the association between a specific market and warehouse. The market itself is not deleted, only its relationship to the warehouse.",
        "parameters": [
          {
            "description": "Warehouse slug",
            "in": "path",
            "name": "warehouse_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated warehouse data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseWarehouse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove a market from a warehouse",
        "tags": [
          "Warehouses"
        ]
      },
      "put": {
        "description": "Creates an association between a specific market and warehouse, allowing the warehouse to serve that market's customers.",
        "parameters": [
          {
            "description": "Warehouse slug",
            "in": "path",
            "name": "warehouse_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Market slug",
            "in": "path",
            "name": "market_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated warehouse data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseWarehouse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add a market to a warehouse",
        "tags": [
          "Warehouses"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/custom-roles": {
      "post": {
        "description": "Create a custom role that can be set on users.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputCustomRole"
        },
        "responses": {
          "200": {
            "description": "custom role created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_CustomRole"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict (e.g. already exists)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a custom role",
        "tags": [
          "CustomRoles"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/custom-roles/{custom_role_id}": {
      "delete": {
        "description": "Permanently deletes a custom role.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Custom Role ID",
            "in": "path",
            "name": "custom_role_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Custom Role deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad custom role ID format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete a custom role",
        "tags": [
          "CustomRoles"
        ]
      },
      "get": {
        "description": "Get a custom role that can be set on users.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Custom Role ID",
            "in": "path",
            "name": "custom_role_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Got Custom role successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_CustomRole"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. id not uuid)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a custom role",
        "tags": [
          "CustomRoles"
        ]
      },
      "put": {
        "description": "Update a custom role that can be set on users.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Custom Role ID",
            "in": "path",
            "name": "custom_role_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.InputCustomRole"
        },
        "responses": {
          "200": {
            "description": "custom role created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_CustomRole"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict (e.g. already exists)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update a custom role",
        "tags": [
          "CustomRoles"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/merchant-users": {
      "get": {
        "description": "Retrieves a paginated list of merchant users with support for filtering by various attributes and sorting options",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_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"
            }
          },
          {
            "description": "Sort field (email, market, language_code, store_group, first_name, last_name, created_at, status)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort direction (asc, desc, default: desc)",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search term",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by market",
            "in": "query",
            "name": "market",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by language",
            "in": "query",
            "name": "language",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by store group",
            "in": "query",
            "name": "store_group",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by email",
            "in": "query",
            "name": "email",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by name",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by surname",
            "in": "query",
            "name": "surname",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by status (active, pending, inactive)",
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by email verification status",
            "in": "query",
            "name": "email_verified",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by creation date before (YYYY-MM-DD format, e.g., 2024-05-11)",
            "in": "query",
            "name": "created_at_before",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by creation date after (YYYY-MM-DD format, e.g., 2024-05-11)",
            "in": "query",
            "name": "created_at_after",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by if merchant user is attached to an organisation",
            "in": "query",
            "name": "has_organisation",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by custom role slugs",
            "in": "query",
            "name": "custom_role_slugs",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of merchant users",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseList-internal_pkg_webserver_v1_MerchantUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad parameters, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List merchant users",
        "tags": [
          "Merchant Users"
        ]
      },
      "post": {
        "description": "Creates a new merchant user with the provided details including personal information, address, and communication preferences",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateMerchantUserPayload"
              }
            }
          },
          "description": "Merchant user details",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created merchant user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_MerchantUser"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error, user already exists)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Store group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create merchant user",
        "tags": [
          "Merchant Users"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/merchant-users/{user_id}": {
      "delete": {
        "description": "Removes a merchant user from the system. Supports both soft delete (default) and hard delete options",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.DeleteMerchantUserPayload"
              }
            }
          },
          "description": "Delete merchant user payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "User deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad user ID format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "User not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete merchant user",
        "tags": [
          "Merchant Users"
        ]
      },
      "get": {
        "description": "Retrieves detailed information about a specific merchant user including their profile, organizations, tags, and preferences",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant user details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_MerchantUser"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad user ID format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "User not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get merchant user by ID",
        "tags": [
          "Merchant Users"
        ]
      },
      "patch": {
        "description": "Partially updates an existing merchant user's information including personal details, address, communication preferences, and status",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.PatchMerchantUserPayload"
              }
            }
          },
          "description": "Updated merchant user details",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated merchant user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_MerchantUser"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "User not found or store group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update merchant user",
        "tags": [
          "Merchant Users"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/merchant-users/{user_id}/new-password": {
      "post": {
        "description": "Sets a new password for a specific merchant user account, replacing any existing password",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.SetNewUserPassword"
              }
            }
          },
          "description": "New password details",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Password changed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "User not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Set merchant user password",
        "tags": [
          "Merchant Users"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/merchant-users/{user_id}/send-email-verification": {
      "post": {
        "description": "Sends a new email verification link to a specific merchant user's email address",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Email verification sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad user ID format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "User not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Resend email verification",
        "tags": [
          "Merchant Users"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/merchant-users/{user_id}/tags": {
      "delete": {
        "description": "Removes one or more tag associations from a specific merchant user",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.MerchantUserTag"
        },
        "responses": {
          "200": {
            "description": "Updated merchant user with tags removed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_MerchantUser"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "User not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove tags from merchant user",
        "tags": [
          "Merchant Users"
        ]
      },
      "post": {
        "description": "Associates one or more tags with a specific merchant user for categorization and filtering purposes",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Merchant user ID",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.MerchantUserTag2"
        },
        "responses": {
          "200": {
            "description": "Updated merchant user with new tags",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_MerchantUser"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "User not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add tags to merchant user",
        "tags": [
          "Merchant Users"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/organisations": {
      "get": {
        "description": "Retrieves a paginated list of organizations with comprehensive filtering options including search, status, country, credit check status, custom attributes, and date ranges. Supports sorting and pagination.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_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"
            }
          },
          {
            "description": "Sort field (name, organisation_number, created_at, updated_at, status)",
            "in": "query",
            "name": "sort-key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort direction (asc, desc, default: desc)",
            "in": "query",
            "name": "sort-order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search term",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter organizations that have merchant users",
            "in": "query",
            "name": "has-merchant-users",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by status (comma-separated: active, pending, inactive)",
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by country code from company addresses (comma-separated, e.g., 'SE,NO')",
            "in": "query",
            "name": "country",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by credit check status",
            "in": "query",
            "name": "credit-check",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter by attributes (comma-separated template_key/attr_key pairs, ALL must match, e.g., 'color/red,size/large')",
            "in": "query",
            "name": "attributes",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter organizations created before this date (YYYY-MM-DD format, e.g., 2025-11-20)",
            "in": "query",
            "name": "created-at-before",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter organizations created after this date (YYYY-MM-DD format, e.g., 2025-11-20)",
            "in": "query",
            "name": "created-at-after",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter organizations updated before this date (YYYY-MM-DD format, e.g., 2025-11-20)",
            "in": "query",
            "name": "updated-at-before",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter organizations updated after this date (YYYY-MM-DD format, e.g., 2025-11-20)",
            "in": "query",
            "name": "updated-at-after",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of organizations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseList-array_internal_pkg_webserver_v1_Organisation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad parameters, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all organizations",
        "tags": [
          "Organizations"
        ]
      },
      "post": {
        "description": "Creates a new organization with basic details, contact information, and optional addresses. The organization will be assigned a unique ID and timestamps automatically.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrganisation"
              }
            }
          },
          "description": "Organization details",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created organization",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationWithUsersAndAddresses"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error, organization number already exists)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create a new organization",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/organisations/{org_id}": {
      "delete": {
        "description": "Permanently deletes an organization by ID. The organization and all associated data will be removed from the system.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Organization deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad organization ID format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict had children organizations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete an organization",
        "tags": [
          "Organizations"
        ]
      },
      "get": {
        "description": "Retrieves a specific organization by ID, including all associated users, addresses (billing and shipping), tags, and custom attributes.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Organization details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationWithUsersAndAddresses"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad organization ID format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get organization by ID",
        "tags": [
          "Organizations"
        ]
      },
      "patch": {
        "description": "Updates an existing organization's basic details, contact information, and addresses. Only provided fields will be updated (partial update). Addresses can be added, modified, or removed.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputUpdateOrganisation"
              }
            }
          },
          "description": "Updated organization details",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated organization",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationWithUsersAndAddresses"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error, organization number already exists)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update an existing organization",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/organisations/{org_id}/address/{address_id}": {
      "delete": {
        "description": "Removes a user restriction from a specific organization address. This allows the specified merchant user to access the given address within the organization again.",
        "parameters": [
          {
            "description": "Application slug identifier",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug identifier",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization UUID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Address UUID",
            "in": "path",
            "name": "address_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAddressUserRestriction"
              }
            }
          },
          "description": "Merchant user ID to remove restriction from this address",
          "required": true
        },
        "responses": {
          "200": {
            "description": "User restriction removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization, address, or user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove address restriction for user",
        "tags": [
          "Organizations"
        ]
      },
      "post": {
        "description": "Adds a user restriction to a specific organization address. This prevents the specified merchant user from accessing the given address within the organization.",
        "parameters": [
          {
            "description": "Application slug identifier",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug identifier",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization UUID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Address UUID",
            "in": "path",
            "name": "address_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAddressUserRestriction"
              }
            }
          },
          "description": "Merchant user ID to restrict from this address",
          "required": true
        },
        "responses": {
          "200": {
            "description": "User restriction added successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization, address, or user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add address restriction for user",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/organisations/{org_id}/tags": {
      "delete": {
        "description": "Disassociates one or more tags from an organization. The tags themselves are not deleted, only their association with the organization.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.MerchantUserTag"
        },
        "responses": {
          "200": {
            "description": "Updated organization with tags removed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationWithUsersAndAddresses"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove tags from organization",
        "tags": [
          "Organizations"
        ]
      },
      "post": {
        "description": "Associates one or more tags with an organization for categorization and filtering. Tags must exist before they can be added.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/internal_pkg_webserver_v1.MerchantUserTag2"
        },
        "responses": {
          "200": {
            "description": "Updated organization with new tags",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationWithUsersAndAddresses"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add tags to organization",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/organisations/{org_id}/tree": {
      "get": {
        "description": "Retrieves a tree of organizations connected by parent ID by starting from the organization ID.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Organization details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationTree"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad organization ID format)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get organization tree by ID",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/organisations/{org_id}/user": {
      "delete": {
        "description": "Disassociates a user from an organization, removing their access and permissions for that organization.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.RemoveOrganisationUser"
              }
            }
          },
          "description": "User ID to remove",
          "required": true
        },
        "responses": {
          "200": {
            "description": "User removed from organization successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization or user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Remove user from organization",
        "tags": [
          "Organizations"
        ]
      },
      "put": {
        "description": "Associates an existing user with an organization, assigning them a custom role and access level (default/admin/super-admin).",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Organization ID",
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrganisationUser"
              }
            }
          },
          "description": "User details",
          "required": true
        },
        "responses": {
          "200": {
            "description": "User added to organization successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad payload, validation error)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Organization or user or custom role not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Add user to organization",
        "tags": [
          "Organizations"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/products/{product_id}/duplicate": {
      "post": {
        "description": "Creates a copy of an existing product including its categories, tags, collections, images, videos, files, attributes, translations, and omnichannel data. Variants, redirects, and product relations are not copied. The duplicated product status is set to draft. Optionally provide a product_number; otherwise a unique product number is auto-generated.",
        "parameters": [
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID to duplicate",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.DuplicateProductPayload"
              }
            }
          },
          "description": "Optional duplicate overrides"
        },
        "responses": {
          "201": {
            "description": "Product duplicated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseProduct"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. bad UUID)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Product not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Duplicate a product",
        "tags": [
          "Products"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/products/{product_id}/variant-groups": {
      "get": {
        "description": "Returns all variant groups for a product",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Variant groups list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantGroups"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "List variant groups",
        "tags": [
          "Variant Groups"
        ]
      },
      "post": {
        "description": "Creates a variant group linked to an attribute for a product",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateVariantGroupPayload"
              }
            }
          },
          "description": "Attribute IDs",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Variant group created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or mismatched attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Attribute not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Create a variant group",
        "tags": [
          "Variant Groups"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/products/{product_id}/variant-groups/{group_id}": {
      "delete": {
        "description": "Deletes a variant group and its image relationships",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant group ID",
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Variant group deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid group ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Variant group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Delete a variant group",
        "tags": [
          "Variant Groups"
        ]
      },
      "get": {
        "description": "Returns a single variant group by ID",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant group ID",
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Variant group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid group ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Variant group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Get a variant group",
        "tags": [
          "Variant Groups"
        ]
      },
      "patch": {
        "description": "Updates the name of a variant group",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant group ID",
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.UpdateVariantGroupPayload"
              }
            }
          },
          "description": "Name update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated variant group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Variant group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Update a variant group",
        "tags": [
          "Variant Groups"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/products/{product_id}/variant-groups/{group_id}/images": {
      "put": {
        "description": "Replaces all images for a variant group",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant group ID",
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.SetVariantGroupImagesPayload"
              }
            }
          },
          "description": "Images to set",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated variant group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Variant group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Set variant group images",
        "tags": [
          "Variant Groups"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/products/{product_id}/variant-groups/{group_id}/images/reorder": {
      "patch": {
        "description": "Reorders images for a variant group by assigning priorities based on array position",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant group ID",
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.ReorderVariantGroupImagesPayload"
              }
            }
          },
          "description": "Ordered image IDs",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated variant group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Variant group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Reorder variant group images",
        "tags": [
          "Variant Groups"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/products/{product_id}/variant-groups/{group_id}/videos": {
      "put": {
        "description": "Replaces all videos for a variant group",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Variant group ID",
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.SetVariantGroupVideosPayload"
              }
            }
          },
          "description": "Videos to set",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated variant group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantGroup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Variant group not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Set variant group videos",
        "tags": [
          "Variant Groups"
        ]
      }
    },
    "/api/v1/{team_slug}/{app_slug}/products/{product_id}/variant-groups/templates": {
      "delete": {
        "description": "Removes all variant templates from a product",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Templates deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponse-string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Delete product variant templates",
        "tags": [
          "Variant Templates"
        ]
      },
      "get": {
        "description": "Returns the variant templates for a product",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Variant templates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantTemplates"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Get product variant templates",
        "tags": [
          "Variant Templates"
        ]
      },
      "put": {
        "description": "Replaces the variant templates for a product",
        "parameters": [
          {
            "description": "Team slug",
            "in": "path",
            "name": "team_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "App slug",
            "in": "path",
            "name": "app_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product ID",
            "in": "path",
            "name": "product_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/internal_pkg_webserver_v1.PutProductVariantTemplatesPayload"
              }
            }
          },
          "description": "Attribute template keys",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated variant templates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.OkResponseVariantTemplates"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Attribute template not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/internal_pkg_webserver_v1.ErrorMessage"
                }
              }
            }
          }
        },
        "summary": "Set product variant templates",
        "tags": [
          "Variant Templates"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "//api.enad.io"
    }
  ],
  "components": {
    "requestBodies": {
      "internal_pkg_webserver_v1.InputRedirect": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputRedirect"
            }
          }
        },
        "description": "Redirect payload",
        "required": true
      },
      "internal_pkg_webserver_v1.SetProductCollectionsRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.SetProductCollectionsRequest"
            }
          }
        },
        "description": "Collection IDs",
        "required": true
      },
      "internal_pkg_webserver_v1.InputCustomRole": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCustomRole"
            }
          }
        },
        "description": "custom role details",
        "required": true
      },
      "internal_pkg_webserver_v1.InputTaxGroup": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputTaxGroup"
            }
          }
        },
        "description": "Tax group data",
        "required": true
      },
      "internal_pkg_webserver_v1.InputMarket": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputMarket"
            }
          }
        },
        "description": "Market data",
        "required": true
      },
      "internal_pkg_webserver_v1.StaticListingRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.StaticListingRequest"
            }
          }
        },
        "description": "static-listing configuration",
        "required": true
      },
      "internal_pkg_webserver_v1.MerchantUserTag": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.MerchantUserTag"
            }
          }
        },
        "description": "Tag IDs to remove",
        "required": true
      },
      "internal_pkg_webserver_v1.MerchantUserTag2": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.MerchantUserTag"
            }
          }
        },
        "description": "Tag IDs to add",
        "required": true
      },
      "internal_pkg_webserver_v1.InputStoreGroup": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputStoreGroup"
            }
          }
        },
        "description": "Store group data",
        "required": true
      },
      "internal_pkg_webserver_v1.BrandRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BrandRequest"
            }
          }
        },
        "description": "data on brand",
        "required": true
      },
      "internal_pkg_webserver_v1.BrandSeriesRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BrandSeriesRequest"
            }
          }
        },
        "description": "data on series",
        "required": true
      },
      "internal_pkg_webserver_v1.SetMediaFolderRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.SetMediaFolderRequest"
            }
          }
        },
        "description": "Folder details",
        "required": true
      },
      "putApiV1_teamSlug_appSlugFiles": {
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "File title",
                  "type": "string"
                },
                "type": {
                  "description": "File type",
                  "type": "string"
                },
                "file": {
                  "description": "File file to upload",
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "internal_pkg_webserver_v1.SmartListingRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.SmartListingRequest"
            }
          }
        },
        "description": "smart-listing configuration",
        "required": true
      },
      "internal_pkg_webserver_v1.InputWarehouse": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputWarehouse"
            }
          }
        },
        "description": "Warehouse data",
        "required": true
      }
    },
    "schemas": {
      "github_com_enadhq_nabbit_internal_pkg_database.Address": {
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zip_code": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_database.CommunicationPreferences": {
        "properties": {
          "allow_email": {
            "type": "boolean"
          },
          "allow_postal": {
            "type": "boolean"
          },
          "allow_sms": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_database.CustomFields": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_database.TranslationFieldType": {
        "enum": [
          "name",
          "value",
          "description",
          "alt",
          "title",
          "type",
          "copyright",
          "slug",
          "meta_title",
          "meta_description",
          "html_description",
          "short_description",
          "html_short_description",
          "key"
        ],
        "type": "string",
        "x-enum-varnames": [
          "TranslationFieldTypeName",
          "TranslationFieldTypeValue",
          "TranslationFieldTypeDescription",
          "TranslationFieldTypeAlt",
          "TranslationFieldTypeTitle",
          "TranslationFieldTypeType",
          "TranslationFieldTypeCopyright",
          "TranslationFieldTypeSlug",
          "TranslationFieldTypeMetaTitle",
          "TranslationFieldTypeMetaDescription",
          "TranslationFieldTypeHtmlDescription",
          "TranslationFieldTypeShortDescription",
          "TranslationFieldTypeHtmlShortDescription",
          "TranslationFieldTypeKey"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_database.TranslationType": {
        "enum": [
          "product",
          "product_bundle",
          "product_variant",
          "channel_content",
          "image",
          "attribute",
          "attribute_value",
          "category",
          "tag",
          "collection",
          "file",
          "bundle_group",
          "video",
          "brand"
        ],
        "type": "string",
        "x-enum-varnames": [
          "TranslationTypeProduct",
          "TranslationTypeProductBundle",
          "TranslationTypeProductVariant",
          "TranslationTypeChannelContent",
          "TranslationTypeImage",
          "TranslationTypeAttribute",
          "TranslationTypeAttributeValue",
          "TranslationTypeCategory",
          "TranslationTypeTag",
          "TranslationTypeCollection",
          "TranslationTypeFile",
          "TranslationTypeBundleGroup",
          "TranslationTypeVideo",
          "TranslationTypeBrand"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Address": {
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zip_code": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.AssetConsumer": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "priority": {
            "type": "integer"
          },
          "slug": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageConsumerType"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "template_key": {
            "type": "string"
          },
          "template_name": {
            "type": "string"
          },
          "translatable": {
            "type": "boolean"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTranslations"
          },
          "updated_at": {
            "type": "string"
          },
          "values": {
            "additionalProperties": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValue"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTemplate": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTemplateField"
            },
            "type": "array"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "resources": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "translatable": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTemplateField": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTranslations": {
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "name": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValue": {
        "properties": {
          "field_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValueTranslations"
          },
          "type": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValueTranslations": {
        "properties": {
          "value": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Brand": {
        "properties": {
          "cover": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandImage"
          },
          "created_at": {
            "type": "string"
          },
          "description": {
            "description": "brand description",
            "type": "string"
          },
          "id": {
            "description": "unique id of brand",
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandImage"
          },
          "name": {
            "description": "name of brand",
            "type": "string"
          },
          "series": {
            "description": "series connected to the brand",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandSeries"
            },
            "type": "array"
          },
          "slug": {
            "description": "slug of brand",
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandTranslations"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandImage": {
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandParent": {
        "properties": {
          "id": {
            "description": "id of brand",
            "type": "string"
          },
          "name": {
            "description": "name of brand",
            "type": "string"
          },
          "slug": {
            "description": "slug of brand",
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandSeries": {
        "properties": {
          "id": {
            "description": "unique id of series",
            "type": "string"
          },
          "name": {
            "description": "name of series",
            "type": "string"
          },
          "slug": {
            "description": "name of series",
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandTranslations": {
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Bundle": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "compliant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Compliance"
              }
            ],
            "description": "Compliance level for the bundle"
          },
          "created_at": {
            "description": "Creation timestamp",
            "type": "string"
          },
          "discount_percentage": {
            "description": "Discount percentage [1-100]",
            "type": "integer"
          },
          "discount_type": {
            "description": "Discount type [fixed, relative]",
            "type": "string"
          },
          "discounts": {
            "additionalProperties": {
              "format": "int64",
              "type": "integer"
            },
            "description": "Discount for bundle. Amount is stored in cents",
            "type": "object"
          },
          "id": {
            "description": "ID",
            "type": "string"
          },
          "rules": {
            "description": "Bundle rules",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleRule"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the bundle",
            "type": "string"
          },
          "updated_at": {
            "description": "Last updated timestamp",
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleCompliance": {
        "enum": [
          "none",
          "partial",
          "full"
        ],
        "type": "string",
        "x-enum-varnames": [
          "BundleComplianceNone",
          "BundleCompliancePartial",
          "BundleComplianceFull"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleGroup": {
        "properties": {
          "bundles": {
            "description": "Bundles associated with the group",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Bundle"
            },
            "type": "array"
          },
          "compliance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Compliance"
              }
            ],
            "description": "Compliance level for the bundle group, \"none\" means that there is no valid/complete configuration, \"partial\" means that some of the rules are valid, \"full\" means that all rules are valid"
          },
          "created_at": {
            "description": "Creation timestamp",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "end_date": {
            "description": "End date of the bundle group",
            "type": "string"
          },
          "id": {
            "description": "ID",
            "type": "string"
          },
          "markets": {
            "description": "Markets associated with the bundle group",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleGroupMarket"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the bundle group",
            "type": "string"
          },
          "start_date": {
            "description": "Start date of the bundle group",
            "type": "string"
          },
          "translations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleGroupTranslation"
              }
            ],
            "description": "Bundle group translations"
          },
          "updated_at": {
            "description": "Last updated timestamp",
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleGroupMarket": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "country_codes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "store_group_id": {
            "description": "Store group ID",
            "type": "string"
          },
          "store_group_slug": {
            "description": "Store group slug",
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleGroupTranslation": {
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "name": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleItem": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "image_urls": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleRule": {
        "properties": {
          "bundle_id": {
            "description": "Bundle ID",
            "type": "string"
          },
          "discount_percentage": {
            "description": "Discount percentage [1-100]",
            "type": "integer"
          },
          "discount_type": {
            "description": "Discount type [fixed, relative]",
            "type": "string"
          },
          "discounts": {
            "additionalProperties": {
              "format": "int64",
              "type": "integer"
            },
            "description": "Discount for bundle. Amount is stored in cents",
            "type": "object"
          },
          "exclude_discounted_price": {
            "description": "If products with discounted price should be excluded",
            "type": "boolean"
          },
          "exclude_full_price": {
            "description": "If products with full price should be excluded",
            "type": "boolean"
          },
          "id": {
            "description": "ID",
            "type": "string"
          },
          "items": {
            "description": "Products associated with the bundle rule",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleItem"
            },
            "type": "array"
          },
          "quantity": {
            "description": "Quantity of products needed to trigger the bundle",
            "type": "integer"
          },
          "tag_conditions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionsResp"
              }
            ],
            "description": "Conditions for discount tags"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Category": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Category"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "redirects": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          },
          "sort_order": {
            "description": "Used for ordering categories themselves",
            "type": "integer"
          },
          "status": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CategoryTranslations"
          },
          "updated_at": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.CategoryTranslations": {
        "properties": {
          "name": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "slug": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Channel": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "effective_publishing_rule": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PublishingRule"
          },
          "id": {
            "type": "string"
          },
          "market_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "publishing_rule_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "store_group_id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelContent": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "field_type": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "parent_type": {
            "type": "string"
          },
          "preview": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "relationships": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "translations": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.LocalizedValue"
            },
            "type": "array"
          },
          "updated_at": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelProductMembership": {
        "properties": {
          "channel_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "status_updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Collection": {
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Collection"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "redirects": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CollectionTranslation"
          },
          "updated_at": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "status"
        ],
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.CollectionTranslation": {
        "properties": {
          "slug": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "title": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.CommunicationPreferences": {
        "properties": {
          "allow_email": {
            "type": "boolean"
          },
          "allow_postal": {
            "type": "boolean"
          },
          "allow_sms": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Compliance": {
        "properties": {
          "info": {
            "description": "Explanation of any issues with the bundle, it will be empty if the bundle is fully compliant",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "level": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleCompliance"
              }
            ],
            "description": "Compliance level for the bundle, \"full\" if all rules are valid, \"partial\" if some rules are valid but it can still be used as a bundle, \"none\" if no rules are valid"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Constraint": {
        "properties": {
          "allowed_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "max_size_bytes": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions": {
        "properties": {
          "capacity_milliliter": {
            "description": "the capacity in milliliter",
            "minimum": 0,
            "type": "integer"
          },
          "depth": {
            "description": "The products depth in millimeter",
            "minimum": 0,
            "type": "integer"
          },
          "diameter": {
            "description": "the products diameter in millimeter",
            "minimum": 0,
            "type": "integer"
          },
          "height": {
            "description": "The products height in millimeter",
            "minimum": 0,
            "type": "integer"
          },
          "length": {
            "description": "The products length in millimeter",
            "minimum": 0,
            "type": "integer"
          },
          "weight": {
            "description": "The products weight in grams",
            "minimum": 0,
            "type": "integer"
          },
          "width": {
            "description": "The products width in millimeter",
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.DiscountTagEntityMode": {
        "enum": [
          "include",
          "exclude"
        ],
        "type": "string",
        "x-enum-varnames": [
          "DiscountTagEntityModeInclude",
          "DiscountTagEntityModeExclude"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.DraftCategoryRef": {
        "properties": {
          "id": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.DraftImageRef": {
        "properties": {
          "id": {
            "type": "string"
          },
          "priority": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.DraftTagRef": {
        "properties": {
          "key": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.File": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "folder_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.FileTranslation"
          },
          "type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.FileTranslation": {
        "properties": {
          "title": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "type": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.FileWithReferences": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "folder_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.FileTranslation"
          },
          "type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "used_by": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AssetConsumer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Folder": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "file_count": {
            "type": "integer"
          },
          "has_content_access": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "image_count": {
            "type": "integer"
          },
          "is_default": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "video_count": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.FolderMedia": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.MediaItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.FolderTree": {
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.FolderTree"
            },
            "type": "array"
          },
          "folder": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Folder"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Image": {
        "properties": {
          "alt": {
            "type": "string"
          },
          "app_id": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "blurhash": {
            "type": "string"
          },
          "copyright": {
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "folder_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageTranslation"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageConsumerType": {
        "enum": [
          "product",
          "variant",
          "attribute"
        ],
        "type": "string",
        "x-enum-varnames": [
          "ProductImageConsumer",
          "VariantImageConsumer",
          "AttributeImageConsumer"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageTranslation": {
        "properties": {
          "alt": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "copyright": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "title": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority": {
        "properties": {
          "alt": {
            "type": "string"
          },
          "app_id": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "blurhash": {
            "type": "string"
          },
          "copyright": {
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "folder_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "priority": {
            "type": "integer"
          },
          "public": {
            "type": "boolean"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageTranslation"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithUsedBy": {
        "properties": {
          "alt": {
            "type": "string"
          },
          "app_id": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "blurhash": {
            "type": "string"
          },
          "copyright": {
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "folder_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageTranslation"
          },
          "url": {
            "type": "string"
          },
          "used_by": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AssetConsumer"
            },
            "type": "array"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Image"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Job": {
        "properties": {
          "add_category_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "add_collection_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "add_tag_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "execute_at": {
            "description": "Date when the job should run",
            "type": "string"
          },
          "finished_at": {
            "description": "If a job is finished will this timestamp be filled",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "item_id": {
            "type": "string"
          },
          "item_name": {
            "type": "string"
          },
          "item_type": {
            "type": "string"
          },
          "remove_category_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "remove_collection_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "remove_tag_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "to_amount_cents_with_tax": {
            "type": "integer"
          },
          "to_market_id": {
            "type": "string"
          },
          "to_market_status": {
            "type": "string"
          },
          "to_on_sale": {
            "type": "boolean"
          },
          "to_sale_amount_cents_with_tax": {
            "type": "integer"
          },
          "to_status": {
            "type": "string"
          },
          "to_store_group_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingProductVariant": {
        "properties": {
          "app_id": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductListingAttribute"
            },
            "type": "array"
          },
          "category_slugs": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "image_urls": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Price"
            },
            "type": "array"
          },
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "total_stock": {
            "type": "integer"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          },
          "warehouse_stocks": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseStock"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRule": {
        "properties": {
          "id": {
            "type": "string"
          },
          "operator": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRuleOperator"
          },
          "target": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRuleTarget"
          },
          "target_id": {
            "description": "used for warehouse stock validation",
            "type": "string"
          },
          "value_float": {
            "type": "number"
          },
          "value_list": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "value_string": {
            "type": "string"
          }
        },
        "required": [
          "operator",
          "target"
        ],
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRuleOperator": {
        "enum": [
          "less-than",
          "greater-than",
          "equal",
          "not-equal",
          "contains"
        ],
        "type": "string",
        "x-enum-varnames": [
          "OperatorLessThan",
          "OperatorGreaterThan",
          "OperatorEqual",
          "OperatorNotEqual",
          "OperatorContains"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRuleTarget": {
        "enum": [
          "stock",
          "price",
          "title",
          "attribute",
          "category"
        ],
        "type": "string",
        "x-enum-varnames": [
          "TargetStock",
          "TargetPrice",
          "TargetTitle",
          "TargetAttribute",
          "TargetCategory"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.LocalizedValue": {
        "properties": {
          "language_code": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Log": {
        "properties": {
          "id": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "logged_at": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Market": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "country_codes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.MarketStatus": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "market_id": {
            "type": "string"
          },
          "market_slug": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "store_group_id": {
            "type": "string"
          },
          "store_group_slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.MediaItem": {
        "properties": {
          "blurhash": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.MediaType"
          },
          "updated_at": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.MediaType": {
        "enum": [
          "image",
          "video",
          "file"
        ],
        "type": "string",
        "x-enum-varnames": [
          "MediaTypeImage",
          "MediaTypeVideo",
          "MediaTypeFile"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.MerchantOrganizationDetails": {
        "properties": {
          "custom_role_id": {
            "type": "string"
          },
          "custom_role_name": {
            "type": "string"
          },
          "custom_role_slug": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisation_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.MerchantUser": {
        "properties": {
          "additions": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "address": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Address"
          },
          "address_restrictions": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.OrganisationAddressRestriction"
            },
            "type": "array"
          },
          "app_id": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "comment": {
            "type": "string"
          },
          "communication_preferences": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CommunicationPreferences"
          },
          "created_at": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "email_verification_sent_at": {
            "type": "string"
          },
          "email_verified": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "is_super_admin": {
            "type": "boolean"
          },
          "language": {
            "type": "string"
          },
          "market": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisations": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.MerchantOrganizationDetails"
            },
            "type": "array"
          },
          "phone_number": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "store_group": {
            "type": "string"
          },
          "surname": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.OmniChannelProduct": {
        "properties": {
          "attributes": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "categories": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCategory"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "collections": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCollection"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "description": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "html_description": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "html_short_description": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "images": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "meta_description": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "meta_title": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "product_name": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "short_description": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "slug": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "tags": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductTag"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.OmniChannelVariant": {
        "properties": {
          "store_group_attributes": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "store_group_categories": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCategory"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "store_group_collections": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCollection"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "store_group_images": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "store_group_tags": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "items": {
                    "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductTag"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "store_group_variant_name": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Omnichannel": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "field_type": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "market_id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "parent_type": {
            "type": "string"
          },
          "preview": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "relationships": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "store_group_id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.OmnichannelProduct": {
        "properties": {
          "image_url": {
            "type": "string"
          },
          "omnichannel": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Omnichannel"
            },
            "type": "array"
          },
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_sku": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.OrganisationAddressRestriction": {
        "properties": {
          "address_id": {
            "type": "string"
          },
          "formatted_address": {
            "type": "string"
          },
          "organisation_id": {
            "type": "string"
          },
          "organisation_name": {
            "type": "string"
          },
          "organisation_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Price": {
        "properties": {
          "amount": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "on_sale": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus": {
        "enum": [
          "active",
          "inactive",
          "draft"
        ],
        "type": "string",
        "x-enum-varnames": [
          "ActivePrice",
          "InActivePrice",
          "DraftPrice"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Product": {
        "properties": {
          "attributes": {
            "description": "Product attributes",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "brand": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductBrand"
              }
            ],
            "description": "Brand of the product"
          },
          "categories": {
            "description": "Associated categories",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCategory"
            },
            "type": "array"
          },
          "channel_statuses": {
            "description": "Per-channel publishing status; populated only when filtering by channel-id",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductChannelStatus"
            },
            "type": "array"
          },
          "collections": {
            "description": "Associated collections",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCollection"
            },
            "type": "array"
          },
          "created_at": {
            "description": "Creation timestamp",
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "description": {
            "description": "Description of the product",
            "type": "string"
          },
          "exclude_from_feeds": {
            "description": "If the products should exist in feeds or not",
            "type": "boolean"
          },
          "files": {
            "description": "Product files",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.File"
            },
            "type": "array"
          },
          "html_description": {
            "description": "Html description",
            "type": "string"
          },
          "html_short_description": {
            "description": "Html short description",
            "type": "string"
          },
          "id": {
            "description": "Product ID",
            "type": "string"
          },
          "images": {
            "description": "Images of the product",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
            },
            "type": "array"
          },
          "market_status": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.MarketStatus"
            },
            "type": "array"
          },
          "markets": {
            "description": "Associated markets",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
            },
            "type": "array"
          },
          "meta_description": {
            "description": "Meta description for SEO",
            "type": "string"
          },
          "meta_title": {
            "description": "Meta title for SEO",
            "type": "string"
          },
          "omnichannel": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.OmniChannelProduct"
          },
          "package_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The package dimensions"
          },
          "product_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The products dimensions"
          },
          "product_name": {
            "description": "VariantName of the product",
            "type": "string"
          },
          "product_number": {
            "description": "Product number",
            "type": "string"
          },
          "product_type": {
            "description": "Product type",
            "type": "string"
          },
          "redirects": {
            "description": "Product redirects",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects"
            },
            "type": "array"
          },
          "relations": {
            "description": "Product relations",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Relation"
            },
            "type": "array"
          },
          "schedules": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Job"
            },
            "type": "array"
          },
          "short_description": {
            "description": "Short description of the product",
            "type": "string"
          },
          "slug": {
            "description": "Slug for the product",
            "type": "string"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "description": "Status of the product",
            "type": "string"
          },
          "tags": {
            "description": "Product tags",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductTag"
            },
            "type": "array"
          },
          "tax_group_id": {
            "description": "The id of the tax group",
            "type": "string"
          },
          "third_part_links": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ThirdPartyLink"
            },
            "type": "array"
          },
          "translations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductTranslations"
              }
            ],
            "description": "Product translations"
          },
          "updated_at": {
            "description": "Last updated timestamp",
            "type": "string"
          },
          "variant_groups": {
            "description": "Variant groups with images, attributes, videos",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroup"
            },
            "type": "array"
          },
          "variants": {
            "description": "Product variants",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant"
            },
            "type": "array"
          },
          "videos": {
            "description": "Videos of the product",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Video"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductBrand": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "series": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductSeries"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCategory": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Category"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          },
          "parent_id": {
            "type": "string"
          },
          "redirects": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          },
          "sort_order": {
            "description": "Used for ordering categories themselves",
            "type": "integer"
          },
          "status": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CategoryTranslations"
          },
          "updated_at": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductChannelStatus": {
        "properties": {
          "channel_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductCollection": {
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Collection"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          },
          "parent_id": {
            "type": "string"
          },
          "redirects": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CollectionTranslation"
          },
          "updated_at": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "status"
        ],
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductDraft": {
        "properties": {
          "app_id": {
            "type": "string"
          },
          "changeset": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductDraftChangeset"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "publish_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductDraftChangeset": {
        "properties": {
          "attributes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "categories": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.DraftCategoryRef"
            },
            "type": "array"
          },
          "collections": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "html_description": {
            "type": "string"
          },
          "html_short_description": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.DraftImageRef"
            },
            "type": "array"
          },
          "meta_description": {
            "type": "string"
          },
          "meta_title": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "short_description": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.DraftTagRef"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductListingAttribute": {
        "properties": {
          "template_id": {
            "type": "string"
          },
          "template_name": {
            "type": "string"
          },
          "values": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductSeries": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductTag": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "markets": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer"
          },
          "schedules": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Job"
            },
            "type": "array"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagTranslations"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductTranslations": {
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "html_description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "html_short_description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "meta_description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "meta_title": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "name": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "short_description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "slug": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPrice": {
        "properties": {
          "amount_cents_with_tax": {
            "type": "integer"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "market": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
          },
          "on_sale": {
            "type": "boolean"
          },
          "reference_price_with_tax": {
            "type": "integer"
          },
          "sale_end_timestamp": {
            "type": "string"
          },
          "sale_price_with_tax": {
            "type": "integer"
          },
          "sale_start_timestamp": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPriceWithStoreGroup": {
        "properties": {
          "amount_cents_with_tax": {
            "type": "integer"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "market": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
          },
          "on_sale": {
            "type": "boolean"
          },
          "reference_price_with_tax": {
            "type": "integer"
          },
          "sale_end_timestamp": {
            "type": "string"
          },
          "sale_price_with_tax": {
            "type": "integer"
          },
          "sale_start_timestamp": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus"
          },
          "store_group": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.StoreGroup"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantStoreGroupWithPrices": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPrice"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          },
          "store_type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantTemplate": {
        "properties": {
          "attribute_template_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "template_key": {
            "type": "string"
          },
          "template_name": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantTranslations": {
        "properties": {
          "name": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.PublishingRule": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "is_default": {
            "type": "boolean"
          },
          "minimum_images": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "should_have_brand": {
            "type": "boolean"
          },
          "should_have_category": {
            "type": "boolean"
          },
          "should_have_description": {
            "type": "boolean"
          },
          "should_have_main_category": {
            "type": "boolean"
          },
          "should_have_price": {
            "type": "boolean"
          },
          "should_have_product_name": {
            "type": "boolean"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice": {
        "properties": {
          "currency": {
            "type": "string"
          },
          "value_cents": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.RedirectType": {
        "enum": [
          "product",
          "page",
          "collection",
          "category",
          "product_bundle"
        ],
        "type": "string",
        "x-enum-varnames": [
          "ProductRedirect",
          "PageRedirect",
          "CollectionRedirect",
          "CategoryRedirect",
          "ProductBundleRedirect"
        ]
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects": {
        "properties": {
          "id": {
            "type": "string"
          },
          "item_id": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "new_slug": {
            "type": "string"
          },
          "old_slug": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.RedirectType"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Relation": {
        "properties": {
          "direction": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "primary_product_id": {
            "type": "string"
          },
          "products": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.RelationProduct"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "type_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.RelationProduct": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.RelationType": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Series": {
        "properties": {
          "brand": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandParent"
              }
            ],
            "description": "brand for which the series belong to"
          },
          "cover": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Image"
          },
          "created_at": {
            "type": "string"
          },
          "description": {
            "description": "series description",
            "type": "string"
          },
          "id": {
            "description": "id of series",
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Image"
          },
          "name": {
            "description": "name of series",
            "type": "string"
          },
          "slug": {
            "description": "slug of series",
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BrandTranslations"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ShareableLink": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "expires_at": {
            "type": "string"
          },
          "file_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "folder_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "image_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "token": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "video_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ShareableLinkWithResources": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "expires_at": {
            "type": "string"
          },
          "folders": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Folder"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.MediaItem"
            },
            "type": "array"
          },
          "token": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionReq": {
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          },
          "mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.DiscountTagEntityMode"
              }
            ],
            "enum": [
              "include",
              "exclude"
            ]
          }
        },
        "required": [
          "ids",
          "mode"
        ],
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp": {
        "properties": {
          "mode": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.DiscountTagEntityMode"
          },
          "values": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionTag"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.SmartListing": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRule"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.StaticListing": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.StaticListingProductVariant"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.StaticListingProductVariant": {
        "properties": {
          "app_id": {
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.StoreGroup": {
        "properties": {
          "country_of_sale": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "store_type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.StoreGroupMarket": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "country_codes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "is_tax_exemption_eligible": {
            "type": "boolean"
          },
          "is_tax_included_in_price": {
            "type": "boolean"
          },
          "locale": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.StoreGroupWithMarkets": {
        "properties": {
          "country_of_sale": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "markets": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.StoreGroupMarket"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "store_type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "markets": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "schedules": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Job"
            },
            "type": "array"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagTranslations"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionTag": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionsReq": {
        "properties": {
          "brands": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionReq"
          },
          "categories": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionReq"
          },
          "collections": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionReq"
          },
          "series": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionReq"
          },
          "tags": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionReq"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionsResp": {
        "properties": {
          "brands": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp"
          },
          "categories": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp"
          },
          "collections": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp"
          },
          "series": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp"
          },
          "tags": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.TagTranslations": {
        "properties": {
          "name": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.TaxGroup": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "is_default": {
            "type": "boolean"
          },
          "markets": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TaxGroupMarket"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.TaxGroupCountryTaxPercentage": {
        "properties": {
          "country_code": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "tax_percentage": {
            "type": "number"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.TaxGroupMarket": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "country_codes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "country_tax_percentages": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TaxGroupCountryTaxPercentage"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.ThirdPartyLink": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation": {
        "properties": {
          "id": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "omni_channel_translations": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "market_id": {
                  "type": "string"
                },
                "store_group_id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "description": "Images of the product",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
            },
            "type": "array"
          },
          "listings": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListings"
          },
          "omnichannel": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.OmniChannelVariant"
          },
          "parent_product_id": {
            "type": "string"
          },
          "purchase_price": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice"
          },
          "shipping_attributes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "store_group": {
            "description": "Product StoreGroup",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantStoreGroupWithPrices"
            },
            "type": "array"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantTranslations"
          },
          "updated_at": {
            "type": "string"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_dimensions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
          },
          "variant_group_id": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          },
          "videos": {
            "description": "Videos of the product",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Video"
            },
            "type": "array"
          },
          "warehouse_variant_stock": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseVariantStock"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroup": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroupAttribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroupVariant"
            },
            "type": "array"
          },
          "videos": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Video"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroupAttribute": {
        "properties": {
          "attribute_id": {
            "type": "string"
          },
          "attribute_key": {
            "type": "string"
          },
          "attribute_name": {
            "type": "string"
          },
          "template_key": {
            "type": "string"
          },
          "template_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroupVariant": {
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListing": {
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListings": {
        "properties": {
          "smart": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListing"
            },
            "type": "array"
          },
          "static": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListing"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantWithProductInformation": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "description": "Images of the product",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
            },
            "type": "array"
          },
          "listings": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListings"
          },
          "omnichannel": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.OmniChannelVariant"
          },
          "parent_product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "purchase_price": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice"
          },
          "shipping_attributes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "source_app_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "store_group": {
            "description": "Product StoreGroup",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantStoreGroupWithPrices"
            },
            "type": "array"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantTranslations"
          },
          "updated_at": {
            "type": "string"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_dimensions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
          },
          "variant_group_id": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          },
          "videos": {
            "description": "Videos of the product",
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Video"
            },
            "type": "array"
          },
          "warehouse_variant_stock": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseVariantStock"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.Video": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "folder_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoTranslations"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoVariant"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoTranslations": {
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          },
          "title": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoUrl": {
        "properties": {
          "constraints": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Constraint"
          },
          "expires_at": {
            "type": "integer"
          },
          "id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "upload_url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoVariant": {
        "properties": {
          "format": {
            "type": "string"
          },
          "height": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "width": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoWithUsedBy": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "folder_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoTranslations"
          },
          "used_by": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AssetConsumer"
            },
            "type": "array"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoVariant"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseStock": {
        "properties": {
          "stock": {
            "type": "integer"
          },
          "warehouse_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseVariantStock": {
        "properties": {
          "available_online": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "inventory_date": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "updated_at": {
            "type": "string"
          },
          "warehouse_name": {
            "type": "string"
          },
          "warehouse_slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.AddCategoryToProduct": {
        "properties": {
          "order": {
            "description": "set which order placement the product have in the category",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.AddImageRelationship": {
        "properties": {
          "item_id": {
            "type": "string"
          },
          "item_type": {
            "enum": [
              "product",
              "variant"
            ],
            "type": "string"
          },
          "priority": {
            "description": "Priority of the image, i.e. the order in which it should be displayed",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "item_id",
          "item_type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.AddResourcesToShareableLinkRequest": {
        "properties": {
          "file_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "folder_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "image_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "video_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.AddTagToProductPayload": {
        "properties": {
          "order": {
            "description": "set which order placement the product have in the category",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.AddVideoRelationship": {
        "properties": {
          "item_id": {
            "type": "string"
          },
          "item_type": {
            "enum": [
              "product",
              "variant"
            ],
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "item_type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.AttributeWithFields": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTemplateField"
            },
            "type": "array"
          },
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "linked_attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "template_key": {
            "type": "string"
          },
          "template_name": {
            "type": "string"
          },
          "translatable": {
            "type": "boolean"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTranslations"
          },
          "updated_at": {
            "type": "string"
          },
          "values": {
            "additionalProperties": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValue"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BatchPrice": {
        "properties": {
          "amount_cents_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "market_slug": {
            "type": "string"
          },
          "on_sale": {
            "type": "boolean"
          },
          "reference_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_end_timestamp": {
            "type": "string"
          },
          "sale_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_start_timestamp": {
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus"
              }
            ],
            "enum": [
              "active",
              "inactive",
              "draft"
            ]
          }
        },
        "required": [
          "market_slug",
          "status"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BrandRequest": {
        "properties": {
          "cover_id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "logo_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BrandResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Brand"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BrandSeriesRequest": {
        "properties": {
          "cover_id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "logo_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddAttributeRelationshipsResponse": {
        "properties": {
          "failed_adds": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAttributeRelationshipFailedOp"
            },
            "type": "array"
          },
          "successful_adds": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAttributeRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddChannelProductMembershipsPayload": {
        "properties": {
          "product_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "product_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddImageRelationshipFailedOp": {
        "properties": {
          "item_id": {
            "type": "string"
          },
          "item_type": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddImageRelationshipItem": {
        "properties": {
          "item_id": {
            "type": "string"
          },
          "item_type": {
            "enum": [
              "product",
              "variant"
            ],
            "type": "string"
          },
          "priority": {
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "item_id",
          "item_type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddImageRelationshipsPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddImageRelationshipItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddImageRelationshipsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddImageRelationshipFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddImageRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddProductsToCategoriesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCategoryProductFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCategoryProductRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddProductsToCollectionsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCollectionProductFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCollectionProductRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddProductsToTagsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkProductTagFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkProductTagRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAddVariantsToTagsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkVariantTagFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkVariantTagRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAttributeRelationshipFailedOp": {
        "properties": {
          "attribute_id": {
            "type": "string"
          },
          "item_id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkAttributeRelationshipItem": {
        "properties": {
          "attribute_id": {
            "type": "string"
          },
          "item_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "attribute_id",
          "item_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCategoryProductFailedOp": {
        "properties": {
          "category_id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCategoryProductRelationshipItem": {
        "properties": {
          "category_id": {
            "type": "string"
          },
          "product_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "category_id",
          "product_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkChannelMembershipFailed": {
        "properties": {
          "id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkChannelMembershipResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkChannelMembershipFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelProductMembership"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCollectionProductFailedOp": {
        "properties": {
          "collection_id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCollectionProductRelationshipItem": {
        "properties": {
          "collection_id": {
            "type": "string"
          },
          "product_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "collection_id",
          "product_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateAttributeFailed": {
        "properties": {
          "input": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributeItem"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateAttributeItem": {
        "properties": {
          "description": {
            "description": "A description for the attribute.",
            "type": "string"
          },
          "key": {
            "description": "A unique key for the attribute.",
            "type": "string"
          },
          "name": {
            "description": "The name of the attribute.",
            "type": "string"
          },
          "values": {
            "additionalProperties": {},
            "description": "Values for the attribute's fields, where the key is the field's key.\nThe expected value type depends on the field's `type` defined in the attribute template:\n- \"text\": string\n- \"number\": number\n- \"boolean\": boolean\n- \"color\": string (hex format, e.g., \"#RRGGBB\")\n- \"image\": string (existing app image UUID, base64 encoded image data, or a public URL), or object {\"image_id\":\"<uuid>\"} referencing an existing app image",
            "type": "object"
          }
        },
        "required": [
          "key",
          "name"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateAttributeTemplateFailed": {
        "properties": {
          "input": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAttributeTemplate"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateAttributeTemplatesPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAttributeTemplate"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateAttributeTemplatesResponse": {
        "properties": {
          "failed_creations": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributeTemplateFailed"
            },
            "type": "array"
          },
          "successful_creations": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTemplate"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateAttributesPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributeItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateAttributesResponse": {
        "properties": {
          "failed_creations": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributeFailed"
            },
            "type": "array"
          },
          "successful_creations": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateCategoriesPayload": {
        "properties": {
          "categories": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCategory"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "categories"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateCategoriesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateCategoryFailedCreation"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Category"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateCategoryFailedCreation": {
        "properties": {
          "name": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateChannelContentFailedCreation": {
        "properties": {
          "payload": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCreateChannelContent"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateChannelContentPayload": {
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputCreateChannelContent"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateChannelContentResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateChannelContentFailedCreation"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelContent"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateCollectionFailedCreation": {
        "properties": {
          "reason": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateCollectionsPayload": {
        "properties": {
          "collections": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.CollectionRequest"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "collections"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateCollectionsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateCollectionFailedCreation"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Collection"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateFailedCreation": {
        "properties": {
          "product_number": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateOmnichannelFailedCreation": {
        "properties": {
          "payload": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateOmniChannel"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateOmnichannelsPayload": {
        "properties": {
          "omnichannels": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateOmniChannel"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "omnichannels"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateOmnichannelsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateOmnichannelFailedCreation"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Omnichannel"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateProductsPayload": {
        "properties": {
          "products": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateProductPayload"
            },
            "maxItems": 20,
            "type": "array"
          }
        },
        "required": [
          "products"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateProductsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateFailedCreation"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Product"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateSchedulingFailedOp": {
        "properties": {
          "item_id": {
            "type": "string"
          },
          "item_type": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateSchedulingPayload": {
        "properties": {
          "jobs": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateSchedulingPayload"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "jobs"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateSchedulingResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateSchedulingFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Job"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateTagFailedCreation": {
        "properties": {
          "key": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateTagsPayload": {
        "properties": {
          "tags": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.CreateTagPayload"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "tags"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateTagsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateTagFailedCreation"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateVariantFailedCreation": {
        "properties": {
          "reason": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateVariantItem": {
        "properties": {
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "product_id": {
            "type": "string"
          },
          "purchase_price": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice"
          },
          "status": {
            "description": "Status of the product",
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          },
          "stock": {
            "description": "Stock level of the variant",
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputVariantStock"
            },
            "type": "array"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_dimensions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
          },
          "variant_group_id": {
            "type": "string"
          },
          "variant_name": {
            "description": "VariantName of the variant",
            "type": "string"
          },
          "variant_number": {
            "description": "Number of the variant",
            "type": "string"
          }
        },
        "required": [
          "product_id",
          "status",
          "stock",
          "variant_name",
          "variant_number"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateVariantsPayload": {
        "properties": {
          "variants": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateVariantItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "variants"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkCreateVariantsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateVariantFailedCreation"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteCategoriesPayload": {
        "properties": {
          "category_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "category_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteCategoriesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteCollectionsPayload": {
        "properties": {
          "collection_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "collection_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteCollectionsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteFailed": {
        "properties": {
          "id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteImagesPayload": {
        "properties": {
          "image_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "image_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteImagesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeletePricesPayload": {
        "properties": {
          "price_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "price_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeletePricesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteProductsPayload": {
        "properties": {
          "product_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "product_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteProductsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteSchedulingPayload": {
        "properties": {
          "job_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "job_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteSchedulingResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.DeleteSchedulingResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteStockItem": {
        "properties": {
          "variant_id": {
            "type": "string"
          },
          "warehouse_slug": {
            "type": "string"
          }
        },
        "required": [
          "variant_id",
          "warehouse_slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteStockPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteStockItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteStockResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkStockFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteStockItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteTagsPayload": {
        "properties": {
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "tag_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteTagsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteVariantsPayload": {
        "properties": {
          "variant_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "variant_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteVariantsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteVideosPayload": {
        "properties": {
          "video_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "video_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkDeleteVideosResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteFailed"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkModifyAttributeRelationshipsPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAttributeRelationshipItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkModifyCategoryProductsPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCategoryProductRelationshipItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkModifyCollectionProductsPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCollectionProductRelationshipItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkModifyProductTagsPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkProductTagRelationshipItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkModifyVariantTagsPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkVariantTagRelationshipItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchAttributeFailed": {
        "properties": {
          "input": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchAttributeItem"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchAttributeItem": {
        "properties": {
          "description": {
            "description": "The new description for the attribute. Optional.",
            "type": "string"
          },
          "key": {
            "description": "The unique key of the attribute to patch.",
            "type": "string"
          },
          "name": {
            "description": "The new name of the attribute. Optional.",
            "type": "string"
          },
          "values": {
            "additionalProperties": {},
            "description": "Values for the attribute's fields to update, where the key is the field's key.\nThe expected value type depends on the field's `type` defined in the attribute template:\n- \"text\": string\n- \"number\": number\n- \"boolean\": boolean\n- \"color\": string (hex format, e.g., \"#RRGGBB\")\n- \"image\": string (existing app image UUID, base64 encoded image data, or a public URL), or object {\"image_id\":\"<uuid>\"} referencing an existing app image",
            "type": "object"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchAttributesPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchAttributeItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchAttributesResponse": {
        "properties": {
          "failed_patches": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchAttributeFailed"
            },
            "type": "array"
          },
          "successful_patches": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchCategoriesPayload": {
        "properties": {
          "categories": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchCategoryItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "categories"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchCategoriesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Category"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchCategoryItem": {
        "properties": {
          "childless": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "sort_order": {
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CategoryTranslations"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchCollectionItem": {
        "properties": {
          "id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchCollectionsPayload": {
        "properties": {
          "collections": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchCollectionItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "collections"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchCollectionsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Collection"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchFailedUpdate": {
        "properties": {
          "id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchOmnichannelFailedUpdate": {
        "properties": {
          "id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchOmnichannelItem": {
        "properties": {
          "id": {
            "type": "string"
          },
          "relationships": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchOmnichannelsPayload": {
        "properties": {
          "omnichannels": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchOmnichannelItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "omnichannels"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchOmnichannelsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchOmnichannelFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Omnichannel"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchPriceItem": {
        "properties": {
          "amount_cents_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "id": {
            "type": "string"
          },
          "on_sale": {
            "type": "boolean"
          },
          "reference_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_end_timestamp": {
            "type": "string"
          },
          "sale_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_start_timestamp": {
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus"
              }
            ],
            "enum": [
              "active",
              "inactive",
              "draft"
            ]
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchPricesPayload": {
        "properties": {
          "prices": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchPriceItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "prices"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchPricesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPriceWithStoreGroup"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchProductItem": {
        "properties": {
          "brand_id": {
            "description": "Brand or series of a brand connected to product",
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom fields - null value removes the field, non-null merges with existing",
            "type": "object"
          },
          "description": {
            "description": "Deprecated: read-only in write payloads. Derived from html_description.",
            "type": "string"
          },
          "exclude_from_feeds": {
            "description": "Whenever a product should exist in feeds or not",
            "type": "boolean"
          },
          "html_description": {
            "description": "HTML description of the description fields. All of the fields which is not related to showing content, e.g <button> or <script> tags will be stripped from the input",
            "type": "string"
          },
          "html_short_description": {
            "description": "HTML Shortdescription of the description fields. All of the fields which is not related to showing content, e.g <button> or <script> tags will be stripped from the input",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "market_status": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.ProductMarketStatus"
            },
            "type": "array"
          },
          "meta_description": {
            "description": "Meta description for SEO",
            "type": "string"
          },
          "meta_title": {
            "description": "Meta title for SEO",
            "type": "string"
          },
          "package_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The package dimensions"
          },
          "product_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The products dimensions"
          },
          "product_name": {
            "description": "Name of the product",
            "type": "string"
          },
          "product_type": {
            "description": "Product type. Default 'simple'",
            "enum": [
              "flexible",
              "simple"
            ],
            "type": "string"
          },
          "short_description": {
            "description": "Deprecated: read-only in write payloads. Derived from html_short_description.",
            "type": "string"
          },
          "slug": {
            "description": "Slug for the product",
            "type": "string"
          },
          "status": {
            "description": "Status of the product",
            "enum": [
              "active",
              "draft",
              "inactive",
              "archived"
            ],
            "type": "string"
          },
          "tax_group_slug": {
            "description": "If provided will the product using the selected tax group. Otherwise will we use the default tax group for the app",
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchProductPayload": {
        "properties": {
          "products": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchProductItem"
            },
            "maxItems": 20,
            "type": "array"
          }
        },
        "required": [
          "products"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchProductsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Product"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchTagItem": {
        "properties": {
          "filterable": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "new_key": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchTagsPayload": {
        "properties": {
          "tags": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchTagItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "tags"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchTagsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchVariantItem": {
        "properties": {
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom fields - null value removes the field, non-null merges with existing",
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "purchase_price": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice"
          },
          "status": {
            "description": "Status of the product",
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          },
          "stock": {
            "description": "Stock level of the variant",
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputVariantStock"
            },
            "type": "array"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_dimensions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
          },
          "variant_group_id": {
            "type": "string"
          },
          "variant_name": {
            "description": "Name of the variant",
            "type": "string"
          }
        },
        "required": [
          "id",
          "stock"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchVariantsPayload": {
        "properties": {
          "variants": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchVariantItem"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "variants"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPatchVariantsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkProductTagFailedOp": {
        "properties": {
          "product_id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkProductTagRelationshipItem": {
        "properties": {
          "product_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "tag_id": {
            "type": "string"
          }
        },
        "required": [
          "product_ids",
          "tag_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPutPriceFailedOp": {
        "properties": {
          "market_slug": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "store_group_slug": {
            "type": "string"
          },
          "variant_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPutPriceItem": {
        "properties": {
          "amount_cents_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "market_slug": {
            "type": "string"
          },
          "on_sale": {
            "type": "boolean"
          },
          "reference_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_end_timestamp": {
            "type": "string"
          },
          "sale_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_start_timestamp": {
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus"
              }
            ],
            "enum": [
              "active",
              "inactive",
              "draft"
            ]
          },
          "store_group_slug": {
            "type": "string"
          },
          "variant_id": {
            "type": "string"
          }
        },
        "required": [
          "amount_cents_with_tax",
          "market_slug",
          "store_group_slug",
          "variant_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPutPricesPayload": {
        "properties": {
          "prices": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPutPriceItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "prices"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkPutPricesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPutPriceFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPriceWithStoreGroup"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveAttributeRelationshipsResponse": {
        "properties": {
          "failed_removals": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAttributeRelationshipFailedOp"
            },
            "type": "array"
          },
          "successful_removals": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAttributeRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveImageRelationshipFailedOp": {
        "properties": {
          "item_id": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveImageRelationshipItem": {
        "properties": {
          "item_id": {
            "type": "string"
          }
        },
        "required": [
          "item_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveImageRelationshipsPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveImageRelationshipItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveImageRelationshipsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveImageRelationshipFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveProductsFromCategoriesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCategoryProductFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCategoryProductRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveProductsFromCollectionsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCollectionProductFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCollectionProductRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveProductsFromTagsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkProductTagFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkProductTagRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkRemoveVariantsFromTagsResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkVariantTagFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkVariantTagRelationshipItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkSetMediaFolderItem": {
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "enum": [
              "image",
              "video",
              "file"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkSetMediaFolderRequest": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkSetMediaFolderItem"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkSetStockItem": {
        "properties": {
          "inventory_date": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "variant_id": {
            "type": "string"
          },
          "warehouse_slug": {
            "type": "string"
          }
        },
        "required": [
          "variant_id",
          "warehouse_slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkSetStockPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkSetStockItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkSetStockResponse": {
        "properties": {
          "failed_sets": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkStockFailedOp"
            },
            "type": "array"
          },
          "successful_sets": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseVariantStock"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkStockFailedOp": {
        "properties": {
          "reason": {
            "type": "string"
          },
          "variant_id": {
            "type": "string"
          },
          "warehouse_slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUpdateChannelContentFailedUpdate": {
        "properties": {
          "payload": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUpdateChannelContentItem"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUpdateChannelContentItem": {
        "properties": {
          "content_id": {
            "type": "string"
          },
          "relationships": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "translations": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.LocalizedValue"
            },
            "type": "array"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "content_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUpdateChannelContentPayload": {
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUpdateChannelContentItem"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUpdateChannelContentResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUpdateChannelContentFailedUpdate"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelContent"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUploadImageFailedOp": {
        "properties": {
          "filename": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUploadImageItem": {
        "properties": {
          "alt": {
            "type": "string"
          },
          "blurhash": {
            "type": "string"
          },
          "connect_to_sku": {
            "type": "boolean"
          },
          "connect_to_slug": {
            "type": "boolean"
          },
          "copyright": {
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "filename": {
            "type": "string"
          },
          "image_base64": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUploadImagesPayload": {
        "properties": {
          "images": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUploadImageItem"
            },
            "maxItems": 10,
            "type": "array"
          }
        },
        "required": [
          "images"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkUploadImagesResponse": {
        "properties": {
          "failed": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUploadImageFailedOp"
            },
            "type": "array"
          },
          "successful": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithUsedBy"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkVariantTagFailedOp": {
        "properties": {
          "reason": {
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          },
          "variant_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.BulkVariantTagRelationshipItem": {
        "properties": {
          "tag_id": {
            "type": "string"
          },
          "variant_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "tag_id",
          "variant_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.BundleGroupDiscount": {
        "properties": {
          "amount_cents": {
            "minimum": 0,
            "type": "integer"
          },
          "currency_code": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.CollectionProductRequest": {
        "properties": {
          "product_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "product_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CollectionRequest": {
        "properties": {
          "parent_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "status",
          "title"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CollectionStringResponse": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.CollectionsResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Collection"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateBundleRulePayload": {
        "properties": {
          "discount_percentage": {
            "type": "integer"
          },
          "discount_type": {
            "type": "string"
          },
          "discounts": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BundleGroupDiscount"
            },
            "type": "array"
          },
          "exclude_discounted_price": {
            "description": "If products with discounts should be excluded from the bundle",
            "type": "boolean"
          },
          "exclude_full_price": {
            "description": "If products with no discounts should be excluded from the bundle",
            "type": "boolean"
          },
          "items": {
            "description": "Ensure at least one element is present",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "quantity": {
            "type": "integer"
          },
          "tag_conditions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionsReq"
          }
        },
        "required": [
          "discounts",
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateFolderRequest": {
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateMerchantUserPayload": {
        "properties": {
          "additions": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "address": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.Address"
          },
          "comment": {
            "type": "string"
          },
          "communication_preferences": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.CommunicationPreferences"
          },
          "email": {
            "type": "string"
          },
          "email_verified": {
            "type": "boolean"
          },
          "is_super_admin": {
            "type": "boolean"
          },
          "language": {
            "minLength": 1,
            "type": "string"
          },
          "market": {
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "phone_number": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "pending"
            ],
            "type": "string"
          },
          "store_group": {
            "minLength": 1,
            "type": "string"
          },
          "surname": {
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "email",
          "language",
          "market",
          "name",
          "status",
          "store_group",
          "surname"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateOmniChannel": {
        "properties": {
          "field_type": {
            "description": "Defines the type of field: text types (name, description, etc.) require a 'value', relationship types (category, collection, etc.) require 'relationships' array",
            "enum": [
              "name",
              "description",
              "short_description",
              "meta_description",
              "slug",
              "meta_title",
              "html_description",
              "html_short_description",
              "category",
              "collection",
              "tag",
              "attribute",
              "image"
            ],
            "type": "string"
          },
          "market_id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "parent_type": {
            "enum": [
              "product",
              "variant",
              "translation"
            ],
            "type": "string"
          },
          "relationships": {
            "description": "Set the new relationships for this omnichannel. This will remove the old ones and add the relationships which exists in the array. The priority will be the order in the array",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "store_group_id": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "field_type",
          "parent_id",
          "parent_type",
          "store_group_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateProductBundleGroupPayload": {
        "properties": {
          "description": {
            "type": "string"
          },
          "end_date": {
            "description": "Format: RFC3339 Example: \"2023-12-31T00:00:00Z\"",
            "type": "string"
          },
          "name": {
            "description": "Name of the bundle",
            "minLength": 0,
            "type": "string"
          },
          "start_date": {
            "description": "Format: RFC3339 Example: \"2023-12-31T00:00:00Z\"",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateProductBundlePayload": {
        "properties": {
          "discount_percentage": {
            "description": "Used if discount_type is relative. This will apply to all markets it's added to",
            "maximum": 100,
            "minimum": 0,
            "type": "integer"
          },
          "discount_type": {
            "enum": [
              "relative",
              "fixed"
            ],
            "type": "string"
          },
          "discounts": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BundleGroupDiscount"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the bundle",
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          }
        },
        "required": [
          "discounts"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateProductDraftPayload": {
        "properties": {
          "changeset": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductDraftChangeset"
          },
          "publish_at": {
            "type": "string"
          }
        },
        "required": [
          "changeset"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateProductPayload": {
        "properties": {
          "brand_id": {
            "description": "Brand or series of a brand connected to product",
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom fields",
            "type": "object"
          },
          "description": {
            "description": "Deprecated: read-only in write payloads. Derived from html_description.",
            "type": "string"
          },
          "exclude_from_feeds": {
            "description": "Whenever a product should exist in feeds or not. Default `false`",
            "type": "boolean"
          },
          "html_description": {
            "description": "HTML description of the description fields. All of the fields which is not related to showing content, e.g <button> or <script> tags will be stripped from the input",
            "type": "string"
          },
          "html_short_description": {
            "description": "HTML Shortdescription of the description fields. All of the fields which is not related to showing content, e.g <button> or <script> tags will be stripped from the input",
            "type": "string"
          },
          "market_status": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.ProductMarketStatus"
            },
            "type": "array"
          },
          "meta_description": {
            "description": "Meta description for SEO",
            "type": "string"
          },
          "meta_title": {
            "description": "Meta title for SEO",
            "type": "string"
          },
          "package_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The package dimensions"
          },
          "product_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The products dimensions"
          },
          "product_name": {
            "description": "Name of the product",
            "type": "string"
          },
          "product_number": {
            "description": "Product number",
            "type": "string"
          },
          "product_type": {
            "description": "Product type. Default 'simple'",
            "enum": [
              "flexible",
              "simple"
            ],
            "type": "string"
          },
          "short_description": {
            "description": "Deprecated: read-only in write payloads. Derived from html_short_description.",
            "type": "string"
          },
          "slug": {
            "description": "Slug for the product",
            "type": "string"
          },
          "status": {
            "description": "Status of the product",
            "enum": [
              "active",
              "draft",
              "inactive",
              "archived"
            ],
            "type": "string"
          },
          "tax_group_slug": {
            "description": "The tax group related to the product",
            "type": "string"
          }
        },
        "required": [
          "product_name",
          "product_number",
          "status",
          "tax_group_slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateSchedulingPayload": {
        "properties": {
          "add_categories": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "add_collections": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "add_tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "execute_at": {
            "description": "Execute at is the date when the product should change date. This date need to follow the format `YYYY-MM-DD`",
            "type": "string"
          },
          "item_id": {
            "type": "string"
          },
          "item_type": {
            "enum": [
              "product",
              "tag",
              "image",
              "price",
              "variant"
            ],
            "type": "string"
          },
          "remove_categories": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "remove_collections": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "remove_tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "to_market_id": {
            "description": "Market ID for market status change. Only used when item_type is `product`",
            "type": "string"
          },
          "to_market_status": {
            "description": "Target market status. Only used when item_type is `product`",
            "enum": [
              "active",
              "inactive",
              "draft",
              "archived"
            ],
            "type": "string"
          },
          "to_on_sale": {
            "description": "Used to change if a price is on sale on a specific date. Only used when item_type is `price`",
            "type": "boolean"
          },
          "to_price_with_tax": {
            "description": "Used to change the price on a specific date. Only used when item_type is `price`",
            "type": "integer"
          },
          "to_sale_price_with_tax": {
            "description": "Used to change the sale price on a specific date. Only used when item_type is `price`",
            "type": "integer"
          },
          "to_status": {
            "enum": [
              "active",
              "inactive",
              "archived",
              "draft"
            ],
            "type": "string"
          },
          "to_store_group_id": {
            "description": "Store group ID for market status change. Only used when item_type is `product`",
            "type": "string"
          }
        },
        "required": [
          "execute_at",
          "item_id",
          "item_type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateShareableLinkRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "expires_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateTagPayload": {
        "properties": {
          "attributes_keys": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "filterable": {
            "type": "boolean"
          },
          "key": {
            "minLength": 0,
            "type": "string"
          },
          "name": {
            "minLength": 0,
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "archived",
              "draft"
            ],
            "type": "string"
          }
        },
        "required": [
          "key",
          "name",
          "status"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateTranslationBody": {
        "properties": {
          "create_slug": {
            "description": "if this is true and with the fieldType: name, it will generate a slug. Only available to products as of now.",
            "type": "boolean"
          },
          "field_type": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.TranslationFieldType"
          },
          "language_code": {
            "description": "Locale code like \"en\" or \"en-gb\". The locale also needs to be configured and supported by the app.",
            "type": "string"
          },
          "parent_ref": {
            "type": "string"
          },
          "parent_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.TranslationType"
              }
            ],
            "enum": [
              "product",
              "product_bundle",
              "product_variant",
              "image",
              "attribute",
              "attribute_value",
              "category",
              "tag",
              "collection",
              "file",
              "bundle_group",
              "video",
              "brand",
              "channel_content"
            ]
          },
          "translation": {
            "type": "string"
          }
        },
        "required": [
          "field_type",
          "language_code",
          "parent_ref",
          "translation"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CreateVariantGroupPayload": {
        "properties": {
          "attribute_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "attribute_ids",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.CustomRole": {
        "properties": {
          "app_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "is_default": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.DailySalesMetricResponse": {
        "properties": {
          "day": {
            "type": "string"
          },
          "order_count": {
            "type": "integer"
          },
          "sales_by_currency": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.SalesByCurrency"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.DeleteItemImageRelationship": {
        "properties": {
          "item_id": {
            "type": "string"
          }
        },
        "required": [
          "item_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.DeleteItemVideoRelationship": {
        "properties": {
          "item_id": {
            "type": "string"
          }
        },
        "required": [
          "item_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.DeleteMerchantUserPayload": {
        "properties": {
          "hard_delete": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.DeleteSchedulingResponse": {
        "properties": {
          "id": {
            "type": "string"
          },
          "item_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.DuplicateProductPayload": {
        "properties": {
          "product_number": {
            "description": "Optional product number for the duplicated product",
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.ErrorMessage": {
        "properties": {
          "details": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.FullCollectionResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Collection"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.HourlySalesMetricResponse": {
        "properties": {
          "hour": {
            "type": "string"
          },
          "order_count": {
            "type": "integer"
          },
          "sales_by_currency": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.SalesByCurrency"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputAddMarketToTaxGroup": {
        "properties": {
          "country_tax_percentages": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputTaxGroupCountryTaxPercentage"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "country_tax_percentages"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputAddressUserRestriction": {
        "properties": {
          "merchant_user_id": {
            "type": "string"
          }
        },
        "required": [
          "merchant_user_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputAttributeField": {
        "properties": {
          "key": {
            "description": "Key of the attribute template field",
            "type": "string"
          },
          "name": {
            "description": "Name for the attribute template field",
            "type": "string"
          },
          "type": {
            "description": "The type of the attribute template field. This field defines how we should treat the field when you create, update or list attributes",
            "enum": [
              "boolean",
              "text",
              "number",
              "image",
              "color"
            ],
            "type": "string"
          }
        },
        "required": [
          "key",
          "name",
          "type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputAttributeRelationshipField": {
        "properties": {
          "items": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputAttributeTemplate": {
        "properties": {
          "fields": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAttributeField"
            },
            "type": "array"
          },
          "filterable": {
            "type": "boolean"
          },
          "key": {
            "description": "Key of the attribute",
            "type": "string"
          },
          "name": {
            "description": "Name of the attribute",
            "type": "string"
          },
          "resources": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "translatable": {
            "type": "boolean"
          },
          "type": {
            "description": "Name of the attribute",
            "type": "string"
          }
        },
        "required": [
          "key",
          "name",
          "type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputCategory": {
        "properties": {
          "childless": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "slug": {
            "description": "Example \"hello-world\"",
            "type": "string"
          },
          "sort_order": {
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "description": "Defaults to draft when omitted on create",
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CategoryTranslations"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputCreateChannel": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "market_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "publishing_rule_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "store_group_id": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug",
          "store_group_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputCreateChannelContent": {
        "properties": {
          "field_type": {
            "enum": [
              "name",
              "description",
              "short_description",
              "html_description",
              "html_short_description",
              "meta_title",
              "meta_description",
              "slug",
              "category",
              "collection",
              "tag",
              "attribute",
              "image"
            ],
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "parent_type": {
            "enum": [
              "product",
              "variant"
            ],
            "type": "string"
          },
          "relationships": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "translations": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.LocalizedValue"
            },
            "type": "array"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "field_type",
          "parent_id",
          "parent_type"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputCreateOrder": {
        "properties": {
          "billing_address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderAddress"
          },
          "bonus_total": {
            "minimum": 0,
            "type": "number"
          },
          "country_code": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "discount_total": {
            "minimum": 0,
            "type": "number"
          },
          "gift_card_total": {
            "minimum": 0,
            "type": "number"
          },
          "grand_total": {
            "minimum": 0,
            "type": "number"
          },
          "language_code": {
            "type": "string"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderLine"
            },
            "minItems": 1,
            "type": "array"
          },
          "merchant_user_id": {
            "type": "string"
          },
          "payment_method": {
            "type": "string"
          },
          "payment_method_id": {
            "type": "string"
          },
          "payment_method_name": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderAddress"
          },
          "shipping_methods": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "shipping_total": {
            "minimum": 0,
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "enum": [
              "placed",
              "refunded",
              "compensated",
              "released",
              "delivered",
              "cancelled"
            ],
            "type": "string"
          },
          "sub_total": {
            "minimum": 0,
            "type": "number"
          },
          "tax_total": {
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "country_code",
          "currency_code",
          "grand_total",
          "language_code",
          "lines",
          "reference",
          "source",
          "status"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputCustomRole": {
        "properties": {
          "is_default": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputMarket": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "country_codes": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "currency_code": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "country_codes",
          "currency_code",
          "locale",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputOrderAddress": {
        "properties": {
          "city": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "family_name": {
            "type": "string"
          },
          "given_name": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "state_or_province": {
            "type": "string"
          },
          "street_address": {
            "type": "string"
          },
          "street_address_2": {
            "type": "string"
          },
          "telephone_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputOrderLine": {
        "properties": {
          "base_price_amount": {
            "minimum": 0,
            "type": "number"
          },
          "currency_code": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "quantity": {
            "minimum": 1,
            "type": "integer"
          },
          "tax_group_id": {
            "type": "string"
          },
          "total_discount_amount": {
            "minimum": 0,
            "type": "number"
          },
          "total_price_amount": {
            "minimum": 0,
            "type": "number"
          },
          "total_tax_amount": {
            "minimum": 0,
            "type": "number"
          },
          "variant_id": {
            "type": "string"
          }
        },
        "required": [
          "base_price_amount",
          "currency_code",
          "product_id",
          "quantity",
          "total_price_amount",
          "variant_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputOrganisation": {
        "properties": {
          "addresses": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrganisationAddress"
            },
            "type": "array"
          },
          "comment": {
            "type": "string"
          },
          "contact_name": {
            "type": "string"
          },
          "credit_check": {
            "type": "boolean"
          },
          "custom_fields": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.CustomFields"
          },
          "email": {
            "type": "string"
          },
          "external_ref": {
            "type": "string"
          },
          "invoice_email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisation_number": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "pending",
              "inactive"
            ],
            "type": "string"
          },
          "tax_id_vat_number": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "name",
          "status"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputOrganisationAddress": {
        "properties": {
          "city": {
            "type": "string"
          },
          "co_address": {
            "type": "string"
          },
          "company_name": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "house_number": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "is_default": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "shipping_type": {
            "enum": [
              "billing",
              "shipping"
            ],
            "type": "string"
          },
          "state_province": {
            "type": "string"
          },
          "street_address": {
            "type": "string"
          }
        },
        "required": [
          "city",
          "company_name",
          "country",
          "postal_code",
          "shipping_type",
          "street_address"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputOrganisationUser": {
        "properties": {
          "custom_role_id": {
            "type": "string"
          },
          "level": {
            "enum": [
              "default",
              "admin",
              "super-admin"
            ],
            "type": "string"
          },
          "user_id": {
            "type": "string"
          }
        },
        "required": [
          "custom_role_id",
          "level",
          "user_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputPrice": {
        "properties": {
          "amount_cents_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "market_slug": {
            "type": "string"
          },
          "on_sale": {
            "type": "boolean"
          },
          "reference_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_end_timestamp": {
            "type": "string"
          },
          "sale_price_with_tax": {
            "minimum": 0,
            "type": "integer"
          },
          "sale_start_timestamp": {
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus"
              }
            ],
            "enum": [
              "active",
              "inactive",
              "draft"
            ]
          },
          "store_group_slug": {
            "type": "string"
          }
        },
        "required": [
          "market_slug",
          "status",
          "store_group_slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputPriceBatch": {
        "properties": {
          "prices": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BatchPrice"
            },
            "type": "array"
          },
          "store_group_slug": {
            "type": "string"
          }
        },
        "required": [
          "prices",
          "store_group_slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputRedirect": {
        "properties": {
          "item_id": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "new_slug": {
            "type": "string"
          },
          "old_slug": {
            "type": "string"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.RedirectType"
              }
            ],
            "enum": [
              "product",
              "page",
              "collection",
              "category",
              "product_bundle",
              "brand",
              "serie",
              "campaign"
            ]
          }
        },
        "required": [
          "locale",
          "new_slug",
          "old_slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputStoreGroup": {
        "properties": {
          "country_of_sale": {
            "description": "Country value needs to follow ISO3166_1_alpha2, which means we want a country value written in alpha-2 two-letter country codes, Example: SE or FI",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "markets": {
            "description": "The slug of the markets which should be related to this store group",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "store_type": {
            "enum": [
              "b2c",
              "b2b",
              "d2c",
              "d2b"
            ],
            "type": "string"
          }
        },
        "required": [
          "country_of_sale",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputStoreGroupMarket": {
        "properties": {
          "is_tax_exemption_eligible": {
            "type": "boolean"
          },
          "is_tax_included_in_price": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputTaxGroup": {
        "properties": {
          "description": {
            "type": "string"
          },
          "is_default": {
            "description": "If this tax group is the default tax group. If a product is created without a tax group will this tax group be selected",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputTaxGroupCountryTaxPercentage": {
        "properties": {
          "country_code": {
            "type": "string"
          },
          "tax_percentage": {
            "maximum": 100,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "country_code"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputThirdPartyLinks": {
        "properties": {
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "image",
              "video",
              "link"
            ],
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputUpdateCategory": {
        "properties": {
          "childless": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "description": "Note: Always send in parent id even if you don't want to update it. Sending in parent_id without value will remove the parent_id",
            "type": "string"
          },
          "slug": {
            "description": "Example \"hello-world\"",
            "type": "string"
          },
          "sort_order": {
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          },
          "translations": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.CategoryTranslations"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputUpdateChannel": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "market_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "publishing_rule_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputUpdateChannelContent": {
        "properties": {
          "relationships": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "translations": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.LocalizedValue"
            },
            "type": "array"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputUpdateOrder": {
        "properties": {
          "billing_address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderAddress"
          },
          "bonus_total": {
            "minimum": 0,
            "type": "number"
          },
          "country_code": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "discount_total": {
            "minimum": 0,
            "type": "number"
          },
          "gift_card_total": {
            "minimum": 0,
            "type": "number"
          },
          "grand_total": {
            "minimum": 0,
            "type": "number"
          },
          "language_code": {
            "type": "string"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderLine"
            },
            "type": "array"
          },
          "merchant_user_id": {
            "type": "string"
          },
          "payment_method": {
            "type": "string"
          },
          "payment_method_id": {
            "type": "string"
          },
          "payment_method_name": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrderAddress"
          },
          "shipping_methods": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "shipping_total": {
            "minimum": 0,
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "enum": [
              "placed",
              "refunded",
              "compensated",
              "released",
              "delivered",
              "cancelled"
            ],
            "type": "string"
          },
          "sub_total": {
            "minimum": 0,
            "type": "number"
          },
          "tax_total": {
            "minimum": 0,
            "type": "number"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputUpdateOrderStatus": {
        "properties": {
          "status": {
            "enum": [
              "placed",
              "refunded",
              "compensated",
              "released",
              "delivered",
              "cancelled"
            ],
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputUpdateOrganisation": {
        "properties": {
          "addresses": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputOrganisationAddress"
            },
            "type": "array"
          },
          "comment": {
            "type": "string"
          },
          "contact_name": {
            "type": "string"
          },
          "credit_check": {
            "type": "boolean"
          },
          "custom_fields": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.CustomFields"
          },
          "email": {
            "type": "string"
          },
          "external_ref": {
            "type": "string"
          },
          "invoice_email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisation_number": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "pending",
              "inactive"
            ],
            "type": "string"
          },
          "tax_id_vat_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputUpdateThirdPartyLink": {
        "properties": {
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "image",
              "video",
              "link"
            ],
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputVariant": {
        "properties": {
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "purchase_price": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice"
          },
          "status": {
            "description": "Status of the product",
            "enum": [
              "active",
              "draft",
              "inactive",
              "archived"
            ],
            "type": "string"
          },
          "stock": {
            "description": "Stock level of the variant",
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputVariantStock"
            },
            "type": "array"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_dimensions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
          },
          "variant_group_id": {
            "type": "string"
          },
          "variant_name": {
            "description": "VariantName of the variant",
            "type": "string"
          },
          "variant_number": {
            "description": "Number of the variant",
            "type": "string"
          }
        },
        "required": [
          "stock",
          "variant_name",
          "variant_number"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputVariantStock": {
        "properties": {
          "inventory_date": {
            "description": "ISO 8601 date format with time zone e.g. 2024-12-12T09:13:31.039Z.",
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "warehouse_slug": {
            "type": "string"
          }
        },
        "required": [
          "warehouse_slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputWarehouse": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputWarehouseAddress"
          },
          "available_online": {
            "default": true,
            "type": "boolean"
          },
          "markets": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "address",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.InputWarehouseAddress": {
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "description": "Country value needs to follow ISO3166_1_alpha2, which means we want a country value written in alpha-2 two-letter country codes, Example: SE or FI",
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "street_address": {
            "type": "string"
          }
        },
        "required": [
          "city",
          "country",
          "postal_code",
          "state",
          "street_address"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.ListingRuleRequest": {
        "properties": {
          "operator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRuleOperator"
              }
            ],
            "enum": [
              "equal",
              "not-equal",
              "greater-than",
              "less-than",
              "contains"
            ]
          },
          "target": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingRuleTarget"
              }
            ],
            "enum": [
              "stock",
              "price",
              "attribute",
              "title",
              "category"
            ]
          },
          "target_id": {
            "description": "used for warehouse stock validation",
            "type": "string"
          },
          "value_float": {
            "type": "number"
          },
          "value_list": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "value_string": {
            "type": "string"
          }
        },
        "required": [
          "operator",
          "target"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.MerchantUserResponse": {
        "properties": {
          "count": {
            "type": "integer"
          },
          "pages": {
            "type": "integer"
          },
          "users": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.MerchantUser"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.MerchantUserSummaryResponse": {
        "properties": {
          "email": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "surname": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.MerchantUserTag": {
        "properties": {
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.Message": {
        "properties": {
          "message": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.MessageResponse": {
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_ChannelContent": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelContent"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-array_internal_pkg_webserver_v1_OrderHistoryResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderHistoryResponse"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-array_internal_pkg_webserver_v1_OrderLineResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderLineResponse"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_ChannelContent": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelContent"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_ChannelProductMembership": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ChannelProductMembership"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_MerchantUser": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.MerchantUser"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-github_com_enadhq_nabbit_internal_pkg_webserver_models_Omnichannel": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Omnichannel"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_BulkChannelMembershipResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkChannelMembershipResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_BulkCreateChannelContentResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateChannelContentResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_BulkUpdateChannelContentResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUpdateChannelContentResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_CustomRole": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.CustomRole"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_MessageResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.MessageResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderLineResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderLineResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrderResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationTree": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationTree"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_OrganisationWithUsersAndAddresses": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationWithUsersAndAddresses"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-internal_pkg_webserver_v1_SalesMetricsDataResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.SalesMetricsDataResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponse-string": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseAttribute": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseAttributeList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseAttributeString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseAttributeTemplate": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTemplate"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseAttributeTemplateList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTemplate"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseAttributeTemplateString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseAttributeWithFields": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.AttributeWithFields"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkAddAttributeRelationships": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddAttributeRelationshipsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkAddImageRelationships": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddImageRelationshipsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkAddProductsToCategories": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddProductsToCategoriesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkAddProductsToCollections": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddProductsToCollectionsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkAddProductsToTags": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddProductsToTagsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkAddVariantsToTags": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkAddVariantsToTagsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateAttributeTemplates": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributeTemplatesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateAttributes": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateAttributesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateCategories": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateCategoriesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateCollections": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateCollectionsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateOmnichannels": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateOmnichannelsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateProductsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateScheduling": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateSchedulingResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateTags": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateTagsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkCreateVariants": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkCreateVariantsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteCategories": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteCategoriesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteCollections": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteCollectionsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteImages": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteImagesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeletePrices": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeletePricesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteProductsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteScheduling": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteSchedulingResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteStock": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteStockResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteTags": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteTagsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteVariants": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteVariantsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkDeleteVideos": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkDeleteVideosResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchAttributes": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchAttributesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchCategories": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchCategoriesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchCollections": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchCollectionsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchOmnichannels": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchOmnichannelsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchPrices": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchPricesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchProducts": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchProductsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchTags": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchTagsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPatchVariants": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPatchVariantsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkPutPrices": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkPutPricesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkRemoveAttributeRelationships": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveAttributeRelationshipsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkRemoveImageRelationships": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveImageRelationshipsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkRemoveProductsFromCategories": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveProductsFromCategoriesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkRemoveProductsFromCollections": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveProductsFromCollectionsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkRemoveProductsFromTags": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveProductsFromTagsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkRemoveVariantsFromTags": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkRemoveVariantsFromTagsResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkSetStock": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkSetStockResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseBulkUploadImages": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.BulkUploadImagesResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseCategory": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Category"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseCategoryList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Category"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseCategoryRemove": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseChannel": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Channel"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseChannelList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Channel"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseCustomRoleList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.CustomRole"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFile": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.File"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFileString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFileWithReferences": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.FileWithReferences"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFiles": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.File"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFolder": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Folder"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFolderMedia": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.FolderMedia"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFolderTree": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.FolderTree"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFolderTreeItem": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.FolderTree"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseFolders": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Folder"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseImage": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithUsedBy"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseImageString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseImages": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Image"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseList-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_Omnichannel": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Omnichannel"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseList-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_OmnichannelProduct": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.OmnichannelProduct"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseList-array_github_com_enadhq_nabbit_internal_pkg_webserver_models_VariantWithProductInformation": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantWithProductInformation"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseList-array_internal_pkg_webserver_v1_OrderResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderResponse"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseList-array_internal_pkg_webserver_v1_Organisation": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.Organisation"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseList-internal_pkg_webserver_v1_MerchantUserResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.MerchantUserResponse"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseLogsList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Log"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseMarket": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseMarketDeleted": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseMarketList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseMessage": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProduct": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Product"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductBundle": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Bundle"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductBundleDeleted": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductBundleGroup": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleGroup"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductBundleGroupDeleted": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductBundleGroupList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleGroup"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductBundleRule": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleRule"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductBundleRules": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleRule"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductDraft": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductDraft"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductDraftList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductDraft"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductImage": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductImages": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Product"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductPrice": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPriceWithStoreGroup"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductPriceList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPriceWithStoreGroup"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductPriceStoreGroupList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantStoreGroupWithPrices"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductPriceString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductStoreGroupPrice": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantStoreGroupWithPrices"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseProductString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponsePromoteProductDraft": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Product"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRedirect": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRedirectList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Redirects"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRedirectRemove": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRelation": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Relation"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRelationList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Relation"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRelationRemove": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRelationType": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.RelationType"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRelationTypeList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.RelationType"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseRelationTypeRemove": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseScheduling": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Job"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseSchedulingDelete": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.DeleteSchedulingResponse"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseSchedulingList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Job"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseShareableLink": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ShareableLink"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseShareableLinkWithResources": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ShareableLinkWithResources"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseShareableLinks": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ShareableLink"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseSingleItem-bool": {
        "properties": {
          "data": {
            "type": "boolean"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseSingleItem-string": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseStoreGroup": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.StoreGroupWithMarkets"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseStoreGroupList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.StoreGroupWithMarkets"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseStoreGroupRemove": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTag": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTagList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTagString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTaxGroup": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TaxGroup"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTaxGroupList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TaxGroup"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTaxGroupString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseThirdPartyLink": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ThirdPartyLink"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseThirdPartyLinkList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ThirdPartyLink"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseThirdPartyLinkString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTranslation": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.TranslationDTO"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTranslationList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.TranslationDTO"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseTranslationListWithPagignation": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.TranslationDTO"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariant": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariantDelete": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariantGroup": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroup"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariantGroups": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantGroup"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariantList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariantTemplates": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantTemplate"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariantWarehouseStock": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseVariantStock"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVariantWarehouseStockString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVideo": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoWithUsedBy"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVideoString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVideoUrl": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoUrl"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseVideos": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Video"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseWarehouse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.WarehouseWithMarkets"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseWarehouseList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.WarehouseWithMarkets"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OkResponseWarehouseString": {
        "properties": {
          "data": {
            "type": "string"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrderAddressResponse": {
        "properties": {
          "address_type": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "family_name": {
            "type": "string"
          },
          "given_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "state_or_province": {
            "type": "string"
          },
          "street_address": {
            "type": "string"
          },
          "street_address_2": {
            "type": "string"
          },
          "telephone_number": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrderDiscountResponse": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "discount_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrderHistoryLineResponse": {
        "properties": {
          "deleted": {
            "type": "boolean"
          },
          "from_quantity": {
            "type": "integer"
          },
          "history_id": {
            "type": "string"
          },
          "order_line_id": {
            "type": "string"
          },
          "product_variant_id": {
            "type": "string"
          },
          "to_quantity": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrderHistoryResponse": {
        "properties": {
          "change_type": {
            "type": "string"
          },
          "from_status": {
            "type": "string"
          },
          "happened_at": {
            "type": "string"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderHistoryLineResponse"
            },
            "type": "array"
          },
          "order_id": {
            "type": "string"
          },
          "to_status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrderLineResponse": {
        "properties": {
          "base_price_amount": {
            "type": "number"
          },
          "created_at": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "first_image_path": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_number": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "short_description": {
            "type": "string"
          },
          "tax_group_id": {
            "type": "string"
          },
          "total_discount_amount": {
            "type": "number"
          },
          "total_price_amount": {
            "type": "number"
          },
          "total_sale_price": {
            "type": "number"
          },
          "total_tax_amount": {
            "type": "number"
          },
          "updated_at": {
            "type": "string"
          },
          "variant_id": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "variant_number": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrderResponse": {
        "properties": {
          "billing_address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderAddressResponse"
          },
          "bonus_total": {
            "type": "number"
          },
          "country_code": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "discount_total": {
            "type": "number"
          },
          "discounts": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderDiscountResponse"
            },
            "type": "array"
          },
          "gift_card_total": {
            "type": "number"
          },
          "grand_total": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "language_code": {
            "type": "string"
          },
          "merchant_user": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.MerchantUserSummaryResponse"
          },
          "order_lines": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderLineResponse"
            },
            "type": "array"
          },
          "payment_method": {
            "type": "string"
          },
          "payment_method_id": {
            "type": "string"
          },
          "payment_method_name": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderAddressResponse"
          },
          "shipping_methods": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "shipping_total": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "sub_total": {
            "type": "number"
          },
          "tax_total": {
            "type": "number"
          },
          "updated_at": {
            "type": "string"
          },
          "user_content": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrderUserContent"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrderUserContent": {
        "properties": {
          "content_type": {
            "type": "string"
          },
          "filename": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.Organisation": {
        "properties": {
          "app_id": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "billing_address": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationAddress"
            },
            "type": "array"
          },
          "comment": {
            "type": "string"
          },
          "contact_name": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "credit_check": {
            "type": "boolean"
          },
          "custom_fields": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.CustomFields"
          },
          "email": {
            "type": "string"
          },
          "external_ref": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "invoice_email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisation_number": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "shipping_address": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationAddress"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          },
          "tax_id_vat_number": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrganisationAddress": {
        "properties": {
          "city": {
            "type": "string"
          },
          "co_address": {
            "type": "string"
          },
          "company_id": {
            "type": "string"
          },
          "company_name": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "house_number": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "is_default": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "state_province": {
            "type": "string"
          },
          "street_address": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrganisationTree": {
        "properties": {
          "app_id": {
            "type": "string"
          },
          "children": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationTree"
            },
            "type": "array"
          },
          "comment": {
            "type": "string"
          },
          "contact_name": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "credit_check": {
            "type": "boolean"
          },
          "custom_fields": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.CustomFields"
          },
          "email": {
            "type": "string"
          },
          "external_ref": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "invoice_email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisation_number": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "tax_id_vat_number": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrganisationUser": {
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "created_at": {
            "type": "string"
          },
          "custom_role_id": {
            "type": "string"
          },
          "custom_role_name": {
            "type": "string"
          },
          "custom_role_slug": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "email_verified": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "market": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "phone_number": {
            "type": "string"
          },
          "store_group": {
            "type": "string"
          },
          "surname": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.OrganisationWithUsersAndAddresses": {
        "properties": {
          "app_id": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute"
            },
            "type": "array"
          },
          "billing_address": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationAddress"
            },
            "type": "array"
          },
          "comment": {
            "type": "string"
          },
          "contact_name": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "credit_check": {
            "type": "boolean"
          },
          "custom_fields": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.CustomFields"
          },
          "email": {
            "type": "string"
          },
          "external_ref": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "invoice_email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organisation_number": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "shipping_address": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationAddress"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag"
            },
            "type": "array"
          },
          "tax_id_vat_number": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "users": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.OrganisationUser"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.PatchAddressInput": {
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zip_code": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.PatchCollectionBody": {
        "properties": {
          "parent_id": {
            "description": "To move collection to root, send empty string",
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.PatchMerchantUserPayload": {
        "properties": {
          "additions": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.PatchAddressInput"
          },
          "comment": {
            "type": "string"
          },
          "communication_preferences": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.PatchPermissionsInput"
          },
          "email_verified": {
            "type": "boolean"
          },
          "is_super_admin": {
            "type": "boolean"
          },
          "language": {
            "minLength": 1,
            "type": "string"
          },
          "market": {
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "phone_number": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "pending"
            ],
            "type": "string"
          },
          "store_group": {
            "minLength": 1,
            "type": "string"
          },
          "surname": {
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.PatchPermissionsInput": {
        "properties": {
          "allow_email": {
            "type": "boolean"
          },
          "allow_postal": {
            "type": "boolean"
          },
          "allow_sms": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.PatchProductPayload": {
        "properties": {
          "brand_id": {
            "description": "Brand or series of a brand connected to product",
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom fields - null value removes the field, non-null merges with existing",
            "type": "object"
          },
          "description": {
            "description": "Deprecated: read-only in write payloads. Derived from html_description.",
            "type": "string"
          },
          "exclude_from_feeds": {
            "description": "Whenever a product should exist in feeds or not",
            "type": "boolean"
          },
          "html_description": {
            "description": "HTML description of the description fields. All of the fields which is not related to showing content, e.g <button> or <script> tags will be stripped from the input",
            "type": "string"
          },
          "html_short_description": {
            "description": "HTML Shortdescription of the description fields. All of the fields which is not related to showing content, e.g <button> or <script> tags will be stripped from the input",
            "type": "string"
          },
          "market_status": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.ProductMarketStatus"
            },
            "type": "array"
          },
          "meta_description": {
            "description": "Meta description for SEO",
            "type": "string"
          },
          "meta_title": {
            "description": "Meta title for SEO",
            "type": "string"
          },
          "package_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The package dimensions"
          },
          "product_dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
              }
            ],
            "description": "The products dimensions"
          },
          "product_name": {
            "description": "Name of the product",
            "type": "string"
          },
          "product_type": {
            "description": "Product type. Default 'simple'",
            "enum": [
              "flexible",
              "simple"
            ],
            "type": "string"
          },
          "short_description": {
            "description": "Deprecated: read-only in write payloads. Derived from html_short_description.",
            "type": "string"
          },
          "slug": {
            "description": "Slug for the product",
            "type": "string"
          },
          "status": {
            "description": "Status of the product",
            "enum": [
              "active",
              "draft",
              "inactive",
              "archived"
            ],
            "type": "string"
          },
          "tax_group_slug": {
            "description": "If provided will the product using the selected tax group. Otherwise will we use the default tax group for the app",
            "minLength": 0,
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.PatchRelationTypeBody": {
        "properties": {
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.PatchVariantPayload": {
        "properties": {
          "custom_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom fields - null value removes the field, non-null merges with existing",
            "type": "object"
          },
          "purchase_price": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice"
          },
          "status": {
            "description": "Status of the product",
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          },
          "stock": {
            "description": "Stock level of the variant",
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputVariantStock"
            },
            "type": "array"
          },
          "validate_stock": {
            "type": "boolean"
          },
          "variant_dimensions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions"
          },
          "variant_group_id": {
            "type": "string"
          },
          "variant_name": {
            "description": "Name of the variant",
            "type": "string"
          }
        },
        "required": [
          "stock"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.ProductMarketStatus": {
        "properties": {
          "market_id": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft",
              "incomplete",
              "archived"
            ],
            "type": "string"
          },
          "store_group_id": {
            "type": "string"
          }
        },
        "required": [
          "market_id",
          "status",
          "store_group_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.PutProductVariantTemplatesPayload": {
        "properties": {
          "attribute_template_keys": {
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "attribute_template_keys"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.RelationRequest": {
        "properties": {
          "direction": {
            "default": "two_way",
            "description": "Default two_way",
            "enum": [
              "one_way",
              "two_way"
            ],
            "type": "string"
          },
          "primary_product_id": {
            "type": "string"
          },
          "product_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "relation_type_id": {
            "type": "string"
          }
        },
        "required": [
          "product_ids",
          "relation_type_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.RelationTypeRequest": {
        "properties": {
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.RemoveOrganisationUser": {
        "properties": {
          "user_id": {
            "type": "string"
          }
        },
        "required": [
          "user_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.RemoveResourcesFromShareableLinkRequest": {
        "properties": {
          "file_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "folder_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "image_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "video_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.ReorderVariantGroupImagesPayload": {
        "properties": {
          "image_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "image_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.SalesByCurrency": {
        "properties": {
          "currency_code": {
            "type": "string"
          },
          "total_compensated_sales": {
            "type": "number"
          },
          "total_sales_amount": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SalesMetricsDataResponse": {
        "properties": {
          "daily_metrics": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.DailySalesMetricResponse"
            },
            "type": "array"
          },
          "hourly_metrics": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.HourlySalesMetricResponse"
            },
            "type": "array"
          },
          "total_order_count": {
            "type": "integer"
          },
          "total_sales_by_currency": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.SalesByCurrency"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SeriesResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Series"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SeriesResponseList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Series"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SetMediaFolderRequest": {
        "properties": {
          "folder_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SetNewUserPassword": {
        "properties": {
          "new_password": {
            "type": "string"
          }
        },
        "required": [
          "new_password"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.SetProductCollection": {
        "properties": {
          "order": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SetProductCollectionsRequest": {
        "properties": {
          "collection_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SetVariantGroupImagesPayload": {
        "properties": {
          "images": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.VariantGroupImageInput"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SetVariantGroupVideosPayload": {
        "properties": {
          "video_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 0,
            "type": "array"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.ShippingAttributesRequest": {
        "properties": {
          "attributes": {
            "description": "max 10 attributes, each max 40 characters",
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "type": "array"
          }
        },
        "required": [
          "attributes"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.SmartListingProductsResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ListingProductVariant"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SmartListingRequest": {
        "properties": {
          "rules": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.ListingRuleRequest"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "rules",
          "slug"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.SmartListingResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SmartListing"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.SmartListingsResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SmartListing"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.StaticListingRequest": {
        "properties": {
          "slug": {
            "type": "string"
          },
          "variant_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "slug",
          "variant_ids"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.StaticListingResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.StaticListing"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.StaticListingsResponse": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.StaticListing"
            },
            "type": "array"
          },
          "details": {
            "description": "Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "success": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.TranslationDTO": {
        "properties": {
          "field_type": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.TranslationFieldType"
          },
          "id": {
            "type": "string"
          },
          "language_code": {
            "type": "string"
          },
          "parent_ref": {
            "type": "string"
          },
          "parent_type": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.TranslationType"
          },
          "translation": {
            "type": "string"
          }
        },
        "required": [
          "field_type",
          "language_code",
          "parent_ref",
          "parent_type",
          "translation"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateAttributeTemplatePayload": {
        "properties": {
          "fields": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.InputAttributeField"
            },
            "type": "array"
          },
          "filterable": {
            "type": "boolean"
          },
          "key": {
            "description": "Key of the attribute",
            "type": "string"
          },
          "name": {
            "description": "Name of the attribute",
            "type": "string"
          },
          "resources": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "translatable": {
            "type": "boolean"
          },
          "type": {
            "description": "Name of the attribute",
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateBundlePayload": {
        "properties": {
          "discount_percentage": {
            "type": "integer"
          },
          "discount_type": {
            "type": "string"
          },
          "discounts": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BundleGroupDiscount"
            },
            "type": "array"
          },
          "exclude_discounted_price": {
            "description": "If products with discounts should be excluded from the bundle",
            "type": "boolean"
          },
          "exclude_full_price": {
            "description": "If products with no discounts should be excluded from the bundle",
            "type": "boolean"
          },
          "items": {
            "description": "Ensure at least one element is present",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "quantity": {
            "type": "integer"
          },
          "tag_conditions": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionsReq"
          }
        },
        "required": [
          "discounts",
          "items"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateFolderRequest": {
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateImageMetadata": {
        "properties": {
          "alt": {
            "type": "string"
          },
          "attributes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "copyright": {
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "filename": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateOmniChannel": {
        "properties": {
          "relationships": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateProductBundlePayload": {
        "properties": {
          "discount_percentage": {
            "description": "Used if discount_type is relative. This will apply to all markets it's added to",
            "maximum": 100,
            "minimum": 0,
            "type": "integer"
          },
          "discount_type": {
            "enum": [
              "relative",
              "fixed"
            ],
            "type": "string"
          },
          "discounts": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.BundleGroupDiscount"
            },
            "type": "array"
          },
          "status": {
            "description": "Status of the bundle",
            "enum": [
              "active",
              "draft",
              "inactive"
            ],
            "type": "string"
          }
        },
        "required": [
          "discounts"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateProductDraftPayload": {
        "properties": {
          "changeset": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductDraftChangeset"
          },
          "publish_at": {
            "type": "string"
          }
        },
        "required": [
          "changeset"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateShareableLinkRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "expires_at": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateTagPayload": {
        "properties": {
          "attributes_keys": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "filterable": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "new_key": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "archived",
              "draft"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateTranslationBody": {
        "properties": {
          "create_slug": {
            "description": "if this is true and with the fieldType: name, it will generate a slug. Only available to products as of now.",
            "type": "boolean"
          },
          "field_type": {
            "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.TranslationFieldType"
          },
          "language_code": {
            "description": "Locale code like \"en\" or \"en-gb\". The locale also needs to be configured and supported by the app.",
            "type": "string"
          },
          "parent_ref": {
            "type": "string"
          },
          "parent_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_database.TranslationType"
              }
            ],
            "enum": [
              "product",
              "product_bundle",
              "product_variant",
              "image",
              "attribute",
              "attribute_value",
              "category",
              "tag",
              "collection",
              "file",
              "bundle_group",
              "video",
              "brand",
              "channel_content"
            ]
          },
          "translation": {
            "type": "string"
          }
        },
        "required": [
          "field_type",
          "language_code",
          "parent_ref",
          "translation"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.UpdateVariantGroupPayload": {
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.UploadVideoUrl": {
        "properties": {
          "content_type": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "filename": {
            "type": "string"
          },
          "size_bytes": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "video_variants": {
            "items": {
              "$ref": "#/components/schemas/internal_pkg_webserver_v1.VideoVariant"
            },
            "type": "array"
          }
        },
        "required": [
          "content_type",
          "filename",
          "size_bytes",
          "title"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.VariantGroupImageInput": {
        "properties": {
          "image_id": {
            "type": "string"
          },
          "priority": {
            "type": "integer"
          }
        },
        "required": [
          "image_id"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.VariantStockDiff": {
        "properties": {
          "delta": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "internal_pkg_webserver_v1.VideoVariant": {
        "properties": {
          "format": {
            "type": "string"
          },
          "height": {
            "type": "integer"
          },
          "width": {
            "type": "integer"
          }
        },
        "required": [
          "format",
          "height",
          "width"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.WarehouseAddress": {
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "description": "Country value needs to follow ISO3166_1_alpha2, which means we want a country value written in alpha-2 two-letter country codes, Example: SE or FI",
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "street_address": {
            "type": "string"
          }
        },
        "required": [
          "country"
        ],
        "type": "object"
      },
      "internal_pkg_webserver_v1.WarehouseWithMarkets": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/internal_pkg_webserver_v1.WarehouseAddress"
          },
          "app_id": {
            "type": "string"
          },
          "available_online": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "markets": {
            "items": {
              "$ref": "#/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  }
}
