{"openapi":"3.0.3","info":{"title":"Savasna E-Commerce Admin API","version":"1.0.0","description":"REST API for Savasna E-Commerce platform. Routes are auto-scanned from `app/api/v1/**/route.ts` files. Schemas are auto-registered from `lib/validators/*.ts`.","contact":{"name":"Savasna API Support"}},"servers":[{"url":"http://localhost:3000","description":"Local development"},{"url":"https://savasna-api.vercel.app","description":"Production"}],"tags":[{"name":"Auth","description":"Authentication and authorization"},{"name":"Products","description":"Product catalog"},{"name":"Categories","description":"Category management"},{"name":"Orders","description":"Order processing"},{"name":"Cart","description":"Shopping cart"},{"name":"Coupons","description":"Coupons and discounts"},{"name":"Banners","description":"Promotional banners"},{"name":"Addresses","description":"User addresses"},{"name":"Returns","description":"Returns and refunds"},{"name":"Reviews","description":"Product reviews"},{"name":"Support","description":"Customer support tickets"},{"name":"Inventory","description":"Stock management"},{"name":"Notifications","description":"User notifications"},{"name":"Users","description":"User management"},{"name":"Wishlist","description":"Wishlist"},{"name":"Upload","description":"File uploads"},{"name":"Payments","description":"Payment processing"},{"name":"Content","description":"CMS content"},{"name":"Settings","description":"Store settings"},{"name":"Testimonials","description":"Customer testimonials"},{"name":"Pages","description":"Static pages"},{"name":"Admin","description":"Admin-only endpoints"}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ApiResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{}},"required":["success","message"]},"PaginatedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{}},"pagination":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"pages":{"type":"integer"}}}},"required":["success","message","pagination"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"message":{"type":"string"},"errors":{}},"required":["success","message"]},"LoginRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":1}},"required":["email","password"]},"SendOtp":{"type":"object","properties":{"mobile":{"type":"string","pattern":"^(\\+91|91)?[6-9]\\d{9}$"}},"required":["mobile"]},"VerifyOtp":{"type":"object","properties":{"mobile":{"type":"string","pattern":"^(\\+91|91)?[6-9]\\d{9}$"},"otp":{"type":"string","minLength":6,"maxLength":6,"pattern":"^\\d{6}$"}},"required":["mobile","otp"]},"RefreshToken":{"type":"object","properties":{"refreshToken":{"type":"string","minLength":1}},"required":["refreshToken"]},"ListProductsQuery":{"type":"object","properties":{"page":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":20},"category":{"type":"string"},"search":{"type":"string"},"fabric":{"type":"string"},"occasion":{"type":"string"},"color":{"type":"string"},"isCodEnabled":{"type":"boolean","nullable":true},"sort":{"type":"string"},"minPrice":{"type":"number","nullable":true},"maxPrice":{"type":"number","nullable":true},"isFeatured":{"type":"boolean","nullable":true},"isNewArrival":{"type":"boolean","nullable":true}}},"CreateProduct":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"slug":{"type":"string"},"masterSku":{"type":"string","minLength":1},"shortDescription":{"type":"string","maxLength":500,"default":""},"description":{"type":"string","maxLength":10000,"default":""},"categoryIds":{"type":"array","items":{"type":"string"},"minItems":1},"productLine":{"type":"string","default":""},"hsnCode":{"type":"string","default":""},"tags":{"type":"array","items":{"type":"string"},"default":[]},"media":{"type":"object","properties":{"primaryImage":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string","default":""}},"required":["url"]},"gallery":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string","default":""}},"required":["url"]},"default":[]},"videoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","enum":[""]}]}},"required":["primaryImage"]},"seo":{"type":"object","properties":{"metaTitle":{"type":"string","default":""},"metaDescription":{"type":"string","default":""},"metaKeywords":{"type":"array","items":{"type":"string"},"default":[]}}},"nauvariInfo":{"type":"object","properties":{"fabric":{"type":"string","default":""},"weaveType":{"type":"string","default":""},"color":{"type":"string","default":""},"pattern":{"type":"string","default":""},"occasion":{"type":"string","default":""},"sareeLength":{"type":"number","default":6},"blousePiece":{"type":"boolean","default":true},"borderDesign":{"type":"string","default":""},"palluDesign":{"type":"string","default":""},"washCare":{"type":"string","default":""},"craftsmanship":{"type":"string","default":""},"threadWork":{"type":"string","default":""}}},"status":{"type":"string","enum":["active","inactive","draft"],"default":"active"},"isFeatured":{"type":"boolean","default":false},"isNewArrival":{"type":"boolean","default":false},"isBestSeller":{"type":"boolean","default":false},"shipping":{"type":"object","properties":{"isFreeShipping":{"type":"boolean","default":false},"estimatedDispatchTime":{"type":"string","default":""},"estimatedDeliveryTime":{"type":"string","default":""}}},"payment":{"type":"object","properties":{"isOnlinePaymentEnabled":{"type":"boolean","default":true},"isCodEnabled":{"type":"boolean","default":true}}},"policies":{"type":"object","properties":{"isReturnable":{"type":"boolean","default":true},"isCancellationAllowed":{"type":"boolean","default":true},"returnWindowDays":{"type":"integer","minimum":0,"default":7},"returnPolicy":{"type":"string","default":""}}},"variants":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string"},"sku":{"type":"string","minLength":1},"variantName":{"type":"string","minLength":1},"attributes":{"type":"object","properties":{"size":{"type":"string","enum":["S","M","L","XL","Free Size","6M","9Yd","Custom"],"default":"Free Size"},"color":{"type":"string","default":""}}},"pricing":{"type":"object","properties":{"price":{"type":"number","minimum":0},"mrp":{"type":"number","minimum":0},"costPrice":{"type":"number","minimum":0,"default":0},"taxPercent":{"type":"number","minimum":0,"maximum":100,"default":5},"priceIncludesTax":{"type":"boolean","default":true}},"required":["price","mrp"]},"inventory":{"type":"object","properties":{"stock":{"type":"integer","minimum":0},"reserved":{"type":"integer","minimum":0,"default":0},"held":{"type":"integer","minimum":0,"default":0},"lowStockThreshold":{"type":"integer","minimum":0,"default":5},"barcode":{"anyOf":[{"type":"string","minLength":8},{"type":"string","enum":[""]}]}}},"status":{"type":"string","enum":["active","inactive"],"default":"active"},"isDefault":{"type":"boolean","default":false}},"required":["sku","variantName","pricing","inventory"]},"minItems":1}},"required":["name","masterSku","categoryIds","media","variants"]},"CreateOrder":{"type":"object","properties":{"shippingAddressId":{"type":"string"},"couponCode":{"type":"string"},"paymentMethod":{"type":"string","enum":["COD","ONLINE"],"default":"ONLINE"}}},"UpdateOrderStatus":{"type":"object","properties":{"status":{"type":"string","enum":["pending","placed","confirmed","processing","shipped","out_for_delivery","delivered","cancelled","refunded"]}},"required":["status"]},"ShipOrder":{"type":"object","properties":{"courierName":{"type":"string","minLength":1},"trackingNumber":{"type":"string","minLength":1},"shipmentDate":{"type":"string","format":"date"},"weight":{"type":"object","properties":{"value":{"type":"number"},"unit":{"type":"string","default":"kg"}}},"dimensions":{"type":"object","properties":{"length":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"unit":{"type":"string","default":"cm"}}}},"required":["courierName","trackingNumber","shipmentDate"]},"ListOrdersQuery":{"type":"object","properties":{"page":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":20},"status":{"type":"string"},"userId":{"type":"string"},"paymentMethod":{"type":"string"},"dateFrom":{"type":"string"},"dateTo":{"type":"string"},"minAmount":{"type":"number","nullable":true},"maxAmount":{"type":"number","nullable":true},"search":{"type":"string"}}},"CreateCategory":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"categoryCode":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"description":{"type":"string","maxLength":1000,"default":""},"parentId":{"type":"string","nullable":true},"imageUrl":{"type":"string","minLength":1,"format":"uri"},"isActive":{"type":"boolean","default":true},"showInMenu":{"type":"boolean","default":false},"sortOrder":{"type":"integer","nullable":true,"default":0},"isCodEnabled":{"type":"boolean","default":true}},"required":["name","categoryCode","slug","imageUrl"]},"UpdateCategory":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"categoryCode":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"description":{"type":"string","maxLength":1000},"parentId":{"type":"string","nullable":true},"imageUrl":{"type":"string","format":"uri"},"isActive":{"type":"boolean"},"showInMenu":{"type":"boolean"},"sortOrder":{"type":"integer","nullable":true},"isCodEnabled":{"type":"boolean"}}},"ListCategoriesQuery":{"type":"object","properties":{"activeOnly":{"type":"string","enum":["true","false"]},"parentId":{"type":"string"},"search":{"type":"string"}}},"CreateCoupon":{"type":"object","properties":{"code":{"type":"string","minLength":1},"description":{"type":"string"},"discountType":{"type":"string","enum":["PERCENTAGE","FIXED"],"default":"FIXED"},"discountValue":{"type":"number","minimum":0},"minOrderValue":{"type":"number","minimum":0,"default":0},"maxDiscount":{"type":"number","minimum":0},"validFrom":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time"},"usageLimit":{"type":"integer","minimum":0},"usagePerUser":{"type":"integer","minimum":1},"firstTimeUserOnly":{"type":"boolean","default":false},"status":{"type":"string","enum":["draft","active","disabled"],"default":"active"},"scope":{"type":"object","properties":{"type":{"type":"string","enum":["all","categories","products"],"default":"all"},"categoryIds":{"type":"array","items":{"type":"string"},"default":[]},"productIds":{"type":"array","items":{"type":"string"},"default":[]}}}},"required":["code","discountValue"]},"UpdateCoupon":{"type":"object","properties":{"code":{"type":"string","minLength":1},"description":{"type":"string"},"discountType":{"type":"string","enum":["PERCENTAGE","FIXED"]},"discountValue":{"type":"number","minimum":0},"minOrderValue":{"type":"number","minimum":0},"maxDiscount":{"type":"number","minimum":0},"validFrom":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time"},"usageLimit":{"type":"integer","minimum":0},"usagePerUser":{"type":"integer","minimum":1},"firstTimeUserOnly":{"type":"boolean"},"status":{"type":"string","enum":["draft","active","disabled","expired"]},"scope":{"type":"object","properties":{"type":{"type":"string","enum":["all","categories","products"],"default":"all"},"categoryIds":{"type":"array","items":{"type":"string"},"default":[]},"productIds":{"type":"array","items":{"type":"string"},"default":[]}}}}},"CreateBanner":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["HERO","STRIP","SECTION","POPUP","COUNTDOWN"],"default":"HERO"},"placement":{"type":"string","enum":["HOME_TOP","HOME_MIDDLE","CATEGORY","APP"],"default":"HOME_TOP"},"isActive":{"type":"boolean","default":true},"priority":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"platforms":{"type":"array","items":{"type":"string","enum":["WEB","APP"]},"default":["WEB","APP"]},"startAt":{"type":"string","nullable":true,"format":"date-time"},"endAt":{"type":"string","nullable":true,"format":"date-time"},"design":{"type":"object","properties":{"background":{"type":"object","properties":{"type":{"type":"string","enum":["COLOR","IMAGE","GRADIENT"]},"color":{"type":"string"},"imageUrl":{"type":"string","nullable":true,"format":"uri"},"gradient":{"type":"object","nullable":true,"properties":{"from":{"type":"string"},"to":{"type":"string"},"direction":{"type":"string"}}}}},"image":{"type":"object","properties":{"url":{"type":"string","nullable":true,"format":"uri"},"alt":{"type":"string"},"alignment":{"type":"string","enum":["LEFT","RIGHT","CENTER"]},"overlayOpacity":{"type":"number","minimum":0,"maximum":1}}},"text":{"type":"object","properties":{"heading":{"type":"object","nullable":true,"properties":{"value":{"type":"string"},"color":{"type":"string"},"fontSize":{"type":"number"}}},"subHeading":{"type":"object","nullable":true,"properties":{"value":{"type":"string"},"color":{"type":"string"},"fontSize":{"type":"number"}}},"description":{"type":"object","nullable":true,"properties":{"value":{"type":"string"},"color":{"type":"string"},"fontSize":{"type":"number"}}}}},"cta":{"type":"object","properties":{"enabled":{"type":"boolean"},"label":{"type":"string"},"linkType":{"type":"string","enum":["INTERNAL","EXTERNAL"]},"link":{"type":"string"},"backgroundColor":{"type":"string"},"textColor":{"type":"string"},"borderRadius":{"type":"number"}}}}},"target":{"type":"object","properties":{"categoryIds":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"string"}},"cities":{"type":"array","items":{"type":"string"}}}}},"required":["name"]},"UpdateBanner":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["HERO","STRIP","SECTION","POPUP","COUNTDOWN"]},"placement":{"type":"string","enum":["HOME_TOP","HOME_MIDDLE","CATEGORY","APP"]},"isActive":{"type":"boolean"},"priority":{"type":"integer","minimum":0,"exclusiveMinimum":true},"platforms":{"type":"array","items":{"type":"string","enum":["WEB","APP"]}},"startAt":{"type":"string","nullable":true,"format":"date-time"},"endAt":{"type":"string","nullable":true,"format":"date-time"},"design":{"type":"object","properties":{}},"target":{"type":"object","properties":{"categoryIds":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"string"}},"cities":{"type":"array","items":{"type":"string"}}}}}},"CreateReturn":{"type":"object","properties":{"orderId":{"type":"string","minLength":1},"type":{"type":"string","enum":["RETURN","EXCHANGE","CANCELLATION"],"default":"RETURN"},"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1},"quantity":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"reason":{"type":"string","minLength":1},"condition":{"type":"string"}},"required":["itemId","reason"]},"minItems":1},"resolution":{"type":"string","enum":["REFUND","REPLACEMENT","STORE_CREDIT"],"default":"REFUND"},"paymentSource":{"type":"object","properties":{"type":{"type":"string","enum":["ORIGINAL","BANK","UPI"],"default":"ORIGINAL"},"bankNumber":{"type":"string","minLength":1},"upiId":{"type":"string","minLength":1}}}},"required":["orderId","items"]},"UpdateReturnStatus":{"type":"object","properties":{"status":{"type":"string","enum":["APPROVED","REJECTED","PICKUP_SCHEDULED","PICKED_UP","RECEIVED","COMPLETED"]},"adminNote":{"type":"string"},"pickup":{"type":"object","properties":{"scheduledDate":{"type":"string"},"courierName":{"type":"string"},"trackingNumber":{"type":"string"}}}},"required":["status"]},"CreateSupportTicket":{"type":"object","properties":{"name":{"type":"string","minLength":2},"email":{"type":"string","format":"email"},"mobile":{"type":"string","pattern":"^[6-9]\\d{9}$"},"category":{"type":"string","enum":["ORDER","PAYMENT","PRODUCT","DELIVERY","OTHER"]},"subject":{"type":"string","maxLength":50},"message":{"type":"string","minLength":10,"maxLength":300},"orderId":{"type":"string"},"attachments":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":5},"source":{"type":"string","enum":["WEB","EMAIL","PHONE"]}},"required":["name","email","mobile","message"]},"UpdateTicketStatus":{"type":"object","properties":{"status":{"type":"string","enum":["OPEN","IN_PROGRESS","RESOLVED","CLOSED"]},"note":{"type":"string"}},"required":["status"]},"AssignTicket":{"type":"object","properties":{"assignedTo":{"type":"string","minLength":1}},"required":["assignedTo"]},"ResolveTicket":{"type":"object","properties":{"resolution":{"type":"string","minLength":5}},"required":["resolution"]},"UpdateTicketPriority":{"type":"object","properties":{"priority":{"type":"string","enum":["LOW","MEDIUM","HIGH","URGENT"]}},"required":["priority"]},"AdminReply":{"type":"object","properties":{"message":{"type":"string","minLength":1},"isInternal":{"type":"boolean","default":false}},"required":["message"]},"CustomerReply":{"type":"object","properties":{"message":{"type":"string","minLength":1},"attachments":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":5}},"required":["message"]},"UpdateUserStatus":{"type":"object","properties":{"status":{"type":"string","enum":["active","blocked"]},"reason":{"type":"string","minLength":5,"maxLength":500}},"required":["status"]},"UpdateUserRole":{"type":"object","properties":{"role":{"type":"string","enum":["customer","admin"]}},"required":["role"]},"AdjustStock":{"type":"object","properties":{"sku":{"type":"string","minLength":1},"type":{"type":"string","enum":["ADD","DEDUCT","SET"]},"qty":{"type":"number","minimum":0,"exclusiveMinimum":true},"reason":{"type":"string","minLength":1},"remarks":{"type":"string"}},"required":["sku","type","qty","reason"]},"SupportAdminQueueQuery":{"type":"object","properties":{"page":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":20},"status":{"type":"string","enum":["OPEN","IN_PROGRESS","RESOLVED","CLOSED"]},"category":{"type":"string","enum":["ORDER","PAYMENT","PRODUCT","DELIVERY","OTHER"]},"priority":{"type":"string","enum":["LOW","MEDIUM","HIGH","URGENT"]},"assignedTo":{"type":"string"},"breached":{"type":"boolean","nullable":true},"search":{"type":"string"},"startDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}},"SlaReportQuery":{"type":"object","properties":{"startDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["startDate","endDate"]},"ReturnAdminQueueQuery":{"type":"object","properties":{"page":{"type":"integer","minimum":0,"exclusiveMinimum":true,"default":1},"limit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":20},"status":{"type":"string"},"type":{"type":"string"},"userId":{"type":"string"}}}},"parameters":{}},"paths":{"/api/v1/auth/login":{"post":{"tags":["Auth"],"summary":"Login with email and password","security":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}}},"responses":{"200":{"description":"Login successful"},"401":{"description":"Invalid credentials"}}}},"/api/v1/auth/send-otp":{"post":{"tags":["Auth"],"summary":"Send OTP to mobile number","security":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOtp"}}}},"responses":{"200":{"description":"OTP sent"},"400":{"description":"Invalid mobile"}}}},"/api/v1/auth/verify-otp":{"post":{"tags":["Auth"],"summary":"Verify OTP and login","security":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOtp"}}}},"responses":{"200":{"description":"OTP verified"},"400":{"description":"Invalid OTP"}}}},"/api/v1/auth/refresh":{"post":{"tags":["Auth"],"summary":"Refresh access token","security":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshToken"}}}},"responses":{"200":{"description":"Token refreshed"},"401":{"description":"Invalid token"}}}},"/api/v1/auth/me":{"get":{"tags":["Auth"],"summary":"GET /auth/me","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/auth/logout":{"post":{"tags":["Auth"],"summary":"POST /auth/logout","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/products":{"get":{"tags":["Products"],"summary":"GET /products [validators: createProductSchema, listProductsSchema]","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"post":{"tags":["Products"],"summary":"POST /products [validators: createProductSchema, listProductsSchema]","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{},"description":"createProductSchema body schema - see validator file"}}}},"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/products/{id}":{"get":{"tags":["Products"],"summary":"GET /products/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Products"],"summary":"PUT /products/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Products"],"summary":"DELETE /products/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/products/slug/{slug}":{"get":{"tags":["Products"],"summary":"Get product by slug","security":[],"parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Product details"}}}},"/api/v1/categories":{"get":{"tags":["Categories"],"summary":"GET /categories","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"post":{"tags":["Categories"],"summary":"POST /categories","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/categories/{id}":{"get":{"tags":["Categories"],"summary":"GET /categories/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Categories"],"summary":"PUT /categories/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Categories"],"summary":"DELETE /categories/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/categories/{id}/subcategories":{"get":{"tags":["Categories"],"summary":"Get subcategories of a category","security":[],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Subcategories list"}}}},"/api/v1/categories/root":{"get":{"tags":["Categories"],"summary":"GET /categories/root","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/categories/hierarchy":{"get":{"tags":["Categories"],"summary":"Get full category hierarchy","security":[],"responses":{"200":{"description":"Category hierarchy"}}}},"/api/v1/orders":{"get":{"tags":["Orders"],"summary":"GET /orders","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Orders"],"summary":"POST /orders","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/orders/{id}":{"get":{"tags":["Orders"],"summary":"GET /orders/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/orders/{id}/status":{"put":{"tags":["Orders"],"summary":"PUT /orders/:id/status","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/orders/{id}/ship":{"post":{"tags":["Orders"],"summary":"POST /orders/:id/ship","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/orders/{id}/cancel":{"post":{"tags":["Orders"],"summary":"POST /orders/:id/cancel","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/orders/initiate-payment":{"post":{"tags":["Orders"],"summary":"POST /orders/initiate-payment","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/orders/verify-cashfree-payment":{"post":{"tags":["Orders"],"summary":"POST /orders/verify-cashfree-payment","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/orders/webhook/razorpay":{"post":{"tags":["Orders"],"summary":"Razorpay webhook handler","security":[],"responses":{"200":{"description":"Webhook processed"}}}},"/api/v1/orders/webhook/cashfree":{"post":{"tags":["Orders"],"summary":"Cashfree webhook handler","security":[],"responses":{"200":{"description":"Webhook processed"}}}},"/api/v1/cart":{"get":{"tags":["Cart"],"summary":"GET /cart","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Cart"],"summary":"POST /cart","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"delete":{"tags":["Cart"],"summary":"DELETE /cart","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/cart/items/{id}":{"put":{"tags":["Cart"],"summary":"Update cart item quantity","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"quantity":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"required":["quantity"]}}}},"responses":{"200":{"description":"Cart item updated"}}},"delete":{"tags":["Cart"],"summary":"DELETE /cart/items/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"patch":{"tags":["Cart"],"summary":"PATCH /cart/items/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/coupons":{"get":{"tags":["Coupons"],"summary":"GET /coupons","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"post":{"tags":["Coupons"],"summary":"POST /coupons","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/coupons/{id}":{"get":{"tags":["Coupons"],"summary":"GET /coupons/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Coupons"],"summary":"PUT /coupons/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Coupons"],"summary":"DELETE /coupons/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/coupons/apply":{"post":{"tags":["Coupons"],"summary":"POST /coupons/apply","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/banners":{"get":{"tags":["Banners"],"summary":"GET /banners","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"post":{"tags":["Banners"],"summary":"POST /banners","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/banners/{id}":{"get":{"tags":["Banners"],"summary":"GET /banners/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Banners"],"summary":"PUT /banners/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Banners"],"summary":"DELETE /banners/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/banners/{id}/toggle":{"put":{"tags":["Banners"],"summary":"PUT /banners/:id/toggle","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/banners/active":{"get":{"tags":["Banners"],"summary":"Get active banners","security":[],"responses":{"200":{"description":"Active banners"}}}},"/api/v1/addresses":{"get":{"tags":["Addresses"],"summary":"GET /addresses","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Addresses"],"summary":"POST /addresses","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/addresses/{id}":{"get":{"tags":["Addresses"],"summary":"Get address by ID","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Address details"}}},"put":{"tags":["Addresses"],"summary":"PUT /addresses/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"delete":{"tags":["Addresses"],"summary":"DELETE /addresses/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/addresses/{id}/set-default":{"put":{"tags":["Addresses"],"summary":"PUT /addresses/:id/set-default","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/returns":{"get":{"tags":["Returns"],"summary":"GET /returns","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Returns"],"summary":"POST /returns","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/returns/{id}":{"get":{"tags":["Returns"],"summary":"GET /returns/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/returns/{id}/approve":{"put":{"tags":["Returns"],"summary":"PUT /returns/:id/approve","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/returns/{id}/cancel":{"put":{"tags":["Returns"],"summary":"Cancel a return request","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Return cancelled"}}},"post":{"tags":["Returns"],"summary":"POST /returns/:id/cancel","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/returns/admin/all":{"get":{"tags":["Returns"],"summary":"GET /returns/admin/all","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/reviews":{"get":{"tags":["Reviews"],"summary":"GET /reviews","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Reviews"],"summary":"POST /reviews","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/reviews/{id}":{"get":{"tags":["Reviews"],"summary":"Get review by ID","security":[],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Review details"}}},"put":{"tags":["Reviews"],"summary":"PUT /reviews/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Reviews"],"summary":"DELETE /reviews/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/reviews/{id}/approve":{"put":{"tags":["Reviews"],"summary":"PUT /reviews/:id/approve","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/reviews/{id}/feature":{"put":{"tags":["Reviews"],"summary":"PUT /reviews/:id/feature","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/tickets":{"get":{"tags":["Support"],"summary":"GET /support/tickets","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Support"],"summary":"POST /support/tickets","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/support/tickets/{id}":{"get":{"tags":["Support"],"summary":"GET /support/tickets/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/support/tickets/{id}/messages":{"post":{"tags":["Support"],"summary":"POST /support/tickets/:id/messages","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/support/tickets/{id}/resolve":{"put":{"tags":["Support"],"summary":"PUT /support/tickets/:id/resolve","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/tickets/{id}/close":{"put":{"tags":["Support"],"summary":"PUT /support/tickets/:id/close","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/support/tickets/{id}/escalate":{"put":{"tags":["Support"],"summary":"Escalate a ticket","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Ticket escalated"}}},"post":{"tags":["Support"],"summary":"POST /support/tickets/:id/escalate","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/support/tickets/{id}/assign":{"put":{"tags":["Support"],"summary":"PUT /support/tickets/:id/assign","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/reports":{"get":{"tags":["Support"],"summary":"GET /support/reports","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/support/reports/sla":{"get":{"tags":["Support"],"summary":"GET /support/reports/sla","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/inventory":{"get":{"tags":["Inventory"],"summary":"GET /inventory","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/inventory/{sku}":{"put":{"tags":["Inventory"],"summary":"Update inventory for a SKU","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"sku","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdjustStock"}}}},"responses":{"200":{"description":"Inventory updated"}}},"get":{"tags":["Inventory"],"summary":"GET /inventory/:sku","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"sku","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/notifications":{"get":{"tags":["Notifications"],"summary":"GET /notifications","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/notifications/unread-count":{"get":{"tags":["Notifications"],"summary":"GET /notifications/unread-count","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/users":{"get":{"tags":["Users"],"summary":"GET /users","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/wishlist":{"get":{"tags":["Wishlist"],"summary":"GET /wishlist","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Wishlist"],"summary":"POST /wishlist","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/wishlist/{id}":{"delete":{"tags":["Wishlist"],"summary":"Remove item from wishlist","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Item removed"}}}},"/api/v1/upload":{"post":{"tags":["Upload"],"summary":"POST /upload","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/upload/presigned-url":{"get":{"tags":["Upload"],"summary":"Get pre-signed upload URL","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Pre-signed URL"}}},"post":{"tags":["Upload"],"summary":"POST /upload/presigned-url","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/payments":{"get":{"tags":["Payments"],"summary":"GET /payments","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/payments/{id}":{"get":{"tags":["Payments"],"summary":"GET /payments/:id","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/content/pages":{"get":{"tags":["Content"],"summary":"GET /content/pages","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"post":{"tags":["Content"],"summary":"Create a CMS page","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Page created"}}}},"/api/v1/content/pages/{id}":{"get":{"tags":["Content"],"summary":"Get CMS page by ID","security":[],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Page details"}}},"put":{"tags":["Content"],"summary":"Update a CMS page","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Page updated"}}},"delete":{"tags":["Content"],"summary":"Delete a CMS page","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Page deleted"}}}},"/api/v1/content/navigation/{location}":{"get":{"tags":["Content"],"summary":"GET /content/navigation/:location","parameters":[{"schema":{"type":"string"},"required":true,"name":"location","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Content"],"summary":"PUT /content/navigation/:location","parameters":[{"schema":{"type":"string"},"required":true,"name":"location","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/settings":{"get":{"tags":["Settings"],"summary":"GET /settings","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Settings"],"summary":"PUT /settings","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/settings/branding":{"get":{"tags":["Settings"],"summary":"Get branding settings","security":[],"responses":{"200":{"description":"Branding settings"}}}},"/api/v1/testimonials":{"get":{"tags":["Testimonials"],"summary":"List testimonials","security":[],"responses":{"200":{"description":"Testimonials list"}}},"post":{"tags":["Testimonials"],"summary":"Create a testimonial","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Testimonial created"}}}},"/api/v1/testimonials/{id}":{"get":{"tags":["Testimonials"],"summary":"Get testimonial by ID","security":[],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Testimonial details"}}},"put":{"tags":["Testimonials"],"summary":"Update a testimonial","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Testimonial updated"}}},"delete":{"tags":["Testimonials"],"summary":"Delete a testimonial","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Testimonial deleted"}}}},"/api/v1/pages":{"get":{"tags":["Pages"],"summary":"GET /pages","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/admin/dashboard":{"get":{"tags":["Admin"],"summary":"GET /admin/dashboard","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/dashboard/recent-orders":{"get":{"tags":["Admin"],"summary":"GET /admin/dashboard/recent-orders","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics/sales":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics/sales","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics/top-products":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics/top-products","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics/top-categories":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics/top-categories","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics/insights":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics/insights","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics/insights/repeat-rate":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics/insights/repeat-rate","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/orders":{"get":{"tags":["Admin"],"summary":"GET /admin/orders","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/orders/{id}":{"get":{"tags":["Admin"],"summary":"GET /admin/orders/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/orders/{id}/status":{"put":{"tags":["Admin"],"summary":"Update order status (Admin)","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderStatus"}}}},"responses":{"200":{"description":"Order status updated"}}},"patch":{"tags":["Admin"],"summary":"PATCH /admin/orders/:id/status","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/orders/{id}/assign":{"post":{"tags":["Admin"],"summary":"POST /admin/orders/:id/assign","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/admin/orders/{id}/refund":{"post":{"tags":["Admin"],"summary":"POST /admin/orders/:id/refund","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/admin/products":{"get":{"tags":["Admin"],"summary":"GET /admin/products","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"post":{"tags":["Admin"],"summary":"POST /admin/products","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/admin/products/{id}":{"get":{"tags":["Admin"],"summary":"GET /admin/products/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Admin"],"summary":"PUT /admin/products/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Admin"],"summary":"DELETE /admin/products/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/products/{id}/status":{"put":{"tags":["Admin"],"summary":"Update product status (Admin)","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["active","inactive","draft"]}},"required":["status"]}}}},"responses":{"200":{"description":"Product status updated"}}},"patch":{"tags":["Admin"],"summary":"PATCH /admin/products/:id/status","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/products/{id}/feature":{"put":{"tags":["Admin"],"summary":"Toggle product featured status","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Featured toggled"}}},"patch":{"tags":["Admin"],"summary":"PATCH /admin/products/:id/feature","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/products/{id}/archive":{"put":{"tags":["Admin"],"summary":"Archive a product","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Product archived"}}},"patch":{"tags":["Admin"],"summary":"PATCH /admin/products/:id/archive","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/users":{"get":{"tags":["Admin"],"summary":"GET /admin/users","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/users/{id}":{"get":{"tags":["Admin"],"summary":"GET /admin/users/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Admin"],"summary":"PUT /admin/users/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/users/{id}/status":{"put":{"tags":["Admin"],"summary":"Update user status (Admin)","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserStatus"}}}},"responses":{"200":{"description":"User status updated"}}},"patch":{"tags":["Admin"],"summary":"PATCH /admin/users/:id/status","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/users/{id}/role":{"put":{"tags":["Admin"],"summary":"Update user role (Admin)","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRole"}}}},"responses":{"200":{"description":"User role updated"}}},"patch":{"tags":["Admin"],"summary":"PATCH /admin/users/:id/role (Admin)","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/notifications":{"get":{"tags":["Admin"],"summary":"GET /admin/notifications","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/stats":{"get":{"tags":["Admin"],"summary":"GET /admin/stats","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/system":{"get":{"tags":["Admin"],"summary":"GET /admin/system","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/system/health":{"get":{"tags":["Admin"],"summary":"GET /admin/system/health","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics/customer-growth":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics/customer-growth","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/analytics/top-categories-revenue":{"get":{"tags":["Admin"],"summary":"GET /admin/analytics/top-categories-revenue","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/insights/cities":{"get":{"tags":["Admin"],"summary":"GET /admin/insights/cities","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/insights/repeat-rate":{"get":{"tags":["Admin"],"summary":"GET /admin/insights/repeat-rate","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory/barcode/{barcode}":{"get":{"tags":["Admin"],"summary":"GET /admin/inventory/barcode/:barcode","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory/bulk-upload":{"post":{"tags":["Admin"],"summary":"POST /admin/inventory/bulk-upload","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory/expired":{"get":{"tags":["Admin"],"summary":"GET /admin/inventory/expired","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory/expiring":{"get":{"tags":["Admin"],"summary":"GET /admin/inventory/expiring","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory/expiry-report":{"get":{"tags":["Admin"],"summary":"GET /admin/inventory/expiry-report","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory/expiry-stats":{"get":{"tags":["Admin"],"summary":"GET /admin/inventory/expiry-stats","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory/low-stock":{"get":{"tags":["Admin"],"summary":"GET /admin/inventory/low-stock","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/inventory":{"get":{"tags":["Admin"],"summary":"GET /admin/inventory","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/notifications/{id}/read":{"put":{"tags":["Admin"],"summary":"PUT /admin/notifications/:id/read","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/notifications/{id}":{"delete":{"tags":["Admin"],"summary":"DELETE /admin/notifications/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/notifications/all":{"get":{"tags":["Admin"],"summary":"GET /admin/notifications/all","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/notifications/clear":{"delete":{"tags":["Admin"],"summary":"DELETE /admin/notifications/clear","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/notifications/read-all":{"put":{"tags":["Admin"],"summary":"PUT /admin/notifications/read-all","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/notifications/unread-count":{"get":{"tags":["Admin"],"summary":"GET /admin/notifications/unread-count","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/system/cache":{"delete":{"tags":["Admin"],"summary":"DELETE /admin/system/cache","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/system/feature-flags":{"get":{"tags":["Admin"],"summary":"GET /admin/system/feature-flags","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Admin"],"summary":"PUT /admin/system/feature-flags","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/admin/users/create":{"post":{"tags":["Admin"],"summary":"POST /admin/users/create","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/auth/forgot-password":{"post":{"tags":["Auth"],"summary":"POST /auth/forgot-password","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/auth/register":{"post":{"tags":["Auth"],"summary":"POST /auth/register (Admin)","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/auth/reset-password":{"post":{"tags":["Auth"],"summary":"POST /auth/reset-password","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/banners/{id}/click":{"post":{"tags":["Banners"],"summary":"POST /banners/:id/click","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/banners/track/{id}/click":{"post":{"tags":["Banners"],"summary":"POST /banners/track/:id/click","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/banners/track/{id}/view":{"post":{"tags":["Banners"],"summary":"POST /banners/track/:id/view","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/colors/{id}":{"put":{"tags":["Colors"],"summary":"PUT /colors/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Colors"],"summary":"DELETE /colors/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/colors":{"post":{"tags":["Colors"],"summary":"POST /colors","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/content/pages/{slug}":{"get":{"tags":["Content"],"summary":"GET /content/pages/:slug","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Content"],"summary":"PUT /content/pages/:slug","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/coupons/{id}/orders":{"get":{"tags":["Coupons"],"summary":"GET /coupons/:id/orders","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/coupons/{id}/usage":{"get":{"tags":["Coupons"],"summary":"GET /coupons/:id/usage","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/coupons/product/{productId}":{"get":{"tags":["Coupons"],"summary":"GET /coupons/product/:productId","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/fabrics/{id}":{"put":{"tags":["Fabrics"],"summary":"PUT /fabrics/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Fabrics"],"summary":"DELETE /fabrics/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/fabrics":{"post":{"tags":["Fabrics"],"summary":"POST /fabrics","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/inventory/adjust":{"post":{"tags":["Inventory"],"summary":"POST /inventory/adjust","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/inventory/alerts":{"get":{"tags":["Inventory"],"summary":"GET /inventory/alerts","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/inventory/convert":{"post":{"tags":["Inventory"],"summary":"POST /inventory/convert","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/inventory/dispose":{"post":{"tags":["Inventory"],"summary":"POST /inventory/dispose","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/orders/{id}/verify-payment":{"post":{"tags":["Orders"],"summary":"POST /orders/:id/verify-payment","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/orders/direct":{"post":{"tags":["Orders"],"summary":"POST /orders/direct","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/payments/export":{"get":{"tags":["Payments"],"summary":"GET /payments/export","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/payments/order/{orderId}":{"get":{"tags":["Payments"],"summary":"GET /payments/order/:orderId","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/payments/reports/failed":{"get":{"tags":["Payments"],"summary":"GET /payments/reports/failed","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/payments/reports/refunds/export":{"get":{"tags":["Payments"],"summary":"GET /payments/reports/refunds/export","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/payments/reports/refunds":{"get":{"tags":["Payments"],"summary":"GET /payments/reports/refunds","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/products/{id}/batches":{"get":{"tags":["Products"],"summary":"GET /products/:id/batches","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/products/admin/all":{"get":{"tags":["Products"],"summary":"GET /products/admin/all [validators: listProductsSchema]","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/returns/admin/{id}/status":{"put":{"tags":["Returns"],"summary":"PUT /returns/admin/:id/status","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/returns/admin/queue":{"get":{"tags":["Returns"],"summary":"GET /returns/admin/queue","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/reviews/{id}/status":{"put":{"tags":["Reviews"],"summary":"PUT /reviews/:id/status","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/reviews/admin/list":{"get":{"tags":["Reviews"],"summary":"GET /reviews/admin/list","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/reviews/admin/pending-count":{"get":{"tags":["Reviews"],"summary":"GET /reviews/admin/pending-count","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/reviews/product/{productId}":{"get":{"tags":["Reviews"],"summary":"GET /reviews/product/:productId","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/settings/contact":{"get":{"tags":["Settings"],"summary":"GET /settings/contact","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Settings"],"summary":"PUT /settings/contact","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/settings/locale":{"get":{"tags":["Settings"],"summary":"GET /settings/locale","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Settings"],"summary":"PUT /settings/locale","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/settings/manufacturers":{"get":{"tags":["Settings"],"summary":"GET /settings/manufacturers","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Settings"],"summary":"PUT /settings/manufacturers","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/settings/packaging-types":{"get":{"tags":["Settings"],"summary":"GET /settings/packaging-types","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Settings"],"summary":"PUT /settings/packaging-types","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/settings/units":{"get":{"tags":["Settings"],"summary":"GET /settings/units","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Settings"],"summary":"PUT /settings/units","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/categories/{id}":{"put":{"tags":["Support"],"summary":"PUT /support/admin/categories/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"delete":{"tags":["Support"],"summary":"DELETE /support/admin/categories/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/categories":{"get":{"tags":["Support"],"summary":"GET /support/admin/categories","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"post":{"tags":["Support"],"summary":"POST /support/admin/categories","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/queue":{"get":{"tags":["Support"],"summary":"GET /support/admin/queue","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/reports/sla":{"get":{"tags":["Support"],"summary":"GET /support/admin/reports/sla","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/reports/workload":{"get":{"tags":["Support"],"summary":"GET /support/admin/reports/workload","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/stats":{"get":{"tags":["Support"],"summary":"GET /support/admin/stats","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}/assign":{"put":{"tags":["Support"],"summary":"PUT /support/admin/tickets/:id/assign","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}/audit":{"get":{"tags":["Support"],"summary":"GET /support/admin/tickets/:id/audit","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}/close":{"put":{"tags":["Support"],"summary":"PUT /support/admin/tickets/:id/close","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}/priority":{"put":{"tags":["Support"],"summary":"PUT /support/admin/tickets/:id/priority","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}/reply":{"post":{"tags":["Support"],"summary":"POST /support/admin/tickets/:id/reply","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}/resolve":{"put":{"tags":["Support"],"summary":"PUT /support/admin/tickets/:id/resolve","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}":{"get":{"tags":["Support"],"summary":"GET /support/admin/tickets/:id","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets/{id}/status":{"put":{"tags":["Support"],"summary":"PUT /support/admin/tickets/:id/status","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/support/admin/tickets":{"get":{"tags":["Support"],"summary":"GET /support/admin/tickets","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"post":{"tags":["Support"],"summary":"POST /support/admin/tickets","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/support/tickets/{id}/reply":{"post":{"tags":["Support"],"summary":"POST /support/tickets/:id/reply","security":[{"BearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/testimonials/featured":{"get":{"tags":["Testimonials"],"summary":"GET /testimonials/featured","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/testimonials/my-testimonials":{"get":{"tags":["Testimonials"],"summary":"GET /testimonials/my-testimonials","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/upload/file-upload":{"post":{"tags":["Upload"],"summary":"POST /upload/file-upload","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/upload/profile-image":{"post":{"tags":["Upload"],"summary":"POST /upload/profile-image","responses":{"201":{"description":"Created"},"400":{"description":"Bad request"}}}},"/api/v1/users/admin/{id}/details":{"get":{"tags":["Users"],"summary":"GET /users/admin/:id/details","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/users/admin/{id}/permissions":{"get":{"tags":["Users"],"summary":"GET /users/admin/:id/permissions","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}},"put":{"tags":["Users"],"summary":"PUT /users/admin/:id/permissions","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/users/admin/{id}/status":{"put":{"tags":["Users"],"summary":"PUT /users/admin/:id/status","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/users/admin/bulk/status":{"patch":{"tags":["Users"],"summary":"PATCH /users/admin/bulk/status","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/users/admin/export":{"get":{"tags":["Users"],"summary":"GET /users/admin/export","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/users/admin/modules":{"get":{"tags":["Users"],"summary":"GET /users/admin/modules","responses":{"200":{"description":"Success"},"400":{"description":"Bad request"}}}},"/api/v1/users/profile":{"get":{"tags":["Users"],"summary":"GET /users/profile","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}},"put":{"tags":["Users"],"summary":"PUT /users/profile","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/wishlist/items/{productId}":{"delete":{"tags":["Wishlist"],"summary":"DELETE /wishlist/items/:productId","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}},"/api/v1/wishlist/items":{"post":{"tags":["Wishlist"],"summary":"POST /wishlist/items","security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Created"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}}}}}}