{
  "openapi": "3.0.0",
  "paths": {
    "/auth/login": {
      "post": {
        "operationId": "AuthController_login",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCredentialsDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "tags": ["Auth"]
      }
    },
    "/auth/users": {
      "post": {
        "operationId": "AuthController_createAdmin",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCredentialsDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "tags": ["Auth"]
      }
    },
    "/auth/logout": {
      "post": {
        "operationId": "AuthController_logout",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          }
        },
        "tags": ["Auth"]
      }
    },
    "/auth/me": {
      "get": {
        "operationId": "AuthController_getProfile",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["Auth"]
      }
    },
    "/categories": {
      "get": {
        "operationId": "CategoriesController_findAllPublic",
        "parameters": [
          {
            "name": "page",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedCategoryResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Categories"]
      }
    },
    "/categories/{id}": {
      "get": {
        "operationId": "CategoriesController_findOnePublic",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Categories"]
      }
    },
    "/admin/categories": {
      "get": {
        "operationId": "AdminCategoriesController_findAll",
        "parameters": [
          {
            "name": "page",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedCategoryResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminCategories"]
      },
      "post": {
        "operationId": "AdminCategoriesController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCategoryDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminCategories"]
      }
    },
    "/admin/categories/{id}": {
      "get": {
        "operationId": "AdminCategoriesController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminCategories"]
      },
      "put": {
        "operationId": "AdminCategoriesController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCategoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["AdminCategories"]
      },
      "delete": {
        "operationId": "AdminCategoriesController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["AdminCategories"]
      }
    },
    "/products": {
      "get": {
        "operationId": "ProductsController_findAllPublic",
        "parameters": [
          {
            "name": "page",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "search by product name or nameAr",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "required": false,
            "in": "query",
            "description": "Sort options: best-seller, price-asc, price-desc, discount-asc, discount-desc",
            "schema": {
              "example": "discount-desc",
              "type": "string"
            }
          },
          {
            "name": "hideSoldOut",
            "required": false,
            "in": "query",
            "description": "hide sold out products",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedProductResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Products"]
      }
    },
    "/products/{id}": {
      "get": {
        "operationId": "ProductsController_findOnePublic",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Products"]
      }
    },
    "/admin/products": {
      "get": {
        "operationId": "AdminProductsController_findAll",
        "parameters": [
          {
            "name": "page",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "search by product name or nameAr",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hideSoldOut",
            "required": false,
            "in": "query",
            "description": "hide sold out products",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "required": false,
            "in": "query",
            "description": "Sort options: best-seller, price-asc, price-desc, discount-asc, discount-desc",
            "schema": {
              "example": "best-seller",
              "type": "string"
            }
          },
          {
            "name": "isActive",
            "required": false,
            "in": "query",
            "description": "filter by active status",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedProductResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminProducts"]
      },
      "post": {
        "operationId": "AdminProductsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminProducts"]
      }
    },
    "/admin/products/{id}": {
      "put": {
        "operationId": "AdminProductsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminProducts"]
      },
      "delete": {
        "operationId": "AdminProductsController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminProducts"]
      }
    },
    "/orders": {
      "post": {
        "operationId": "OrdersController_createPublic",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Orders"]
      }
    },
    "/admin/orders": {
      "get": {
        "operationId": "AdminOrdersController_findAll",
        "parameters": [
          {
            "name": "page",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedOrderResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminOrders"]
      }
    },
    "/admin/orders/release-abandoned-inventory": {
      "post": {
        "operationId": "AdminOrdersController_releaseAbandonedInventory",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Releases inventory for abandoned pending orders"
          }
        },
        "tags": ["AdminOrders"]
      }
    },
    "/payments/methods": {
      "get": {
        "operationId": "PaymentsController_getPaymentMethods",
        "parameters": [
          {
            "name": "amount",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["Payments"]
      }
    },
    "/payments/webhook": {
      "post": {
        "operationId": "PaymentsController_handleWebhook",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["Payments"]
      }
    },
    "/payments/callback": {
      "get": {
        "operationId": "PaymentsController_paymentSuccess",
        "parameters": [
          {
            "name": "paymentId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["Payments"]
      }
    },
    "/payments/error": {
      "get": {
        "operationId": "PaymentsController_paymentError",
        "parameters": [
          {
            "name": "paymentId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["Payments"]
      }
    },
    "/admin/coupons": {
      "post": {
        "operationId": "CouponsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCouponDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CouponResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminCoupons"]
      },
      "get": {
        "operationId": "CouponsController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CouponResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": ["AdminCoupons"]
      }
    },
    "/admin/coupons/{id}": {
      "get": {
        "operationId": "CouponsController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CouponResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminCoupons"]
      },
      "put": {
        "operationId": "CouponsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCouponDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CouponResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminCoupons"]
      },
      "delete": {
        "operationId": "CouponsController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CouponResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminCoupons"]
      }
    },
    "/admin/variants": {
      "post": {
        "operationId": "VariantsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVariantDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VariantResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminVariants"]
      }
    },
    "/admin/variants/{id}": {
      "put": {
        "operationId": "VariantsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVariantDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VariantResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminVariants"]
      },
      "delete": {
        "operationId": "VariantsController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VariantResponseDto"
                }
              }
            }
          }
        },
        "tags": ["AdminVariants"]
      }
    },
    "/home": {
      "get": {
        "operationId": "StorefrontHomeController_getHome",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorefrontHomeResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Storefront Home"]
      }
    },
    "/admin/home-page-sections": {
      "get": {
        "operationId": "AdminHomePageSectionsController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HomePageSectionResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": ["Admin Home Page Sections"]
      },
      "post": {
        "operationId": "AdminHomePageSectionsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateHomePageSectionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HomePageSectionResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Admin Home Page Sections"]
      }
    },
    "/admin/home-page-sections/{id}": {
      "put": {
        "operationId": "AdminHomePageSectionsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateHomePageSectionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HomePageSectionResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Admin Home Page Sections"]
      },
      "delete": {
        "operationId": "AdminHomePageSectionsController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HomePageSectionResponseDto"
                }
              }
            }
          }
        },
        "tags": ["Admin Home Page Sections"]
      }
    },
    "/admin/assets/upload": {
      "post": {
        "operationId": "AssetsController_uploadFiles",
        "parameters": [],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetResponseDto"
                  }
                }
              }
            }
          }
        },
        "tags": ["AdminAssets"]
      }
    },
    "/": {
      "get": {
        "operationId": "HealthController_mainPage",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["Health"]
      }
    },
    "/health": {
      "get": {
        "operationId": "HealthController_status",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["Health"]
      }
    },
    "/admin/dashboard/stats": {
      "get": {
        "operationId": "DashboardController_getStats",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get dashboard statistics (products, orders, assets, revenue)",
        "tags": ["Dashboard"]
      }
    },
    "/static-pages": {
      "get": {
        "operationId": "StaticPagesController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Return all static pages.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StaticPageResponseDto"
                  }
                }
              }
            }
          }
        },
        "summary": "Get all static pages",
        "tags": ["Static Pages"]
      }
    },
    "/static-pages/{key}": {
      "get": {
        "operationId": "StaticPagesController_findOne",
        "parameters": [
          {
            "name": "key",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return the static page.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StaticPageResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "Static page not found."
          }
        },
        "summary": "Get a static page by key (e.g., ABOUT_US)",
        "tags": ["Static Pages"]
      },
      "put": {
        "operationId": "StaticPagesController_update",
        "parameters": [
          {
            "name": "key",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStaticPageDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The static page has been successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StaticPageResponseDto"
                }
              }
            }
          },
          "404": {
            "description": "Static page not found."
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update a static page by key",
        "tags": ["Static Pages"]
      }
    },
    "/global-configuration": {
      "get": {
        "operationId": "GlobalConfigurationController_getConfiguration",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Return the global configuration.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GlobalConfigurationResponseDto"
                }
              }
            }
          }
        },
        "summary": "Get global configuration settings",
        "tags": ["Global Configuration"]
      },
      "put": {
        "operationId": "GlobalConfigurationController_updateConfiguration",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGlobalConfigurationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The global configuration has been successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GlobalConfigurationResponseDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update global configuration settings",
        "tags": ["Global Configuration"]
      }
    },
    "/shipping-methods": {
      "get": {
        "operationId": "ShippingMethodsController_findAllPublic",
        "parameters": [
          {
            "name": "page",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["ShippingMethods"]
      }
    },
    "/shipping-methods/{id}": {
      "get": {
        "operationId": "ShippingMethodsController_findOnePublic",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["ShippingMethods"]
      }
    },
    "/admin/shipping-methods": {
      "get": {
        "operationId": "AdminShippingMethodsController_findAll",
        "parameters": [
          {
            "name": "page",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isActive",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["AdminShippingMethods"]
      },
      "post": {
        "operationId": "AdminShippingMethodsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateShippingMethodDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "tags": ["AdminShippingMethods"]
      }
    },
    "/admin/shipping-methods/{id}": {
      "get": {
        "operationId": "AdminShippingMethodsController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["AdminShippingMethods"]
      },
      "put": {
        "operationId": "AdminShippingMethodsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateShippingMethodDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": ["AdminShippingMethods"]
      }
    }
  },
  "info": {
    "title": "plateau APIs",
    "description": "",
    "version": "1.0.0",
    "contact": {}
  },
  "tags": [],
  "servers": [],
  "components": {
    "schemas": {
      "AuthCredentialsDto": {
        "type": "object",
        "properties": {}
      },
      "CategoryImageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "categoryId": {
            "type": "number"
          },
          "assetId": {
            "type": "number"
          },
          "altText": {
            "type": "string"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": ["id", "categoryId", "assetId", "sortOrder"]
      },
      "CategoryResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "nameAr": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CategoryImageDto"
            }
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": ["id", "name", "createdAt", "updatedAt"]
      },
      "PaginatedCategoryResponseDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CategoryResponseDto"
            }
          },
          "meta": {
            "type": "object",
            "example": {
              "total": 10,
              "page": 1,
              "limit": 10,
              "lastPage": 1
            }
          }
        },
        "required": ["data", "meta"]
      },
      "CreateCategoryDto": {
        "type": "object",
        "properties": {}
      },
      "UpdateCategoryDto": {
        "type": "object",
        "properties": {}
      },
      "ProductImageDto": {
        "type": "object",
        "properties": {}
      },
      "VariantResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "productId": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "nameAr": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "compareAtPrice": {
            "type": "number"
          },
          "stockQuantity": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImageDto"
            }
          }
        },
        "required": [
          "id",
          "productId",
          "name",
          "price",
          "stockQuantity",
          "isActive"
        ]
      },
      "ProductResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "nameAr": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "descriptionAr": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CategoryResponseDto"
            }
          },
          "attributes": {
            "type": "object"
          },
          "salesCount": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean"
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VariantResponseDto"
            }
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImageDto"
            }
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "salesCount",
          "isActive",
          "variants",
          "images",
          "createdAt",
          "updatedAt"
        ]
      },
      "PaginatedProductResponseDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductResponseDto"
            }
          },
          "meta": {
            "type": "object",
            "example": {
              "total": 10,
              "page": 1,
              "limit": 10,
              "lastPage": 1
            }
          }
        },
        "required": ["data", "meta"]
      },
      "CreateProductDto": {
        "type": "object",
        "properties": {}
      },
      "UpdateProductDto": {
        "type": "object",
        "properties": {}
      },
      "CreateOrderDto": {
        "type": "object",
        "properties": {}
      },
      "LineItemResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "orderId": {
            "type": "number"
          },
          "variantId": {
            "type": "number"
          },
          "variantName": {
            "type": "string"
          },
          "variantNameAr": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "productNameAr": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "price": {
            "type": "number"
          },
          "note": {
            "type": "string"
          }
        },
        "required": ["id", "orderId", "variantId", "quantity", "price"]
      },
      "OrderResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "invoiceId": {
            "type": "string"
          },
          "subtotalAmount": {
            "type": "number"
          },
          "shippingCost": {
            "type": "number"
          },
          "totalAmount": {
            "type": "number"
          },
          "customerName": {
            "type": "string"
          },
          "customerEmail": {
            "type": "string"
          },
          "customerPhone": {
            "type": "string"
          },
          "shippingAddress": {
            "type": "string"
          },
          "orderNote": {
            "type": "string"
          },
          "couponId": {
            "type": "number"
          },
          "shippingMethodId": {
            "type": "number"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemResponseDto"
            }
          }
        },
        "required": [
          "id",
          "status",
          "subtotalAmount",
          "shippingCost",
          "totalAmount",
          "customerName",
          "customerPhone",
          "shippingAddress",
          "shippingMethodId",
          "createdAt",
          "updatedAt",
          "lineItems"
        ]
      },
      "PaginatedOrderResponseDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderResponseDto"
            }
          },
          "meta": {
            "type": "object"
          }
        },
        "required": ["data", "meta"]
      },
      "CreateCouponDto": {
        "type": "object",
        "properties": {}
      },
      "CouponResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "code": {
            "type": "string"
          },
          "discountPercent": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean"
          },
          "maxUses": {
            "type": "number"
          }
        },
        "required": ["id", "code", "discountPercent", "isActive"]
      },
      "UpdateCouponDto": {
        "type": "object",
        "properties": {}
      },
      "CreateVariantDto": {
        "type": "object",
        "properties": {}
      },
      "UpdateVariantDto": {
        "type": "object",
        "properties": {}
      },
      "HomePageSectionResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "payload": {
            "type": "object"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "position",
          "type",
          "payload",
          "createdAt",
          "updatedAt"
        ]
      },
      "StorefrontHomeResponseDto": {
        "type": "object",
        "properties": {
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HomePageSectionResponseDto"
            }
          }
        },
        "required": ["sections"]
      },
      "CreateHomePageSectionDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "payload": {
            "type": "object"
          }
        },
        "required": ["position", "type", "payload"]
      },
      "UpdateHomePageSectionDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "payload": {
            "type": "object"
          }
        }
      },
      "AssetResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          }
        },
        "required": ["id"]
      },
      "StaticPageResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "key": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "titleAr": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "descriptionAr": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "key",
          "title",
          "description",
          "createdAt",
          "updatedAt"
        ]
      },
      "UpdateStaticPageDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "titleAr": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "descriptionAr": {
            "type": "string"
          }
        },
        "required": ["title", "description"]
      },
      "GlobalConfigurationResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "storeName": {
            "type": "string"
          },
          "baseCurrency": {
            "type": "string"
          },
          "adminPhone": {
            "type": "string"
          },
          "facebookLink": {
            "type": "string"
          },
          "instgramLink": {
            "type": "string"
          },
          "whatsAppLink": {
            "type": "string"
          },
          "xLink": {
            "type": "string"
          },
          "email": {
            "type": "string"
          }
        },
        "required": ["id", "storeName", "baseCurrency"]
      },
      "UpdateGlobalConfigurationDto": {
        "type": "object",
        "properties": {
          "storeName": {
            "type": "string"
          },
          "baseCurrency": {
            "type": "string"
          },
          "adminPhone": {
            "type": "string"
          },
          "facebookLink": {
            "type": "string"
          },
          "instgramLink": {
            "type": "string"
          },
          "whatsAppLink": {
            "type": "string"
          },
          "xLink": {
            "type": "string"
          },
          "email": {
            "type": "string"
          }
        }
      },
      "CreateShippingMethodDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "nameAr": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "descriptionAr": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean",
            "default": true
          }
        },
        "required": ["name", "price"]
      },
      "UpdateShippingMethodDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "nameAr": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "descriptionAr": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean",
            "default": true
          }
        }
      }
    }
  }
}
