{ "openapi": "3.0.0", "paths": { "/": { "get": { "operationId": "AppController_root", "parameters": [], "responses": { "200": { "description": "" } }, "tags": ["App"] } }, "/stores": { "post": { "operationId": "StoresController_create", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateStoreDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreResponseDto" } } } } }, "tags": ["Stores"] }, "get": { "operationId": "StoresController_findAllForAdmin", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/StoreWithOwnerResponseDto" } } } } } }, "tags": ["Stores"] } }, "/stores/by-slug/{slug}": { "get": { "operationId": "StoresController_findBySlug", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreResponseDto" } } } } }, "tags": ["Stores"] } }, "/stores/{storeId}": { "patch": { "operationId": "StoresController_update", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateStoreDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreResponseDto" } } } } }, "tags": ["Stores"] }, "delete": { "operationId": "StoresController_delete", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreResponseDto" } } } } }, "tags": ["Stores"] } }, "/stores/public": { "get": { "operationId": "StoresController_findAllPublic", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PublicStoreListingResponseDto" } } } } } }, "tags": ["Stores"] } }, "/stores/internal/sitemap/count": { "get": { "operationId": "StoresController_findPublicSitemapCount", "parameters": [ { "name": "X-Internal-Sitemap-Token", "in": "header", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SitemapStoreCountDto" } } } } }, "tags": ["Stores"] } }, "/stores/internal/sitemap": { "get": { "operationId": "StoresController_findPublicSitemapPage", "parameters": [ { "name": "offset", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "limit", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "X-Internal-Sitemap-Token", "in": "header", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SitemapStorePageDto" } } } } }, "tags": ["Stores"] } }, "/stores/collections/public": { "get": { "operationId": "StoresController_findCollectionsPublic", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PublicCollectionListingResponseDto" } } } } } }, "tags": ["Stores"] } }, "/stores/featured": { "get": { "operationId": "StoresController_findFeatured", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FeaturedStoreResponseDto" } } } } } }, "tags": ["Stores"] } }, "/stores/directory": { "get": { "operationId": "StoresController_findDirectory", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "page", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "q", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreDirectoryResponseDto" } } } } }, "tags": ["Stores"] } }, "/stores/{slug}/public": { "get": { "operationId": "StoresController_findPublic", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StorePublicDetailResponseDto" } } } } }, "tags": ["Stores"] } }, "/stores/{slug}/categories/public": { "get": { "operationId": "StoresController_findCategoriesPublic", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PublicCategoryResponseDto" } } } } } }, "tags": ["Stores"] } }, "/stores/{slug}/products/{productId}/public": { "get": { "operationId": "StoresController_findPublicProduct", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicProductPageResponseDto" } } } } }, "tags": ["Stores"] } }, "/stores/{storeId}/logo": { "post": { "operationId": "StoresController_uploadLogo", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreResponseDto" } } } } }, "tags": ["Stores"] } }, "/stores/{storeId}/content-images": { "post": { "operationId": "StoresController_uploadContentImage", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreContentImageResponseDto" } } } } }, "tags": ["Stores"] } }, "/me/stores": { "get": { "operationId": "MyStoresController_findMine", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/StoreResponseDto" } } } } } }, "tags": ["MyStores"] } }, "/stores/{storeId}/products": { "post": { "operationId": "ProductsController_create", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateProductDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductWithVariantsResponseDto" } } } } }, "tags": ["Products"] }, "get": { "operationId": "ProductsController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ProductDetailResponseDto" } } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}": { "get": { "operationId": "ProductsController_findOne", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductDetailResponseDto" } } } } }, "tags": ["Products"] }, "patch": { "operationId": "ProductsController_update", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "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": ["Products"] }, "delete": { "operationId": "ProductsController_softDelete", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductResponseDto" } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}/publish": { "patch": { "operationId": "ProductsController_publish", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductResponseDto" } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}/variants": { "post": { "operationId": "ProductsController_addVariant", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateVariantDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VariantResponseDto" } } } } }, "tags": ["Products"] }, "get": { "operationId": "ProductsController_listVariants", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VariantResponseDto" } } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}/variants/{variantId}": { "patch": { "operationId": "ProductsController_updateVariant", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "variantId", "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": ["Products"] }, "delete": { "operationId": "ProductsController_deleteVariant", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "variantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VariantResponseDto" } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}/images": { "post": { "operationId": "ProductsController_uploadImage", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "replace", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductResponseDto" } } } } }, "tags": ["Products"] }, "delete": { "operationId": "ProductsController_clearImages", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductResponseDto" } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}/images/{index}": { "delete": { "operationId": "ProductsController_removeImage", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "index", "required": true, "in": "path", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductResponseDto" } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}/images/reorder": { "patch": { "operationId": "ProductsController_reorderImages", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderImagesDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductResponseDto" } } } } }, "tags": ["Products"] } }, "/stores/{storeId}/products/{productId}/variants/{variantId}/images": { "post": { "operationId": "ProductsController_uploadVariantImage", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "variantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VariantResponseDto" } } } } }, "tags": ["Products"] } }, "/products/search": { "get": { "operationId": "ProductSearchController_search", "parameters": [ { "name": "sort", "required": false, "in": "query", "schema": { "enum": ["latest", "bestseller"], "type": "string" } }, { "name": "category", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "limit", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "page", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "q", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductSearchResultResponseDto" } } } } }, "tags": ["ProductSearch"] } }, "/stores/{storeId}/notifications": { "get": { "operationId": "NotificationsController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "read", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "archived", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NotificationResponseDto" } } } } } }, "tags": ["Notifications"] } }, "/stores/{storeId}/notifications/unread-count": { "get": { "operationId": "NotificationsController_unreadCount", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCountResponseDto" } } } } }, "tags": ["Notifications"] } }, "/stores/{storeId}/notifications/{notificationId}/read": { "patch": { "operationId": "NotificationsController_markRead", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "notificationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationResponseDto" } } } } }, "tags": ["Notifications"] } }, "/stores/{storeId}/notifications/read-all": { "post": { "operationId": "NotificationsController_markAllRead", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCountResponseDto" } } } } }, "tags": ["Notifications"] } }, "/stores/{storeId}/notifications/{notificationId}/archive": { "patch": { "operationId": "NotificationsController_archive", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "notificationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationResponseDto" } } } } }, "tags": ["Notifications"] } }, "/admin/users/store-counts": { "get": { "operationId": "UsersController_getStoreCounts", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserStoreCountResponseDto" } } } } } }, "tags": ["Users"] } }, "/health": { "get": { "operationId": "HealthController_check", "parameters": [], "responses": { "200": { "description": "" } }, "tags": ["Health"] } }, "/stores/{storeId}/orders": { "get": { "operationId": "OrderController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "fulfillmentStatus", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "paymentStatus", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OrderResponseDto" } } } } } }, "tags": ["Order"] } }, "/stores/{storeId}/orders/{orderId}": { "get": { "operationId": "OrderController_findOne", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderDetailResponseDto" } } } } }, "tags": ["Order"] } }, "/stores/{storeId}/orders/{orderId}/payments/{paymentId}/image": { "get": { "operationId": "OrderController_getPaymentImage", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "paymentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "image/jpeg": { "schema": { "type": "string", "format": "binary" } }, "image/png": { "schema": { "type": "string", "format": "binary" } } } } }, "tags": ["Order"] } }, "/stores/{storeId}/orders/{orderId}/payments": { "post": { "operationId": "OrderController_addPayment", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderDetailResponseDto" } } } } }, "tags": ["Order"] } }, "/stores/{storeId}/orders/{orderId}/payments/{paymentId}/review": { "patch": { "operationId": "OrderController_reviewPaymentProof", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "paymentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewPaymentDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderDetailResponseDto" } } } } }, "tags": ["Order"] } }, "/stores/{storeId}/orders/{orderId}/review": { "patch": { "operationId": "OrderController_review", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewPaymentDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderStatusResponseDto" } } } } }, "tags": ["Order"] } }, "/stores/{storeId}/orders/{orderId}/fulfillment": { "patch": { "operationId": "OrderController_advance", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdvanceFulfillmentDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderStatusResponseDto" } } } } }, "tags": ["Order"] } }, "/stores/{storeId}/orders/{orderId}/cancel": { "patch": { "operationId": "OrderController_cancel", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CancelOrderDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderStatusResponseDto" } } } } }, "tags": ["Order"] } }, "/stores/{slug}/checkout": { "post": { "operationId": "CheckoutController_create", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/CreateOrderDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CheckoutResultResponseDto" } } } } }, "tags": ["Checkout"] } }, "/stores/{slug}/account/confirm": { "get": { "operationId": "CustomerAccountController_confirm", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "token", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfirmAccountResponseDto" } } } } }, "tags": ["CustomerAccount"] } }, "/stores/{storeId}/customers": { "get": { "operationId": "CustomersController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CustomerListItemResponseDto" } } } } } }, "tags": ["Customers"] } }, "/stores/{storeId}/customers/{customerId}": { "get": { "operationId": "CustomersController_findOne", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "customerId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerDetailResponseDto" } } } } }, "tags": ["Customers"] } }, "/stores/{slug}/account/orders/{orderId}/payments": { "post": { "operationId": "CustomerOrderPaymentsController_submit", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderPaymentResponseDto" } } } } }, "tags": ["CustomerOrderPayments"] } }, "/stores/{slug}/account/orders/{orderId}/payments/{paymentId}/image": { "get": { "operationId": "CustomerOrderPaymentsController_getImage", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "paymentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "image/jpeg": { "schema": { "type": "string", "format": "binary" } }, "image/png": { "schema": { "type": "string", "format": "binary" } } } } }, "tags": ["CustomerOrderPayments"] } }, "/stores/{storeId}/payment-methods": { "get": { "operationId": "PaymentConfigController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "enabled", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentMethodConfigResponseDto" } } } } } }, "tags": ["PaymentConfig"] }, "post": { "operationId": "PaymentConfigController_upsert", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertPaymentMethodDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentMethodConfigResponseDto" } } } } }, "tags": ["PaymentConfig"] } }, "/stores/{storeId}/payment-methods/{method}/qr-image": { "post": { "operationId": "PaymentConfigController_uploadQrImage", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "method", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary" } }, "required": ["file"] } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentMethodConfigResponseDto" } } } } }, "tags": ["PaymentConfig"] } }, "/stores/{slug}/public/payment-methods": { "get": { "operationId": "PublicPaymentConfigController_findEnabled", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentMethodConfigResponseDto" } } } } } }, "tags": ["PublicPaymentConfig"] } }, "/stores/{storeId}/delivery-methods": { "get": { "operationId": "DeliveryConfigController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DeliveryMethodConfigResponseDto" } } } } } }, "tags": ["DeliveryConfig"] }, "post": { "operationId": "DeliveryConfigController_upsert", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertDeliveryMethodDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeliveryMethodConfigResponseDto" } } } } }, "tags": ["DeliveryConfig"] } }, "/stores/{storeId}/delivery-methods/{type}": { "delete": { "operationId": "DeliveryConfigController_remove", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "type", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeliveryMethodConfigResponseDto" } } } } }, "tags": ["DeliveryConfig"] } }, "/stores/{slug}/public/delivery-methods": { "get": { "operationId": "PublicDeliveryConfigController_findEnabled", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DeliveryMethodConfigResponseDto" } } } } } }, "tags": ["PublicDeliveryConfig"] } }, "/stores/{storeId}/pickup-points": { "get": { "operationId": "PickupPointsController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PickupPointResponseDto" } } } } } }, "tags": ["PickupPoints"] }, "post": { "operationId": "PickupPointsController_create", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePickupPointDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PickupPointResponseDto" } } } } }, "tags": ["PickupPoints"] } }, "/stores/{storeId}/pickup-points/{pointId}": { "patch": { "operationId": "PickupPointsController_update", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "pointId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePickupPointDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PickupPointResponseDto" } } } } }, "tags": ["PickupPoints"] }, "delete": { "operationId": "PickupPointsController_remove", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "pointId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PickupPointResponseDto" } } } } }, "tags": ["PickupPoints"] } }, "/stores/{slug}/public/pickup-points": { "get": { "operationId": "PublicPickupPointsController_findEnabled", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicPickupPointsResponseDto" } } } } }, "tags": ["PublicPickupPoints"] } }, "/contact": { "post": { "operationId": "ContactController_create", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInquiryDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InquiryResponseDto" } } } } }, "tags": ["Contact"] }, "get": { "operationId": "ContactController_findAll", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/InquiryResponseDto" } } } } } }, "tags": ["Contact"] } }, "/contact/{id}/review": { "patch": { "operationId": "ContactController_markReviewed", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InquiryResponseDto" } } } } }, "tags": ["Contact"] } }, "/stores/{storeId}/categories": { "post": { "operationId": "CategoriesController_create", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCategoryDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CategoryResponseDto" } } } } }, "tags": ["Categories"] }, "get": { "operationId": "CategoriesController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CategoryResponseDto" } } } } } }, "tags": ["Categories"] } }, "/stores/{storeId}/categories/{categoryId}": { "patch": { "operationId": "CategoriesController_update", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "categoryId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCategoryDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CategoryResponseDto" } } } } }, "tags": ["Categories"] }, "delete": { "operationId": "CategoriesController_delete", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "categoryId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CategoryResponseDto" } } } } }, "tags": ["Categories"] } }, "/stores/{storeId}/collections": { "post": { "operationId": "CollectionsController_create", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCollectionDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionResponseDto" } } } } }, "tags": ["Collections"] }, "get": { "operationId": "CollectionsController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CollectionWithProductsResponseDto" } } } } } }, "tags": ["Collections"] } }, "/stores/{storeId}/collections/{collectionId}": { "patch": { "operationId": "CollectionsController_update", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "collectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCollectionDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionResponseDto" } } } } }, "tags": ["Collections"] }, "delete": { "operationId": "CollectionsController_delete", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "collectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionResponseDto" } } } } }, "tags": ["Collections"] } }, "/stores/{storeId}/collections/{collectionId}/products": { "post": { "operationId": "CollectionsController_addProduct", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "collectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddCollectionProductDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionProductResponseDto" } } } } }, "tags": ["Collections"] } }, "/stores/{storeId}/collections/{collectionId}/products/{productId}": { "delete": { "operationId": "CollectionsController_removeProduct", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "collectionId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "productId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionProductResponseDto" } } } } }, "tags": ["Collections"] } }, "/stores/{storeId}/collections/{collectionId}/products/reorder": { "patch": { "operationId": "CollectionsController_reorderProducts", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "collectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderCollectionProductsDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CollectionProductResponseDto" } } } } } }, "tags": ["Collections"] } }, "/stores/{storeId}/sections": { "post": { "operationId": "StoreSectionsController_create", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateStoreSectionDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreSectionResponseDto" } } } } }, "tags": ["StoreSections"] }, "get": { "operationId": "StoreSectionsController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/StoreSectionResponseDto" } } } } } }, "tags": ["StoreSections"] } }, "/stores/{storeId}/sections/reorder": { "patch": { "operationId": "StoreSectionsController_reorder", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderStoreSectionsDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/StoreSectionResponseDto" } } } } } }, "tags": ["StoreSections"] } }, "/stores/{storeId}/sections/{sectionId}": { "patch": { "operationId": "StoreSectionsController_update", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "sectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateStoreSectionDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreSectionResponseDto" } } } } }, "tags": ["StoreSections"] }, "delete": { "operationId": "StoreSectionsController_delete", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "sectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoreSectionResponseDto" } } } } }, "tags": ["StoreSections"] } }, "/stores/{storeId}/stats/overview": { "get": { "operationId": "StatsController_overview", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatsOverviewResponseDto" } } } } }, "tags": ["Stats"] } }, "/stores/{storeId}/stats/analytics": { "get": { "operationId": "StatsController_analytics", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "range", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsResultResponseDto" } } } } }, "tags": ["Stats"] } }, "/stores/{storeId}/stats/payment-methods": { "get": { "operationId": "StatsController_paymentMethods", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "to", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "from", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentMethodsBreakdownResponseDto" } } } } }, "tags": ["Stats"] } }, "/stores/{storeId}/suggestions": { "get": { "operationId": "SuggestionsController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SuggestionResponseDto" } } } } } }, "tags": ["Suggestions"] } }, "/stores/{slug}/account/register": { "post": { "operationId": "CustomerAuthController_register", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterCustomerDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OkResponseDto" } } } } }, "tags": ["CustomerAuth"] } }, "/stores/{slug}/account/login": { "post": { "operationId": "CustomerAuthController_login", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginCustomerDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OkResponseDto" } } } } }, "tags": ["CustomerAuth"] } }, "/stores/{slug}/account/forgot-password": { "post": { "operationId": "CustomerAuthController_forgotPassword", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForgotPasswordDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OkResponseDto" } } } } }, "tags": ["CustomerAuth"] } }, "/stores/{slug}/account/change-password": { "post": { "operationId": "CustomerAuthController_changePassword", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChangeCustomerPasswordDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OkResponseDto" } } } } }, "tags": ["CustomerAuth"] } }, "/stores/{slug}/account/me": { "get": { "operationId": "CustomerAuthController_me", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerProfileResponseDto" } } } } }, "tags": ["CustomerAuth"] }, "patch": { "operationId": "CustomerAuthController_updateMe", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCustomerProfileDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCustomerProfileResponseDto" } } } } }, "tags": ["CustomerAuth"] } }, "/stores/{slug}/account/orders/{orderId}": { "get": { "operationId": "CustomerAuthController_orderDetail", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "orderId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderDetailResponseDto" } } } } }, "tags": ["CustomerAuth"] } }, "/stores/{slug}/account/logout": { "post": { "operationId": "CustomerAuthController_logout", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OkResponseDto" } } } } }, "tags": ["CustomerAuth"] } }, "/account/me": { "get": { "operationId": "GlobalAccountController_me", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GlobalAccountProfileResponseDto" } } } } }, "tags": ["GlobalAccount"] } }, "/account/orders": { "get": { "operationId": "GlobalAccountController_orders", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GlobalAccountOrderResponseDto" } } } } } }, "tags": ["GlobalAccount"] } }, "/stores/{slug}/restock-requests": { "post": { "operationId": "RestockController_create", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRestockRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestockRequestResultResponseDto" } } } } }, "tags": ["Restock"] } }, "/stores/{storeId}/restock-requests": { "get": { "operationId": "RestockController_list", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RestockRequestResponseDto" } } } } } }, "tags": ["Restock"] } }, "/stores/{storeId}/restock-requests/count": { "get": { "operationId": "RestockController_count", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestockCountResponseDto" } } } } }, "tags": ["Restock"] } }, "/stores/{storeId}/whatsapp-templates/{type}": { "get": { "operationId": "WhatsappTemplatesController_findOne", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "type", "required": true, "in": "path", "schema": { "enum": ["NEW_ORDER", "PAYMENT_REMINDER"], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/WhatsAppTemplateResponseDto" } ], "nullable": true } } } } }, "tags": ["WhatsappTemplates"] }, "put": { "operationId": "WhatsappTemplatesController_upsert", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "type", "required": true, "in": "path", "schema": { "enum": ["NEW_ORDER", "PAYMENT_REMINDER"], "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWhatsAppTemplateDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WhatsAppTemplateResponseDto" } } } } }, "tags": ["WhatsappTemplates"] } }, "/stores/{slug}/account/addresses": { "get": { "operationId": "AddressesController_findAll", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AddressResponseDto" } } } } } }, "tags": ["Addresses"] }, "post": { "operationId": "AddressesController_create", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAddressDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddressResponseDto" } } } } }, "tags": ["Addresses"] } }, "/stores/{slug}/account/addresses/{id}": { "patch": { "operationId": "AddressesController_update", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAddressDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddressResponseDto" } } } } }, "tags": ["Addresses"] }, "delete": { "operationId": "AddressesController_remove", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": ["Addresses"] } }, "/monitoring/webhook": { "post": { "operationId": "MonitoringController_webhook", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KumaWebhookDto" } } } }, "responses": { "201": { "description": "" } }, "tags": ["Monitoring"] } }, "/monitoring/incidents": { "get": { "operationId": "MonitoringController_findAll", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "page", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IncidentListResponseDto" } } } } }, "tags": ["Monitoring"] } }, "/admin/coupons": { "post": { "operationId": "CouponsController_createCoupon", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCouponDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CouponResponseDto" } } } } }, "tags": ["Coupons"] }, "get": { "operationId": "CouponsController_listCoupons", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CouponResponseDto" } } } } } }, "tags": ["Coupons"] } }, "/admin/coupons/{couponId}/redemptions": { "get": { "operationId": "CouponsController_getRedemptions", "parameters": [ { "name": "couponId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CouponRedemptionResponseDto" } } } } } }, "tags": ["Coupons"] } }, "/admin/coupons/{couponId}": { "patch": { "operationId": "CouponsController_updateCoupon", "parameters": [ { "name": "couponId", "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": ["Coupons"] }, "delete": { "operationId": "CouponsController_deleteCoupon", "parameters": [ { "name": "couponId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": ["Coupons"] } }, "/admin/coupons/{couponId}/status": { "patch": { "operationId": "CouponsController_toggleCouponStatus", "parameters": [ { "name": "couponId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CouponResponseDto" } } } } }, "tags": ["Coupons"] } }, "/admin/coupons/{couponId}/redemptions/{redemptionId}/unredeem": { "post": { "operationId": "CouponsController_unredeemCoupon", "parameters": [ { "name": "couponId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "redemptionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "tags": ["Coupons"] } }, "/coupons/redeem": { "post": { "operationId": "CouponsController_redeemCoupon", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RedeemCouponDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CouponRedemptionResponseDto" } } } } }, "tags": ["Coupons"] } }, "/stores/{storeId}/couriers": { "get": { "operationId": "CouriersController_findAll", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CourierResponseDto" } } } } } }, "tags": ["Couriers"] }, "post": { "operationId": "CouriersController_create", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCourierDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CourierResponseDto" } } } } }, "tags": ["Couriers"] } }, "/stores/{storeId}/couriers/bulk-save": { "post": { "operationId": "CouriersController_bulkSave", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkSaveCouriersBodyDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CourierResponseDto" } } } } } }, "tags": ["Couriers"] } }, "/stores/{storeId}/couriers/{courierId}": { "patch": { "operationId": "CouriersController_update", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "courierId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCourierDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CourierResponseDto" } } } } }, "tags": ["Couriers"] }, "delete": { "operationId": "CouriersController_remove", "parameters": [ { "name": "storeId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "courierId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CourierResponseDto" } } } } }, "tags": ["Couriers"] } }, "/stores/{slug}/public/couriers": { "get": { "operationId": "PublicCouriersController_findEnabled", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PublicCourierDto" } } } } } }, "tags": ["PublicCouriers"] } } }, "info": { "title": "Bias Market API", "description": "Bias Market — niche-first store builder API", "version": "1.0", "contact": {} }, "tags": [], "servers": [], "components": { "schemas": { "CreateStoreDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2 }, "slug": { "type": "string" }, "whatsappNumber": { "type": "string", "minLength": 6 }, "defaultCurrency": { "type": "string" }, "themeConfig": { "type": "object", "additionalProperties": true } }, "required": ["name", "slug", "whatsappNumber"] }, "StoreResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "locale": { "type": "string" }, "ownerId": { "type": "string" }, "themeConfig": { "type": "object", "additionalProperties": true }, "logoUrl": { "type": "string", "nullable": true }, "bio": { "type": "string", "nullable": true }, "aboutMarkdown": { "type": "string", "nullable": true }, "paymentInstructions": { "type": "string" }, "whatsappNumber": { "type": "string", "nullable": true }, "instagramUrl": { "type": "string", "nullable": true }, "facebookUrl": { "type": "string", "nullable": true }, "tiktokUrl": { "type": "string", "nullable": true }, "twitterUrl": { "type": "string", "nullable": true }, "defaultCurrency": { "type": "string" }, "holdWindowHours": { "type": "number" }, "lowStockThreshold": { "type": "number" }, "lowStockAlertsEnabled": { "type": "boolean" }, "isPublic": { "type": "boolean" }, "isDemo": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "name", "slug", "locale", "ownerId", "themeConfig", "logoUrl", "bio", "aboutMarkdown", "paymentInstructions", "whatsappNumber", "instagramUrl", "facebookUrl", "tiktokUrl", "twitterUrl", "defaultCurrency", "holdWindowHours", "lowStockThreshold", "lowStockAlertsEnabled", "isPublic", "isDemo", "createdAt" ] }, "StoreOwnerResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string", "nullable": true } }, "required": ["id", "email", "name"] }, "StoreWithOwnerResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "locale": { "type": "string" }, "ownerId": { "type": "string" }, "themeConfig": { "type": "object", "additionalProperties": true }, "logoUrl": { "type": "string", "nullable": true }, "bio": { "type": "string", "nullable": true }, "aboutMarkdown": { "type": "string", "nullable": true }, "paymentInstructions": { "type": "string" }, "whatsappNumber": { "type": "string", "nullable": true }, "instagramUrl": { "type": "string", "nullable": true }, "facebookUrl": { "type": "string", "nullable": true }, "tiktokUrl": { "type": "string", "nullable": true }, "twitterUrl": { "type": "string", "nullable": true }, "defaultCurrency": { "type": "string" }, "holdWindowHours": { "type": "number" }, "lowStockThreshold": { "type": "number" }, "lowStockAlertsEnabled": { "type": "boolean" }, "isPublic": { "type": "boolean" }, "isDemo": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "owner": { "$ref": "#/components/schemas/StoreOwnerResponseDto" } }, "required": [ "id", "name", "slug", "locale", "ownerId", "themeConfig", "logoUrl", "bio", "aboutMarkdown", "paymentInstructions", "whatsappNumber", "instagramUrl", "facebookUrl", "tiktokUrl", "twitterUrl", "defaultCurrency", "holdWindowHours", "lowStockThreshold", "lowStockAlertsEnabled", "isPublic", "isDemo", "createdAt", "owner" ] }, "UpdateStoreDto": { "type": "object", "properties": { "name": { "type": "string" }, "locale": { "type": "string" }, "whatsappNumber": { "type": "string" }, "instagramUrl": { "type": "string", "nullable": true, "format": "uri" }, "facebookUrl": { "type": "string", "nullable": true, "format": "uri" }, "tiktokUrl": { "type": "string", "nullable": true, "format": "uri" }, "twitterUrl": { "type": "string", "nullable": true, "format": "uri" }, "bio": { "type": "string", "maxLength": 280 }, "aboutMarkdown": { "type": "string", "maxLength": 4000 }, "paymentInstructions": { "type": "string" }, "defaultCurrency": { "type": "string" }, "themeConfig": { "type": "object", "additionalProperties": true }, "lowStockAlertsEnabled": { "type": "boolean" }, "lowStockThreshold": { "type": "number", "minimum": 0 }, "isPublic": { "type": "boolean" } } }, "PublicStoreListingResponseDto": { "type": "object", "properties": { "slug": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": ["slug", "createdAt"] }, "SitemapStoreCountDto": { "type": "object", "properties": { "total": { "type": "number" } }, "required": ["total"] }, "SitemapStoreItemDto": { "type": "object", "properties": { "slug": { "type": "string" }, "lastModified": { "type": "string" } }, "required": ["slug", "lastModified"] }, "SitemapStorePageDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/SitemapStoreItemDto" } }, "total": { "type": "number" } }, "required": ["items", "total"] }, "PublicCollectionListingResponseDto": { "type": "object", "properties": { "storeSlug": { "type": "string" }, "collectionSlug": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": ["storeSlug", "collectionSlug", "createdAt"] }, "FeaturedStoreResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "logoUrl": { "type": "string", "nullable": true }, "revenue": { "type": "number" }, "orderCount": { "type": "number" } }, "required": ["id", "name", "slug", "logoUrl", "revenue", "orderCount"] }, "DirectoryStoreItemResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "logoUrl": { "type": "string", "nullable": true } }, "required": ["id", "name", "slug", "logoUrl"] }, "StoreDirectoryResponseDto": { "type": "object", "properties": { "stores": { "type": "array", "items": { "$ref": "#/components/schemas/DirectoryStoreItemResponseDto" } }, "total": { "type": "number" }, "page": { "type": "number" }, "limit": { "type": "number" } }, "required": ["stores", "total", "page", "limit"] }, "PublicProductVariantResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "productId": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "stock": { "type": "number", "nullable": true }, "reserved": { "type": "number" }, "priceOverride": { "type": "string", "nullable": true }, "imageOverride": { "type": "string", "nullable": true }, "attributes": { "type": "object", "additionalProperties": true } }, "required": [ "id", "productId", "storeId", "name", "stock", "reserved", "priceOverride", "imageOverride", "attributes" ] }, "PublicProductWithVariantsResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "string" }, "currency": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string", "nullable": true, "format": "date-time" }, "status": { "enum": ["DRAFT", "PUBLISHED"], "type": "string" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "deletedAt": { "type": "string", "nullable": true, "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "variants": { "type": "array", "items": { "$ref": "#/components/schemas/PublicProductVariantResponseDto" } } }, "required": [ "id", "storeId", "name", "description", "price", "currency", "images", "availableUntil", "status", "soldOut", "discontinued", "deletedAt", "createdAt", "variants" ] }, "SectionCollectionProductResponseDto": { "type": "object", "properties": { "collectionId": { "type": "string" }, "productId": { "type": "string" }, "position": { "type": "number" }, "product": { "$ref": "#/components/schemas/PublicProductWithVariantsResponseDto" } }, "required": ["collectionId", "productId", "position", "product"] }, "SectionCollectionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "description": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "products": { "type": "array", "items": { "$ref": "#/components/schemas/SectionCollectionProductResponseDto" } } }, "required": [ "id", "storeId", "name", "slug", "description", "createdAt", "products" ] }, "StoreSectionWithCollectionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "type": { "enum": ["COLLECTION", "BANNER", "TEXT_BLOCK"], "type": "string" }, "collectionId": { "type": "string", "nullable": true }, "content": { "type": "object", "additionalProperties": true }, "position": { "type": "number" }, "hidden": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "collection": { "nullable": true, "type": "object", "allOf": [ { "$ref": "#/components/schemas/SectionCollectionResponseDto" } ] } }, "required": [ "id", "storeId", "type", "collectionId", "content", "position", "hidden", "createdAt", "collection" ] }, "StorePublicDetailResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "locale": { "type": "string" }, "ownerId": { "type": "string" }, "themeConfig": { "type": "object", "additionalProperties": true }, "logoUrl": { "type": "string", "nullable": true }, "bio": { "type": "string", "nullable": true }, "aboutMarkdown": { "type": "string", "nullable": true }, "paymentInstructions": { "type": "string" }, "whatsappNumber": { "type": "string", "nullable": true }, "instagramUrl": { "type": "string", "nullable": true }, "facebookUrl": { "type": "string", "nullable": true }, "tiktokUrl": { "type": "string", "nullable": true }, "twitterUrl": { "type": "string", "nullable": true }, "defaultCurrency": { "type": "string" }, "holdWindowHours": { "type": "number" }, "lowStockThreshold": { "type": "number" }, "lowStockAlertsEnabled": { "type": "boolean" }, "isPublic": { "type": "boolean" }, "isDemo": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "sections": { "type": "array", "items": { "$ref": "#/components/schemas/StoreSectionWithCollectionResponseDto" } }, "indexable": { "type": "boolean" } }, "required": [ "id", "name", "slug", "locale", "ownerId", "themeConfig", "logoUrl", "bio", "aboutMarkdown", "paymentInstructions", "whatsappNumber", "instagramUrl", "facebookUrl", "tiktokUrl", "twitterUrl", "defaultCurrency", "holdWindowHours", "lowStockThreshold", "lowStockAlertsEnabled", "isPublic", "isDemo", "createdAt", "sections", "indexable" ] }, "PublicCategoryResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "parentId": { "type": "string", "nullable": true } }, "required": ["id", "name", "parentId"] }, "PublicProductStoreResponseDto": { "type": "object", "properties": { "name": { "type": "string" }, "slug": { "type": "string" }, "logoUrl": { "type": "string", "nullable": true } }, "required": ["name", "slug", "logoUrl"] }, "PublicProductPageResponseDto": { "type": "object", "properties": { "store": { "$ref": "#/components/schemas/PublicProductStoreResponseDto" }, "product": { "$ref": "#/components/schemas/PublicProductWithVariantsResponseDto" } }, "required": ["store", "product"] }, "StoreContentImageResponseDto": { "type": "object", "properties": { "url": { "type": "string" } }, "required": ["url"] }, "CreateVariantDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "stock": { "type": "number" }, "priceOverride": { "type": "number" }, "imageOverride": { "type": "string" }, "attributes": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["name"] }, "CreateProductDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2 }, "categoryIds": { "type": "array", "items": { "type": "string" } }, "description": { "type": "string" }, "price": { "type": "number" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string" }, "currency": { "type": "string" }, "stock": { "type": "number", "minimum": 0 }, "variants": { "type": "array", "items": { "$ref": "#/components/schemas/CreateVariantDto" } } }, "required": ["name", "price"] }, "VariantResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "productId": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "stock": { "type": "number", "nullable": true }, "reserved": { "type": "number" }, "priceOverride": { "type": "string", "nullable": true }, "imageOverride": { "type": "string", "nullable": true }, "attributes": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "id", "productId", "storeId", "name", "stock", "reserved", "priceOverride", "imageOverride", "attributes" ] }, "ProductWithVariantsResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "string" }, "currency": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string", "nullable": true, "format": "date-time" }, "status": { "enum": ["DRAFT", "PUBLISHED"], "type": "string" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "deletedAt": { "type": "string", "nullable": true, "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "variants": { "type": "array", "items": { "$ref": "#/components/schemas/VariantResponseDto" } } }, "required": [ "id", "storeId", "name", "description", "price", "currency", "images", "availableUntil", "status", "soldOut", "discontinued", "deletedAt", "createdAt", "variants" ] }, "CategoryInProductResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": ["id", "name"] }, "ProductCategoryResponseDto": { "type": "object", "properties": { "productId": { "type": "string" }, "categoryId": { "type": "string" }, "category": { "$ref": "#/components/schemas/CategoryInProductResponseDto" } }, "required": ["productId", "categoryId", "category"] }, "ProductDetailResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "string" }, "currency": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string", "nullable": true, "format": "date-time" }, "status": { "enum": ["DRAFT", "PUBLISHED"], "type": "string" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "deletedAt": { "type": "string", "nullable": true, "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "variants": { "type": "array", "items": { "$ref": "#/components/schemas/VariantResponseDto" } }, "categories": { "type": "array", "items": { "$ref": "#/components/schemas/ProductCategoryResponseDto" } }, "soldUnits": { "type": "number" }, "availableStock": { "type": "number", "nullable": true } }, "required": [ "id", "storeId", "name", "description", "price", "currency", "images", "availableUntil", "status", "soldOut", "discontinued", "deletedAt", "createdAt", "variants", "categories", "soldUnits", "availableStock" ] }, "UpdateProductDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2 }, "categoryIds": { "type": "array", "items": { "type": "string" } }, "description": { "type": "string" }, "price": { "type": "number" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string" }, "currency": { "type": "string" } } }, "ProductResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "string" }, "currency": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string", "nullable": true, "format": "date-time" }, "status": { "enum": ["DRAFT", "PUBLISHED"], "type": "string" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "deletedAt": { "type": "string", "nullable": true, "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "name", "description", "price", "currency", "images", "availableUntil", "status", "soldOut", "discontinued", "deletedAt", "createdAt" ] }, "UpdateVariantDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "stock": { "type": "number", "nullable": true }, "priceOverride": { "type": "number", "nullable": true }, "imageOverride": { "type": "string", "nullable": true }, "attributes": { "type": "object", "additionalProperties": { "type": "string" } } } }, "ReorderImagesDto": { "type": "object", "properties": { "images": { "minItems": 1, "maxItems": 6, "description": "Exact image URLs in the desired order", "type": "array", "items": { "type": "string" } } }, "required": ["images"] }, "SearchProductStoreResponseDto": { "type": "object", "properties": { "name": { "type": "string" }, "slug": { "type": "string" } }, "required": ["name", "slug"] }, "SearchProductResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "price": { "type": "string" }, "currency": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } }, "store": { "$ref": "#/components/schemas/SearchProductStoreResponseDto" } }, "required": ["id", "name", "price", "currency", "images", "store"] }, "ProductSearchResultResponseDto": { "type": "object", "properties": { "products": { "type": "array", "items": { "$ref": "#/components/schemas/SearchProductResponseDto" } }, "total": { "type": "number" }, "page": { "type": "number" }, "limit": { "type": "number" } }, "required": ["products", "total", "page", "limit"] }, "NotificationResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "type": { "enum": ["LOW_STOCK", "OUT_OF_STOCK", "PAYMENT_PROOF_SUBMITTED"], "type": "string" }, "entityType": { "type": "string" }, "entityId": { "type": "string" }, "title": { "type": "string" }, "body": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": true }, "read": { "type": "boolean" }, "readAt": { "type": "string", "nullable": true, "format": "date-time" }, "archived": { "type": "boolean" }, "archivedAt": { "type": "string", "nullable": true, "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "type", "entityType", "entityId", "title", "body", "metadata", "read", "readAt", "archived", "archivedAt", "createdAt" ] }, "NotificationCountResponseDto": { "type": "object", "properties": { "count": { "type": "number" } }, "required": ["count"] }, "UserStoreCountResponseDto": { "type": "object", "properties": { "userId": { "type": "string" }, "storeCount": { "type": "number" } }, "required": ["userId", "storeCount"] }, "OrderProductResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "string" }, "currency": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string", "nullable": true, "format": "date-time" }, "status": { "enum": ["DRAFT", "PUBLISHED"], "type": "string" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "deletedAt": { "type": "string", "nullable": true, "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "name", "description", "price", "currency", "images", "availableUntil", "status", "soldOut", "discontinued", "deletedAt", "createdAt" ] }, "OrderVariantResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "productId": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "stock": { "type": "number", "nullable": true }, "reserved": { "type": "number" }, "priceOverride": { "type": "string", "nullable": true }, "imageOverride": { "type": "string", "nullable": true }, "attributes": { "type": "object", "additionalProperties": true } }, "required": [ "id", "productId", "storeId", "name", "stock", "reserved", "priceOverride", "imageOverride", "attributes" ] }, "OrderItemResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "orderId": { "type": "string" }, "storeId": { "type": "string" }, "productId": { "type": "string" }, "variantId": { "type": "string", "nullable": true }, "quantity": { "type": "number" }, "unitPriceAtPurchase": { "type": "string" }, "currency": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "product": { "$ref": "#/components/schemas/OrderProductResponseDto" }, "variant": { "nullable": true, "type": "object", "allOf": [ { "$ref": "#/components/schemas/OrderVariantResponseDto" } ] } }, "required": [ "id", "orderId", "storeId", "productId", "variantId", "quantity", "unitPriceAtPurchase", "currency", "createdAt", "product", "variant" ] }, "OrderPaymentResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "orderId": { "type": "string" }, "storeId": { "type": "string" }, "amount": { "type": "string" }, "currency": { "type": "string" }, "method": { "nullable": true, "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"], "type": "string" }, "note": { "type": "string", "nullable": true }, "imageUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "source": { "enum": ["SELLER_RECORDED", "BUYER_SUBMITTED"], "type": "string" }, "reviewStatus": { "enum": ["N_A", "PENDING_REVIEW", "APPROVED", "REJECTED"], "type": "string" }, "reviewedAt": { "type": "string", "nullable": true, "format": "date-time" }, "reviewedBy": { "type": "string", "nullable": true } }, "required": [ "id", "orderId", "storeId", "amount", "currency", "method", "note", "imageUrl", "createdAt", "source", "reviewStatus", "reviewedAt", "reviewedBy" ] }, "OrderResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "customerId": { "type": "string", "nullable": true }, "buyerAccountId": { "type": "string", "nullable": true }, "customerEmail": { "type": "string", "nullable": true }, "customerPhone": { "type": "string" }, "customerName": { "type": "string", "nullable": true }, "deliveryMethodType": { "enum": ["PICKUP", "COURIER"], "type": "string" }, "deliveryDetails": { "type": "object", "additionalProperties": true, "nullable": true }, "pickupPointId": { "type": "string", "nullable": true }, "pickupDate": { "type": "string", "nullable": true, "format": "date-time" }, "courierName": { "type": "string", "nullable": true }, "courierModality": { "nullable": true, "enum": ["AGENCY", "HOME"], "type": "string" }, "paymentMethod": { "nullable": true, "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"], "type": "string" }, "paymentStatus": { "enum": [ "PENDING_PAYMENT", "PARTIALLY_PAID", "PAYMENT_SUBMITTED", "VERIFIED", "REJECTED", "CANCELLED" ], "type": "string" }, "paymentRejectionReason": { "type": "string", "nullable": true }, "fulfillmentStatus": { "enum": ["ORDERING", "IN_TRANSIT", "READY", "COMPLETED"], "type": "string" }, "status": { "enum": ["ACTIVE", "CANCELLED"], "type": "string" }, "cancellationResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "cancellationReason": { "type": "string", "nullable": true }, "retainedAmount": { "type": "string", "nullable": true }, "releasedAmount": { "type": "string", "nullable": true }, "releasedResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "totalAmount": { "type": "string" }, "requiredAmount": { "type": "string" }, "currency": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "paidAmount": { "type": "number" }, "pendingAmount": { "type": "number" }, "paidPercentage": { "type": "number" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/OrderItemResponseDto" } }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/OrderPaymentResponseDto" } } }, "required": [ "id", "storeId", "customerId", "buyerAccountId", "customerEmail", "customerPhone", "customerName", "deliveryMethodType", "deliveryDetails", "pickupPointId", "pickupDate", "courierName", "courierModality", "paymentMethod", "paymentStatus", "paymentRejectionReason", "fulfillmentStatus", "status", "cancellationResolution", "cancellationReason", "retainedAmount", "releasedAmount", "releasedResolution", "totalAmount", "requiredAmount", "currency", "expiresAt", "createdAt", "paidAmount", "pendingAmount", "paidPercentage", "items", "payments" ] }, "OrderDetailResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "customerId": { "type": "string", "nullable": true }, "buyerAccountId": { "type": "string", "nullable": true }, "customerEmail": { "type": "string", "nullable": true }, "customerPhone": { "type": "string" }, "customerName": { "type": "string", "nullable": true }, "deliveryMethodType": { "enum": ["PICKUP", "COURIER"], "type": "string" }, "deliveryDetails": { "type": "object", "additionalProperties": true, "nullable": true }, "pickupPointId": { "type": "string", "nullable": true }, "pickupDate": { "type": "string", "nullable": true, "format": "date-time" }, "courierName": { "type": "string", "nullable": true }, "courierModality": { "nullable": true, "enum": ["AGENCY", "HOME"], "type": "string" }, "paymentMethod": { "nullable": true, "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"], "type": "string" }, "paymentStatus": { "enum": [ "PENDING_PAYMENT", "PARTIALLY_PAID", "PAYMENT_SUBMITTED", "VERIFIED", "REJECTED", "CANCELLED" ], "type": "string" }, "paymentRejectionReason": { "type": "string", "nullable": true }, "fulfillmentStatus": { "enum": ["ORDERING", "IN_TRANSIT", "READY", "COMPLETED"], "type": "string" }, "status": { "enum": ["ACTIVE", "CANCELLED"], "type": "string" }, "cancellationResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "cancellationReason": { "type": "string", "nullable": true }, "retainedAmount": { "type": "string", "nullable": true }, "releasedAmount": { "type": "string", "nullable": true }, "releasedResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "totalAmount": { "type": "string" }, "requiredAmount": { "type": "string" }, "currency": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "paidAmount": { "type": "number" }, "pendingAmount": { "type": "number" }, "paidPercentage": { "type": "number" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/OrderItemResponseDto" } }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/OrderPaymentResponseDto" } } }, "required": [ "id", "storeId", "customerId", "buyerAccountId", "customerEmail", "customerPhone", "customerName", "deliveryMethodType", "deliveryDetails", "pickupPointId", "pickupDate", "courierName", "courierModality", "paymentMethod", "paymentStatus", "paymentRejectionReason", "fulfillmentStatus", "status", "cancellationResolution", "cancellationReason", "retainedAmount", "releasedAmount", "releasedResolution", "totalAmount", "requiredAmount", "currency", "expiresAt", "createdAt", "paidAmount", "pendingAmount", "paidPercentage", "items", "payments" ] }, "ReviewPaymentDto": { "type": "object", "properties": { "decision": { "enum": ["approve", "reject"], "type": "string" }, "reason": { "type": "string", "maxLength": 500 } }, "required": ["decision"] }, "OrderStatusResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "customerId": { "type": "string", "nullable": true }, "buyerAccountId": { "type": "string", "nullable": true }, "customerEmail": { "type": "string", "nullable": true }, "customerPhone": { "type": "string" }, "customerName": { "type": "string", "nullable": true }, "deliveryMethodType": { "enum": ["PICKUP", "COURIER"], "type": "string" }, "deliveryDetails": { "type": "object", "additionalProperties": true, "nullable": true }, "pickupPointId": { "type": "string", "nullable": true }, "pickupDate": { "type": "string", "nullable": true, "format": "date-time" }, "courierName": { "type": "string", "nullable": true }, "courierModality": { "nullable": true, "enum": ["AGENCY", "HOME"], "type": "string" }, "paymentMethod": { "nullable": true, "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"], "type": "string" }, "paymentStatus": { "enum": [ "PENDING_PAYMENT", "PARTIALLY_PAID", "PAYMENT_SUBMITTED", "VERIFIED", "REJECTED", "CANCELLED" ], "type": "string" }, "paymentRejectionReason": { "type": "string", "nullable": true }, "fulfillmentStatus": { "enum": ["ORDERING", "IN_TRANSIT", "READY", "COMPLETED"], "type": "string" }, "status": { "enum": ["ACTIVE", "CANCELLED"], "type": "string" }, "cancellationResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "cancellationReason": { "type": "string", "nullable": true }, "retainedAmount": { "type": "string", "nullable": true }, "releasedAmount": { "type": "string", "nullable": true }, "releasedResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "totalAmount": { "type": "string" }, "requiredAmount": { "type": "string" }, "currency": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "customerId", "buyerAccountId", "customerEmail", "customerPhone", "customerName", "deliveryMethodType", "deliveryDetails", "pickupPointId", "pickupDate", "courierName", "courierModality", "paymentMethod", "paymentStatus", "paymentRejectionReason", "fulfillmentStatus", "status", "cancellationResolution", "cancellationReason", "retainedAmount", "releasedAmount", "releasedResolution", "totalAmount", "requiredAmount", "currency", "expiresAt", "createdAt" ] }, "AdvanceFulfillmentDto": { "type": "object", "properties": { "status": { "type": "string", "enum": ["IN_TRANSIT", "READY", "COMPLETED"] } }, "required": ["status"] }, "CancelOrderDto": { "type": "object", "properties": { "resolution": { "type": "string", "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"] }, "retainMode": { "type": "string", "enum": ["FULL", "PARTIAL"] }, "retainedAmount": { "type": "number", "minimum": 0 }, "releasedResolution": { "type": "string", "enum": ["REFUNDED", "STORE_CREDIT"] }, "reason": { "type": "string", "maxLength": 500 } }, "required": ["resolution"] }, "ShippingAddressDto": { "type": "object", "properties": { "recipientName": { "type": "string", "minLength": 1 }, "recipientSurnames": { "type": "string" }, "phone": { "type": "string", "minLength": 6 }, "documentType": { "type": "string", "enum": ["DNI", "CE", "RUC", "PASSPORT"] }, "documentNumber": { "type": "string" }, "department": { "type": "string" }, "province": { "type": "string" }, "district": { "type": "string" }, "line1": { "type": "string" }, "line2": { "type": "string" }, "city": { "type": "string" }, "region": { "type": "string" }, "reference": { "type": "string" }, "agencyName": { "type": "string" } }, "required": ["recipientName", "phone"] }, "CreateOrderItemDto": { "type": "object", "properties": { "productId": { "type": "string" }, "variantId": { "type": "string" }, "quantity": { "type": "number", "minimum": 1 } }, "required": ["productId", "quantity"] }, "CreateOrderDto": { "type": "object", "properties": { "deliveryMethodType": { "type": "string", "enum": ["PICKUP", "COURIER"] }, "pickupPointId": { "type": "string" }, "pickupDate": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, "paymentMethod": { "type": "string", "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"] }, "paymentType": { "type": "string", "enum": ["FULL", "PARTIAL"] }, "customerPhone": { "type": "string", "minLength": 6 }, "customerName": { "type": "string" }, "customerEmail": { "type": "string", "format": "email" }, "shippingAddress": { "$ref": "#/components/schemas/ShippingAddressDto" }, "courierName": { "type": "string" }, "courierModality": { "type": "string", "enum": ["AGENCY", "HOME"] }, "items": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/CreateOrderItemDto" } } }, "required": ["deliveryMethodType", "customerPhone", "items"] }, "CheckoutOrderItemResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "orderId": { "type": "string" }, "storeId": { "type": "string" }, "productId": { "type": "string" }, "variantId": { "type": "string", "nullable": true }, "quantity": { "type": "number" }, "unitPriceAtPurchase": { "type": "string" }, "currency": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "orderId", "storeId", "productId", "variantId", "quantity", "unitPriceAtPurchase", "currency", "createdAt" ] }, "CheckoutOrderResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "customerId": { "type": "string", "nullable": true }, "buyerAccountId": { "type": "string", "nullable": true }, "customerEmail": { "type": "string", "nullable": true }, "customerPhone": { "type": "string" }, "customerName": { "type": "string", "nullable": true }, "deliveryMethodType": { "enum": ["PICKUP", "COURIER"], "type": "string" }, "deliveryDetails": { "type": "object", "additionalProperties": true, "nullable": true }, "pickupPointId": { "type": "string", "nullable": true }, "pickupDate": { "type": "string", "nullable": true, "format": "date-time" }, "courierName": { "type": "string", "nullable": true }, "courierModality": { "nullable": true, "enum": ["AGENCY", "HOME"], "type": "string" }, "paymentMethod": { "nullable": true, "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"], "type": "string" }, "paymentStatus": { "enum": [ "PENDING_PAYMENT", "PARTIALLY_PAID", "PAYMENT_SUBMITTED", "VERIFIED", "REJECTED", "CANCELLED" ], "type": "string" }, "paymentRejectionReason": { "type": "string", "nullable": true }, "fulfillmentStatus": { "enum": ["ORDERING", "IN_TRANSIT", "READY", "COMPLETED"], "type": "string" }, "status": { "enum": ["ACTIVE", "CANCELLED"], "type": "string" }, "cancellationResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "cancellationReason": { "type": "string", "nullable": true }, "retainedAmount": { "type": "string", "nullable": true }, "releasedAmount": { "type": "string", "nullable": true }, "releasedResolution": { "nullable": true, "enum": ["REFUNDED", "RETAINED", "STORE_CREDIT"], "type": "string" }, "totalAmount": { "type": "string" }, "requiredAmount": { "type": "string" }, "currency": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/CheckoutOrderItemResponseDto" } } }, "required": [ "id", "storeId", "customerId", "buyerAccountId", "customerEmail", "customerPhone", "customerName", "deliveryMethodType", "deliveryDetails", "pickupPointId", "pickupDate", "courierName", "courierModality", "paymentMethod", "paymentStatus", "paymentRejectionReason", "fulfillmentStatus", "status", "cancellationResolution", "cancellationReason", "retainedAmount", "releasedAmount", "releasedResolution", "totalAmount", "requiredAmount", "currency", "expiresAt", "createdAt", "items" ] }, "CheckoutResultResponseDto": { "type": "object", "properties": { "order": { "$ref": "#/components/schemas/CheckoutOrderResponseDto" }, "whatsappUrl": { "type": "string", "nullable": true } }, "required": ["order", "whatsappUrl"] }, "ConfirmAccountCustomerResponseDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "phone": { "type": "string" }, "hasPassword": { "type": "boolean" } }, "required": ["name", "email", "phone", "hasPassword"] }, "AccountOrderResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "paymentStatus": { "enum": [ "PENDING_PAYMENT", "PARTIALLY_PAID", "PAYMENT_SUBMITTED", "VERIFIED", "REJECTED", "CANCELLED" ], "type": "string" }, "fulfillmentStatus": { "enum": ["ORDERING", "IN_TRANSIT", "READY", "COMPLETED"], "type": "string" }, "totalAmount": { "type": "string" }, "currency": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "paidAmount": { "type": "number" }, "pendingAmount": { "type": "number" }, "paidPercentage": { "type": "number" } }, "required": [ "id", "paymentStatus", "fulfillmentStatus", "totalAmount", "currency", "createdAt", "paidAmount", "pendingAmount", "paidPercentage" ] }, "ConfirmAccountResponseDto": { "type": "object", "properties": { "purpose": { "enum": ["confirm", "reset", "change-email", "change-phone"], "type": "string" }, "customer": { "$ref": "#/components/schemas/ConfirmAccountCustomerResponseDto" }, "orders": { "type": "array", "items": { "$ref": "#/components/schemas/AccountOrderResponseDto" } } }, "required": ["purpose", "customer", "orders"] }, "CustomerListItemResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string", "nullable": true }, "phone": { "type": "string" }, "email": { "type": "string", "nullable": true }, "emailVerified": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "orderCount": { "type": "number" }, "lifetimeSpend": { "type": "number" }, "lastOrderAt": { "type": "string", "nullable": true, "format": "date-time" } }, "required": [ "id", "name", "phone", "email", "emailVerified", "createdAt", "orderCount", "lifetimeSpend", "lastOrderAt" ] }, "CustomerDetailCustomerResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string", "nullable": true }, "phone": { "type": "string" }, "email": { "type": "string", "nullable": true }, "emailVerified": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "name", "phone", "email", "emailVerified", "createdAt" ] }, "CustomerDetailResponseDto": { "type": "object", "properties": { "customer": { "$ref": "#/components/schemas/CustomerDetailCustomerResponseDto" }, "orders": { "type": "array", "items": { "$ref": "#/components/schemas/OrderResponseDto" } } }, "required": ["customer", "orders"] }, "PaymentMethodConfigResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "method": { "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"], "type": "string" }, "enabled": { "type": "boolean" }, "details": { "type": "object", "additionalProperties": true }, "depositPercent": { "type": "number" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "method", "enabled", "details", "depositPercent", "createdAt" ] }, "PaymentMethodDetailsDto": { "type": "object", "properties": { "bankName": { "type": "string" }, "accountNumber": { "type": "string" }, "accountHolder": { "type": "string" }, "accountType": { "type": "string" }, "phoneNumber": { "type": "string" }, "qrImageUrl": { "type": "string" } } }, "UpsertPaymentMethodDto": { "type": "object", "properties": { "depositPercent": { "type": "number", "minimum": 1, "maximum": 100, "description": "Porcentaje de adelanto que el comprador paga al hacer el pedido (1-100). 20 = paga 20% ahora." }, "method": { "type": "string", "enum": ["YAPE", "PLIN", "TRANSFER", "CASH"] }, "enabled": { "type": "boolean" }, "details": { "$ref": "#/components/schemas/PaymentMethodDetailsDto" } }, "required": ["method"] }, "DeliveryMethodConfigResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "type": { "enum": ["PICKUP", "COURIER"], "type": "string" }, "enabled": { "type": "boolean" }, "details": { "type": "object", "additionalProperties": true }, "createdAt": { "type": "string", "format": "date-time" } }, "required": ["id", "storeId", "type", "enabled", "details", "createdAt"] }, "UpsertDeliveryMethodDto": { "type": "object", "properties": { "type": { "type": "string", "enum": ["PICKUP", "COURIER"] }, "enabled": { "type": "boolean" }, "details": { "type": "object", "additionalProperties": true } }, "required": ["type"] }, "PickupPointResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "label": { "type": "string" }, "enabled": { "type": "boolean" }, "sortOrder": { "type": "number" }, "openDays": { "type": "array", "items": { "type": "number" } }, "closedOverride": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "label", "enabled", "sortOrder", "openDays", "closedOverride", "createdAt" ] }, "CreatePickupPointDto": { "type": "object", "properties": { "label": { "type": "string", "minLength": 1 }, "enabled": { "type": "boolean" }, "sortOrder": { "type": "number" }, "openDays": { "maxItems": 7, "type": "array", "items": { "type": "number", "maximum": 6, "minimum": 0 } }, "closedOverride": { "type": "boolean" } }, "required": ["label"] }, "UpdatePickupPointDto": { "type": "object", "properties": { "label": { "type": "string", "minLength": 1 }, "enabled": { "type": "boolean" }, "sortOrder": { "type": "number" }, "openDays": { "maxItems": 7, "type": "array", "items": { "type": "number", "maximum": 6, "minimum": 0 } }, "closedOverride": { "type": "boolean" } } }, "PublicPickupPointsResponseDto": { "type": "object", "properties": { "weekday": { "type": "number", "description": "Server-computed weekday (0=Sunday..6=Saturday) used for openDays validation — storefronts must use this, not their own local date.", "example": 3 }, "points": { "type": "array", "items": { "$ref": "#/components/schemas/PickupPointResponseDto" } } }, "required": ["weekday", "points"] }, "CreateInquiryDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "email": { "type": "string", "format": "email" }, "company": { "type": "string" }, "inquiryType": { "type": "string" }, "message": { "type": "string", "minLength": 1 } }, "required": ["name", "email", "message"] }, "InquiryResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "email": { "type": "string" }, "company": { "type": "string", "nullable": true }, "inquiryType": { "type": "string", "nullable": true }, "message": { "type": "string" }, "status": { "enum": ["NEW", "REVIEWED", "ARCHIVED"], "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "name", "email", "company", "inquiryType", "message", "status", "createdAt" ] }, "CreateCategoryDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "parentId": { "type": "string" } }, "required": ["name"] }, "CategoryResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "parentId": { "type": "string", "nullable": true }, "name": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": ["id", "storeId", "parentId", "name", "createdAt"] }, "UpdateCategoryDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "parentId": { "type": "string" } } }, "CreateCollectionDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "description": { "type": "string" } }, "required": ["name"] }, "CollectionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "description": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "name", "slug", "description", "createdAt" ] }, "ProductVariantInCollectionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "stock": { "type": "number", "nullable": true }, "reserved": { "type": "number" }, "priceOverride": { "type": "string", "nullable": true }, "imageOverride": { "type": "string", "nullable": true } }, "required": [ "id", "name", "stock", "reserved", "priceOverride", "imageOverride" ] }, "ProductInCollectionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "string" }, "currency": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } }, "availableUntil": { "type": "string", "nullable": true, "format": "date-time" }, "status": { "enum": ["DRAFT", "PUBLISHED"], "type": "string" }, "soldOut": { "type": "boolean" }, "discontinued": { "type": "boolean" }, "variants": { "type": "array", "items": { "$ref": "#/components/schemas/ProductVariantInCollectionResponseDto" } }, "deletedAt": { "type": "string", "nullable": true, "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "name", "description", "price", "currency", "images", "availableUntil", "status", "soldOut", "discontinued", "variants", "deletedAt", "createdAt" ] }, "CollectionProductWithProductResponseDto": { "type": "object", "properties": { "collectionId": { "type": "string" }, "productId": { "type": "string" }, "position": { "type": "number" }, "product": { "$ref": "#/components/schemas/ProductInCollectionResponseDto" } }, "required": ["collectionId", "productId", "position", "product"] }, "CollectionWithProductsResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "description": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "products": { "type": "array", "items": { "$ref": "#/components/schemas/CollectionProductWithProductResponseDto" } } }, "required": [ "id", "storeId", "name", "slug", "description", "createdAt", "products" ] }, "UpdateCollectionDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "description": { "type": "string" } } }, "AddCollectionProductDto": { "type": "object", "properties": { "productId": { "type": "string" }, "position": { "type": "number" } }, "required": ["productId"] }, "CollectionProductResponseDto": { "type": "object", "properties": { "collectionId": { "type": "string" }, "productId": { "type": "string" }, "position": { "type": "number" } }, "required": ["collectionId", "productId", "position"] }, "ReorderCollectionProductsDto": { "type": "object", "properties": { "productIds": { "type": "array", "items": { "type": "string" } } }, "required": ["productIds"] }, "CreateStoreSectionDto": { "type": "object", "properties": { "type": { "type": "string", "enum": ["COLLECTION", "BANNER", "TEXT_BLOCK"] }, "collectionId": { "type": "string" }, "content": { "type": "object", "additionalProperties": true }, "position": { "type": "number" }, "hidden": { "type": "boolean" } }, "required": ["type"] }, "StoreSectionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "type": { "enum": ["COLLECTION", "BANNER", "TEXT_BLOCK"], "type": "string" }, "collectionId": { "type": "string", "nullable": true }, "content": { "type": "object", "additionalProperties": true }, "position": { "type": "number" }, "hidden": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "storeId", "type", "collectionId", "content", "position", "hidden", "createdAt" ] }, "ReorderStoreSectionsDto": { "type": "object", "properties": { "sectionIds": { "type": "array", "items": { "type": "string" } } }, "required": ["sectionIds"] }, "UpdateStoreSectionDto": { "type": "object", "properties": { "type": { "type": "string", "enum": ["COLLECTION", "BANNER", "TEXT_BLOCK"] }, "collectionId": { "type": "string" }, "content": { "type": "object", "additionalProperties": true }, "position": { "type": "number" }, "hidden": { "type": "boolean" } } }, "PaymentStatusCountsResponseDto": { "type": "object", "properties": { "PENDING_PAYMENT": { "type": "number" }, "PARTIALLY_PAID": { "type": "number" }, "PAYMENT_SUBMITTED": { "type": "number" }, "VERIFIED": { "type": "number" }, "REJECTED": { "type": "number" }, "CANCELLED": { "type": "number" } }, "required": [ "PENDING_PAYMENT", "PARTIALLY_PAID", "PAYMENT_SUBMITTED", "VERIFIED", "REJECTED", "CANCELLED" ] }, "FulfillmentStatusCountsResponseDto": { "type": "object", "properties": { "ORDERING": { "type": "number" }, "IN_TRANSIT": { "type": "number" }, "READY": { "type": "number" }, "COMPLETED": { "type": "number" } }, "required": ["ORDERING", "IN_TRANSIT", "READY", "COMPLETED"] }, "OutstandingPartialPaymentResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "customerName": { "type": "string", "nullable": true }, "customerPhone": { "type": "string" }, "currency": { "type": "string" }, "totalAmount": { "type": "string" }, "requiredAmount": { "type": "string" }, "paidAmount": { "type": "number" }, "pendingAmount": { "type": "number" }, "paidPercentage": { "type": "number" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "customerName", "customerPhone", "currency", "totalAmount", "requiredAmount", "paidAmount", "pendingAmount", "paidPercentage", "createdAt" ] }, "StatsOverviewResponseDto": { "type": "object", "properties": { "revenue": { "type": "number" }, "totalOrders": { "type": "number" }, "paymentStatusCounts": { "$ref": "#/components/schemas/PaymentStatusCountsResponseDto" }, "fulfillmentStatusCounts": { "$ref": "#/components/schemas/FulfillmentStatusCountsResponseDto" }, "lowStockCount": { "type": "number" }, "recentOrders": { "type": "array", "items": { "$ref": "#/components/schemas/OrderResponseDto" } }, "partialPaymentOrders": { "type": "array", "items": { "$ref": "#/components/schemas/OutstandingPartialPaymentResponseDto" } } }, "required": [ "revenue", "totalOrders", "paymentStatusCounts", "fulfillmentStatusCounts", "lowStockCount", "recentOrders", "partialPaymentOrders" ] }, "AnalyticsBucketResponseDto": { "type": "object", "properties": { "start": { "type": "string", "format": "date-time" }, "end": { "type": "string", "format": "date-time" }, "revenue": { "type": "number" }, "orderCount": { "type": "number" }, "newCustomers": { "type": "number" }, "returningCustomers": { "type": "number" } }, "required": [ "start", "end", "revenue", "orderCount", "newCustomers", "returningCustomers" ] }, "AnalyticsTopProductResponseDto": { "type": "object", "properties": { "productId": { "type": "string" }, "name": { "type": "string" }, "unitsSold": { "type": "number" } }, "required": ["productId", "name", "unitsSold"] }, "AnalyticsResultResponseDto": { "type": "object", "properties": { "range": { "enum": ["30d", "90d", "12m"], "type": "string" }, "buckets": { "type": "array", "items": { "$ref": "#/components/schemas/AnalyticsBucketResponseDto" } }, "topProducts": { "type": "array", "items": { "$ref": "#/components/schemas/AnalyticsTopProductResponseDto" } } }, "required": ["range", "buckets", "topProducts"] }, "PaymentMethodBreakdownRowResponseDto": { "type": "object", "properties": { "method": { "nullable": true, "enum": ["YAPE", "PLIN", "TRANSFER", "CASH", null], "type": "string" }, "amount": { "type": "number" }, "count": { "type": "number" }, "percentage": { "type": "number" } }, "required": ["method", "amount", "count", "percentage"] }, "PaymentMethodsBreakdownResponseDto": { "type": "object", "properties": { "from": { "type": "string", "format": "date-time" }, "to": { "type": "string", "format": "date-time" }, "totalAmount": { "type": "number" }, "totalCount": { "type": "number" }, "byMethod": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentMethodBreakdownRowResponseDto" } } }, "required": ["from", "to", "totalAmount", "totalCount", "byMethod"] }, "SuggestionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "severity": { "enum": ["info", "warning", "critical"], "type": "string" }, "titleKey": { "type": "string" }, "bodyParams": { "type": "object", "additionalProperties": true } }, "required": ["id", "severity", "titleKey", "bodyParams"] }, "RegisterCustomerDto": { "type": "object", "properties": { "token": { "type": "string", "minLength": 1 }, "password": { "type": "string", "minLength": 8 } }, "required": ["token", "password"] }, "OkResponseDto": { "type": "object", "properties": { "ok": { "type": "boolean" } }, "required": ["ok"] }, "LoginCustomerDto": { "type": "object", "properties": { "phone": { "type": "string", "minLength": 1 }, "password": { "type": "string", "minLength": 1 } }, "required": ["phone", "password"] }, "ForgotPasswordDto": { "type": "object", "properties": { "phone": { "type": "string", "minLength": 1 } }, "required": ["phone"] }, "ChangeCustomerPasswordDto": { "type": "object", "properties": { "currentPassword": { "type": "string", "minLength": 1 }, "newPassword": { "type": "string", "minLength": 8 } }, "required": ["currentPassword", "newPassword"] }, "CustomerProfileCustomerResponseDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "phone": { "type": "string" }, "emailVerified": { "type": "boolean" }, "pendingEmail": { "type": "string", "nullable": true }, "pendingPhone": { "type": "string", "nullable": true } }, "required": [ "name", "email", "phone", "emailVerified", "pendingEmail", "pendingPhone" ] }, "CustomerProfileResponseDto": { "type": "object", "properties": { "customer": { "$ref": "#/components/schemas/CustomerProfileCustomerResponseDto" }, "orders": { "type": "array", "items": { "$ref": "#/components/schemas/AccountOrderResponseDto" } } }, "required": ["customer", "orders"] }, "UpdateCustomerProfileDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "email": { "type": "string", "format": "email" }, "phone": { "type": "string", "minLength": 1 } }, "required": ["name"] }, "UpdateCustomerProfileResponseDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "pendingEmail": { "type": "string", "nullable": true }, "pendingPhone": { "type": "string", "nullable": true } }, "required": ["name", "pendingEmail", "pendingPhone"] }, "LinkedStoreResponseDto": { "type": "object", "properties": { "slug": { "type": "string" }, "name": { "type": "string" } }, "required": ["slug", "name"] }, "GlobalAccountProfileResponseDto": { "type": "object", "properties": { "name": { "type": "string", "nullable": true }, "email": { "type": "string", "nullable": true }, "phone": { "type": "string" }, "emailVerified": { "type": "boolean" }, "pendingEmail": { "type": "string", "nullable": true }, "pendingPhone": { "type": "string", "nullable": true }, "stores": { "type": "array", "items": { "$ref": "#/components/schemas/LinkedStoreResponseDto" } } }, "required": [ "name", "email", "phone", "emailVerified", "pendingEmail", "pendingPhone", "stores" ] }, "GlobalAccountOrderResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "paymentStatus": { "enum": [ "PENDING_PAYMENT", "PARTIALLY_PAID", "PAYMENT_SUBMITTED", "VERIFIED", "REJECTED", "CANCELLED" ], "type": "string" }, "fulfillmentStatus": { "enum": ["ORDERING", "IN_TRANSIT", "READY", "COMPLETED"], "type": "string" }, "totalAmount": { "type": "string" }, "currency": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "paidAmount": { "type": "number" }, "pendingAmount": { "type": "number" }, "paidPercentage": { "type": "number" }, "storeSlug": { "type": "string" }, "storeName": { "type": "string" } }, "required": [ "id", "paymentStatus", "fulfillmentStatus", "totalAmount", "currency", "createdAt", "paidAmount", "pendingAmount", "paidPercentage", "storeSlug", "storeName" ] }, "CreateRestockRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "phone": { "type": "string", "minLength": 6 }, "productId": { "type": "string", "minLength": 1 }, "variantId": { "type": "string" } }, "required": ["name", "phone", "productId"] }, "RestockRequestResultResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": ["id", "createdAt"] }, "RestockRequestProductDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "images": { "type": "array", "items": { "type": "string" } } }, "required": ["id", "name", "images"] }, "RestockRequestVariantDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": ["id", "name"] }, "RestockRequestResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "phone": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "product": { "$ref": "#/components/schemas/RestockRequestProductDto" }, "variant": { "nullable": true, "type": "object", "allOf": [ { "$ref": "#/components/schemas/RestockRequestVariantDto" } ] } }, "required": ["id", "name", "phone", "createdAt", "product", "variant"] }, "RestockCountResponseDto": { "type": "object", "properties": { "count": { "type": "number" } }, "required": ["count"] }, "UpdateWhatsAppTemplateDto": { "type": "object", "properties": { "template": { "type": "string", "maxLength": 1000 } }, "required": ["template"] }, "WhatsAppTemplateResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "type": { "enum": ["NEW_ORDER", "PAYMENT_REMINDER"], "type": "string" }, "template": { "type": "string" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": ["id", "storeId", "type", "template", "updatedAt"] }, "AddressResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "buyerAccountId": { "type": "string" }, "label": { "type": "string", "nullable": true }, "recipientName": { "type": "string" }, "phone": { "type": "string" }, "line1": { "type": "string" }, "line2": { "type": "string", "nullable": true }, "city": { "type": "string" }, "region": { "type": "string", "nullable": true }, "reference": { "type": "string", "nullable": true }, "isDefault": { "type": "boolean" }, "createdAt": { "type": "string" } }, "required": [ "id", "buyerAccountId", "label", "recipientName", "phone", "line1", "line2", "city", "region", "reference", "isDefault", "createdAt" ] }, "CreateAddressDto": { "type": "object", "properties": { "label": { "type": "string" }, "recipientName": { "type": "string" }, "phone": { "type": "string" }, "line1": { "type": "string" }, "line2": { "type": "string" }, "city": { "type": "string" }, "region": { "type": "string" }, "reference": { "type": "string" }, "isDefault": { "type": "boolean" } }, "required": ["recipientName", "phone", "line1", "city"] }, "UpdateAddressDto": { "type": "object", "properties": { "label": { "type": "string" }, "recipientName": { "type": "string" }, "phone": { "type": "string" }, "line1": { "type": "string" }, "line2": { "type": "string" }, "city": { "type": "string" }, "region": { "type": "string" }, "reference": { "type": "string" }, "isDefault": { "type": "boolean" } } }, "KumaHeartbeatDto": { "type": "object", "properties": { "monitorID": { "type": "number" }, "status": { "type": "number" }, "important": { "type": "boolean" }, "time": { "type": "string" }, "msg": { "type": "string" } }, "required": ["monitorID", "status", "important"] }, "KumaMonitorDto": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" } }, "required": ["name"] }, "KumaWebhookDto": { "type": "object", "properties": { "heartbeat": { "$ref": "#/components/schemas/KumaHeartbeatDto" }, "monitor": { "$ref": "#/components/schemas/KumaMonitorDto" }, "msg": { "type": "string" } }, "required": ["heartbeat", "monitor"] }, "IncidentResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "monitorId": { "type": "number" }, "monitorName": { "type": "string" }, "message": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time" }, "resolvedAt": { "type": "string", "nullable": true, "format": "date-time" } }, "required": [ "id", "monitorId", "monitorName", "message", "startedAt", "resolvedAt" ] }, "IncidentListResponseDto": { "type": "object", "properties": { "incidents": { "type": "array", "items": { "$ref": "#/components/schemas/IncidentResponseDto" } }, "total": { "type": "number" }, "page": { "type": "number" }, "limit": { "type": "number" } }, "required": ["incidents", "total", "page", "limit"] }, "CreateCouponDto": { "type": "object", "properties": { "code": { "type": "string", "minLength": 4, "maxLength": 8, "pattern": "^[A-Za-z0-9]+$" }, "name": { "type": "string" }, "description": { "type": "string" }, "plan": { "type": "string" }, "durationDays": { "type": "number", "minimum": 1 }, "maxUses": { "type": "number", "default": 1, "minimum": 1 }, "isActive": { "type": "boolean" }, "startsAt": { "type": "string" }, "expiresAt": { "type": "string" } }, "required": ["code", "name"] }, "CouponResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "code": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "plan": { "type": "string" }, "durationDays": { "type": "number" }, "maxUses": { "type": "number" }, "isActive": { "type": "boolean" }, "status": { "enum": ["active", "inactive", "expired", "scheduled"], "type": "string" }, "startsAt": { "type": "string", "nullable": true }, "expiresAt": { "type": "string", "nullable": true }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "redemptionCount": { "type": "number" } }, "required": [ "id", "code", "name", "description", "plan", "durationDays", "maxUses", "isActive", "status", "startsAt", "expiresAt", "createdAt", "updatedAt", "redemptionCount" ] }, "CouponRedemptionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "couponId": { "type": "string" }, "userId": { "type": "string" }, "userEmail": { "type": "string" }, "userName": { "type": "string" }, "storeSlug": { "type": "string", "nullable": true }, "redeemedAt": { "type": "string" }, "expiresAt": { "type": "string" } }, "required": [ "id", "couponId", "userId", "userEmail", "userName", "storeSlug", "redeemedAt", "expiresAt" ] }, "UpdateCouponDto": { "type": "object", "properties": { "code": { "type": "string", "minLength": 4, "maxLength": 8, "pattern": "^[A-Za-z0-9]+$" }, "name": { "type": "string" }, "description": { "type": "string" }, "maxUses": { "type": "number", "minimum": 1 }, "startsAt": { "type": "string" }, "expiresAt": { "type": "string" }, "isActive": { "type": "boolean" } } }, "RedeemCouponDto": { "type": "object", "properties": { "code": { "type": "string", "minLength": 4, "maxLength": 8, "pattern": "^[A-Za-z0-9]+$" } }, "required": ["code"] }, "CourierModalityResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "modality": { "enum": ["AGENCY", "HOME"], "type": "string" }, "price": { "type": "string", "description": "Decimal price as string" }, "enabled": { "type": "boolean" } }, "required": ["id", "modality", "price", "enabled"] }, "CourierResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "storeId": { "type": "string" }, "name": { "type": "string" }, "enabled": { "type": "boolean" }, "sortOrder": { "type": "number" }, "createdAt": { "type": "string", "format": "date-time" }, "modalities": { "type": "array", "items": { "$ref": "#/components/schemas/CourierModalityResponseDto" } } }, "required": [ "id", "storeId", "name", "enabled", "sortOrder", "createdAt", "modalities" ] }, "CourierModalityDto": { "type": "object", "properties": { "modality": { "enum": ["AGENCY", "HOME"], "type": "string" }, "price": { "type": "number", "minimum": 0, "description": "Price in the store's currency (max 2 decimal places)" }, "enabled": { "type": "boolean" } }, "required": ["modality", "price"] }, "CreateCourierDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Seller-defined courier name (e.g. Olva)" }, "enabled": { "type": "boolean" }, "sortOrder": { "type": "number", "minimum": 0 }, "modalities": { "minItems": 1, "description": "At least one modality (AGENCY or HOME)", "type": "array", "items": { "$ref": "#/components/schemas/CourierModalityDto" } } }, "required": ["name", "modalities"] }, "BulkSaveModalityDto": { "type": "object", "properties": { "modality": { "type": "string", "enum": ["AGENCY", "HOME"] }, "price": { "type": "number", "minimum": 0 }, "enabled": { "type": "boolean" } }, "required": ["modality", "price"] }, "BulkSaveCourierDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "enabled": { "type": "boolean" }, "sortOrder": { "type": "number", "minimum": 0 }, "modalities": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/BulkSaveModalityDto" } } }, "required": ["name", "modalities"] }, "BulkSaveCouriersBodyDto": { "type": "object", "properties": { "couriers": { "type": "array", "items": { "$ref": "#/components/schemas/BulkSaveCourierDto" } }, "deletedIds": { "type": "array", "items": { "type": "string" } } }, "required": ["couriers", "deletedIds"] }, "UpdateCourierModalityDto": { "type": "object", "properties": { "modality": { "enum": ["AGENCY", "HOME"], "type": "string" }, "price": { "type": "number", "minimum": 0 }, "enabled": { "type": "boolean" } }, "required": ["modality", "price"] }, "UpdateCourierDto": { "type": "object", "properties": { "name": { "type": "string" }, "enabled": { "type": "boolean" }, "sortOrder": { "type": "number", "minimum": 0 }, "modalities": { "minItems": 1, "description": "Full replacement of modalities. Provide all modalities the courier should have.", "type": "array", "items": { "$ref": "#/components/schemas/UpdateCourierModalityDto" } } } }, "PublicCourierModalityDto": { "type": "object", "properties": { "modality": { "enum": ["AGENCY", "HOME"], "type": "string" }, "price": { "type": "string", "description": "Decimal price as string" } }, "required": ["modality", "price"] }, "PublicCourierDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "modalities": { "type": "array", "items": { "$ref": "#/components/schemas/PublicCourierModalityDto" } } }, "required": ["id", "name", "modalities"] } } } }