payaza-storefront-layouts 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -0
- package/dist/components/learning/CertificateTemplates.d.ts +25 -0
- package/dist/components/learning/CertificateTemplates.d.ts.map +1 -0
- package/dist/components/learning/CertificateTemplates.js +31 -0
- package/dist/components/learning/CertificateViewer.d.ts +11 -0
- package/dist/components/learning/CertificateViewer.d.ts.map +1 -0
- package/dist/components/learning/CertificateViewer.js +114 -0
- package/dist/components/learning/MentorshipProgress.d.ts +18 -0
- package/dist/components/learning/MentorshipProgress.d.ts.map +1 -0
- package/dist/components/learning/MentorshipProgress.js +19 -0
- package/dist/components/ui/address-selector.d.ts +11 -0
- package/dist/components/ui/address-selector.d.ts.map +1 -0
- package/dist/components/ui/address-selector.js +21 -0
- package/dist/components/ui/avatar-image.d.ts +11 -0
- package/dist/components/ui/avatar-image.d.ts.map +1 -0
- package/dist/components/ui/avatar-image.js +39 -0
- package/dist/components/ui/background-patterns.d.ts +27 -0
- package/dist/components/ui/background-patterns.d.ts.map +1 -0
- package/dist/components/ui/background-patterns.js +5 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +20 -0
- package/dist/components/ui/breadcrumbs.d.ts +11 -0
- package/dist/components/ui/breadcrumbs.d.ts.map +1 -0
- package/dist/components/ui/breadcrumbs.js +8 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +33 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +24 -0
- package/dist/components/ui/category-tree.d.ts +16 -0
- package/dist/components/ui/category-tree.d.ts.map +1 -0
- package/dist/components/ui/category-tree.js +74 -0
- package/dist/components/ui/checkout-button.d.ts +11 -0
- package/dist/components/ui/checkout-button.d.ts.map +1 -0
- package/dist/components/ui/checkout-button.js +174 -0
- package/dist/components/ui/guest-checkout-modal.d.ts +19 -0
- package/dist/components/ui/guest-checkout-modal.d.ts.map +1 -0
- package/dist/components/ui/guest-checkout-modal.js +92 -0
- package/dist/components/ui/image-skeleton.d.ts +7 -0
- package/dist/components/ui/image-skeleton.d.ts.map +1 -0
- package/dist/components/ui/image-skeleton.js +15 -0
- package/dist/components/ui/image-with-fallback.d.ts +9 -0
- package/dist/components/ui/image-with-fallback.d.ts.map +1 -0
- package/dist/components/ui/image-with-fallback.js +203 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +8 -0
- package/dist/components/ui/loading-skeleton-wrapper.d.ts +6 -0
- package/dist/components/ui/loading-skeleton-wrapper.d.ts.map +1 -0
- package/dist/components/ui/loading-skeleton-wrapper.js +10 -0
- package/dist/components/ui/modal.d.ts +11 -0
- package/dist/components/ui/modal.d.ts.map +1 -0
- package/dist/components/ui/modal.js +26 -0
- package/dist/components/ui/otp-input.d.ts +10 -0
- package/dist/components/ui/otp-input.d.ts.map +1 -0
- package/dist/components/ui/otp-input.js +57 -0
- package/dist/components/ui/out-of-stock-overlay.d.ts +8 -0
- package/dist/components/ui/out-of-stock-overlay.d.ts.map +1 -0
- package/dist/components/ui/out-of-stock-overlay.js +12 -0
- package/dist/components/ui/page-animate-wrapper.d.ts +7 -0
- package/dist/components/ui/page-animate-wrapper.d.ts.map +1 -0
- package/dist/components/ui/page-animate-wrapper.js +16 -0
- package/dist/components/ui/page-content-loader.d.ts +13 -0
- package/dist/components/ui/page-content-loader.d.ts.map +1 -0
- package/dist/components/ui/page-content-loader.js +12 -0
- package/dist/components/ui/page-loader.d.ts +20 -0
- package/dist/components/ui/page-loader.d.ts.map +1 -0
- package/dist/components/ui/page-loader.js +31 -0
- package/dist/components/ui/product-card.d.ts +11 -0
- package/dist/components/ui/product-card.d.ts.map +1 -0
- package/dist/components/ui/product-card.js +95 -0
- package/dist/components/ui/product-rating.d.ts +17 -0
- package/dist/components/ui/product-rating.d.ts.map +1 -0
- package/dist/components/ui/product-rating.js +54 -0
- package/dist/components/ui/review-form.d.ts +9 -0
- package/dist/components/ui/review-form.d.ts.map +1 -0
- package/dist/components/ui/review-form.js +28 -0
- package/dist/components/ui/route-skeleton-loader.d.ts +7 -0
- package/dist/components/ui/route-skeleton-loader.d.ts.map +1 -0
- package/dist/components/ui/route-skeleton-loader.js +75 -0
- package/dist/components/ui/sheet.d.ts +12 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +29 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +6 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts +6 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/category-grid-skeleton.js +16 -0
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/checkout-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/checkout-skeleton.js +4 -0
- package/dist/components/ui/skeletons/index.d.ts +6 -0
- package/dist/components/ui/skeletons/index.d.ts.map +1 -0
- package/dist/components/ui/skeletons/index.js +5 -0
- package/dist/components/ui/skeletons/page-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/page-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/page-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/product-card-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-card-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts +2 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-detail-skeleton.js +4 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts +7 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeletons/product-grid-skeleton.js +12 -0
- package/dist/components/ui/store-logos.d.ts +43 -0
- package/dist/components/ui/store-logos.d.ts.map +1 -0
- package/dist/components/ui/store-logos.js +83 -0
- package/dist/components/ui/toast.d.ts +19 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +33 -0
- package/dist/components/ui/video-player.d.ts +48 -0
- package/dist/components/ui/video-player.d.ts.map +1 -0
- package/dist/components/ui/video-player.js +96 -0
- package/dist/hooks/use-analytics.d.ts +14 -0
- package/dist/hooks/use-analytics.d.ts.map +1 -0
- package/dist/hooks/use-analytics.js +66 -0
- package/dist/hooks/use-api.d.ts +17 -0
- package/dist/hooks/use-api.d.ts.map +1 -0
- package/dist/hooks/use-api.js +53 -0
- package/dist/hooks/use-cart-api.d.ts +17 -0
- package/dist/hooks/use-cart-api.d.ts.map +1 -0
- package/dist/hooks/use-cart-api.js +134 -0
- package/dist/hooks/use-content-ready.d.ts +17 -0
- package/dist/hooks/use-content-ready.d.ts.map +1 -0
- package/dist/hooks/use-content-ready.js +197 -0
- package/dist/hooks/use-navigation-loading.d.ts +4 -0
- package/dist/hooks/use-navigation-loading.d.ts.map +1 -0
- package/dist/hooks/use-navigation-loading.js +14 -0
- package/dist/hooks/use-payaza-checkout.d.ts +14 -0
- package/dist/hooks/use-payaza-checkout.d.ts.map +1 -0
- package/dist/hooks/use-payaza-checkout.js +56 -0
- package/dist/hooks/use-products-api.d.ts +19 -0
- package/dist/hooks/use-products-api.d.ts.map +1 -0
- package/dist/hooks/use-products-api.js +84 -0
- package/dist/hooks/use-store-api.d.ts +12 -0
- package/dist/hooks/use-store-api.d.ts.map +1 -0
- package/dist/hooks/use-store-api.js +73 -0
- package/dist/index.d.ts +116 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -0
- package/dist/json/booking-agenda.json +18 -0
- package/dist/json/booking.json +71 -0
- package/dist/json/clothing-minimal.json +26 -0
- package/dist/json/clothing.json +169 -0
- package/dist/json/electronics-grid.json +18 -0
- package/dist/json/electronics.json +50 -0
- package/dist/json/food-modern.json +38 -0
- package/dist/json/food.json +85 -0
- package/dist/json/json-map.d.ts +7 -0
- package/dist/json/json-map.d.ts.map +1 -0
- package/dist/json/json-map.js +36 -0
- package/dist/json/motivational-speaker.json +96 -0
- package/dist/layouts/booking/components/BookingHomePage.d.ts +7 -0
- package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -0
- package/dist/layouts/booking/components/BookingHomePage.js +49 -0
- package/dist/layouts/booking/index.d.ts +9 -0
- package/dist/layouts/booking/index.d.ts.map +1 -0
- package/dist/layouts/booking/index.js +9 -0
- package/dist/layouts/booking/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/AboutPage.js +45 -0
- package/dist/layouts/booking/pages/BookPage.d.ts +8 -0
- package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/BookPage.js +441 -0
- package/dist/layouts/booking/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/booking/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/CategoriesPage.js +162 -0
- package/dist/layouts/booking/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/CategoryPage.js +67 -0
- package/dist/layouts/booking/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ContactPage.js +20 -0
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/booking/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/booking/pages/ServicesPage.js +31 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts +7 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +186 -0
- package/dist/layouts/booking-agenda/index.d.ts +9 -0
- package/dist/layouts/booking-agenda/index.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/index.js +9 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/AboutPage.js +45 -0
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/BookPage.js +441 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/CategoriesPage.js +162 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/CategoryPage.js +67 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ContactPage.js +20 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/booking-agenda/pages/ServicesPage.js +31 -0
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts +7 -0
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -0
- package/dist/layouts/clothing/components/ClothingHomePage.js +295 -0
- package/dist/layouts/clothing/index.d.ts +8 -0
- package/dist/layouts/clothing/index.d.ts.map +1 -0
- package/dist/layouts/clothing/index.js +8 -0
- package/dist/layouts/clothing/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/AboutPage.js +45 -0
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/CategoriesPage.js +162 -0
- package/dist/layouts/clothing/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/CategoryPage.js +67 -0
- package/dist/layouts/clothing/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ContactPage.js +20 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/clothing/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/clothing/pages/ProductsPage.js +297 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts +7 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +48 -0
- package/dist/layouts/clothing-minimal/index.d.ts +8 -0
- package/dist/layouts/clothing-minimal/index.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/index.js +8 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/AboutPage.js +45 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +162 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/CategoryPage.js +67 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ContactPage.js +20 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/clothing-minimal/pages/ProductsPage.js +297 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +34 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts +10 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +107 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsHomePage.js +78 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts +8 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +10 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsProductsPage.js +100 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +10 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts +7 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts.map +1 -0
- package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +27 -0
- package/dist/layouts/electronics/index.d.ts +19 -0
- package/dist/layouts/electronics/index.d.ts.map +1 -0
- package/dist/layouts/electronics/index.js +19 -0
- package/dist/layouts/electronics/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/AboutPage.js +45 -0
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/CategoriesPage.js +6 -0
- package/dist/layouts/electronics/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/CategoryPage.js +67 -0
- package/dist/layouts/electronics/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ContactPage.js +20 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +8 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/electronics/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ProductsPage.js +297 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/electronics/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/TermsPage.js +8 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/electronics/pages/TrackOrderPage.js +371 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts +10 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +107 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts +7 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +89 -0
- package/dist/layouts/electronics-grid/index.d.ts +15 -0
- package/dist/layouts/electronics-grid/index.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/index.js +15 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/AboutPage.js +45 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/CategoriesPage.js +6 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/CategoryPage.js +67 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ContactPage.js +20 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +15 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +8 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ProductsPage.js +297 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/TermsPage.js +8 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +371 -0
- package/dist/layouts/food/components/FoodHomePage.d.ts +7 -0
- package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -0
- package/dist/layouts/food/components/FoodHomePage.js +304 -0
- package/dist/layouts/food/index.d.ts +9 -0
- package/dist/layouts/food/index.d.ts.map +1 -0
- package/dist/layouts/food/index.js +9 -0
- package/dist/layouts/food/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/AboutPage.js +45 -0
- package/dist/layouts/food/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/food/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/CategoriesPage.js +162 -0
- package/dist/layouts/food/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/CategoryPage.js +67 -0
- package/dist/layouts/food/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ContactPage.js +20 -0
- package/dist/layouts/food/pages/MenuPage.d.ts +8 -0
- package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/MenuPage.js +75 -0
- package/dist/layouts/food/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/food/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/food/pages/ProductsPage.js +297 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts +7 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -0
- package/dist/layouts/food-modern/components/FoodHomePageModern.js +118 -0
- package/dist/layouts/food-modern/index.d.ts +9 -0
- package/dist/layouts/food-modern/index.d.ts.map +1 -0
- package/dist/layouts/food-modern/index.js +9 -0
- package/dist/layouts/food-modern/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/AboutPage.js +45 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/CategoriesPage.js +162 -0
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/CategoryPage.js +67 -0
- package/dist/layouts/food-modern/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ContactPage.js +20 -0
- package/dist/layouts/food-modern/pages/MenuPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/MenuPage.js +75 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +8 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ProductDetailPage.js +502 -0
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/food-modern/pages/ProductsPage.js +297 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +115 -0
- package/dist/layouts/motivational-speaker/components/MotivationalPageWrapper.d.ts +8 -0
- package/dist/layouts/motivational-speaker/components/MotivationalPageWrapper.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/components/MotivationalPageWrapper.js +10 -0
- package/dist/layouts/motivational-speaker/index.d.ts +10 -0
- package/dist/layouts/motivational-speaker/index.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/index.js +10 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/AboutPage.js +45 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +8 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/CategoryPage.js +67 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ContactPage.js +20 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ProductsPage.js +297 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +8 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +144 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +9 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/ServicesPage.js +31 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts +7 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts.map +1 -0
- package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +136 -0
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts +8 -0
- package/dist/layouts/shared/components/BaseStoreLayout.d.ts.map +1 -0
- package/dist/layouts/shared/components/BaseStoreLayout.js +59 -0
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts +8 -0
- package/dist/layouts/shared/components/GenericPageWrapper.d.ts.map +1 -0
- package/dist/layouts/shared/components/GenericPageWrapper.js +19 -0
- package/dist/layouts/shared/components/PromoBanner.d.ts +9 -0
- package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -0
- package/dist/layouts/shared/components/PromoBanner.js +14 -0
- package/dist/layouts/shared/components/StoreFooter.d.ts +7 -0
- package/dist/layouts/shared/components/StoreFooter.d.ts.map +1 -0
- package/dist/layouts/shared/components/StoreFooter.js +147 -0
- package/dist/layouts/shared/components/StoreHeader.d.ts +8 -0
- package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -0
- package/dist/layouts/shared/components/StoreHeader.js +87 -0
- package/dist/layouts/shared/components/TestimonialCard.d.ts +8 -0
- package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -0
- package/dist/layouts/shared/components/TestimonialCard.js +10 -0
- package/dist/layouts/shared/index.d.ts +23 -0
- package/dist/layouts/shared/index.d.ts.map +1 -0
- package/dist/layouts/shared/index.js +23 -0
- package/dist/layouts/shared/pages/AccountPage.d.ts +7 -0
- package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/AccountPage.js +605 -0
- package/dist/layouts/shared/pages/CartPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CartPage.js +83 -0
- package/dist/layouts/shared/pages/CheckoutPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CheckoutPage.js +860 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts +7 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/CookiePolicyPage.js +8 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts +9 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/FeatureDisabledPage.js +8 -0
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts +7 -0
- package/dist/layouts/shared/pages/HelpCenterPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/HelpCenterPage.js +55 -0
- package/dist/layouts/shared/pages/MaintenancePage.d.ts +7 -0
- package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/MaintenancePage.js +44 -0
- package/dist/layouts/shared/pages/PortfolioPage.d.ts +7 -0
- package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/PortfolioPage.js +130 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts +7 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/PrivacyPolicyPage.js +8 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts +7 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/ShippingReturnsPage.js +7 -0
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts +7 -0
- package/dist/layouts/shared/pages/SizeGuidePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/SizeGuidePage.js +10 -0
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts +7 -0
- package/dist/layouts/shared/pages/StyleGuidePage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/StyleGuidePage.js +126 -0
- package/dist/layouts/shared/pages/TeamPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TeamPage.js +39 -0
- package/dist/layouts/shared/pages/TermsPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TermsPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TermsPage.js +8 -0
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts +7 -0
- package/dist/layouts/shared/pages/TrackOrderPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/TrackOrderPage.js +371 -0
- package/dist/layouts/shared/pages/WishlistPage.d.ts +7 -0
- package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -0
- package/dist/layouts/shared/pages/WishlistPage.js +162 -0
- package/dist/lib/api.d.ts +8 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +109 -0
- package/dist/lib/auth-context.d.ts +30 -0
- package/dist/lib/auth-context.d.ts.map +1 -0
- package/dist/lib/auth-context.js +207 -0
- package/dist/lib/content-selectors.d.ts +21 -0
- package/dist/lib/content-selectors.d.ts.map +1 -0
- package/dist/lib/content-selectors.js +75 -0
- package/dist/lib/countries.d.ts +11 -0
- package/dist/lib/countries.d.ts.map +1 -0
- package/dist/lib/countries.js +252 -0
- package/dist/lib/currency-symbols.d.ts +36 -0
- package/dist/lib/currency-symbols.d.ts.map +1 -0
- package/dist/lib/currency-symbols.js +153 -0
- package/dist/lib/guest-user.d.ts +27 -0
- package/dist/lib/guest-user.d.ts.map +1 -0
- package/dist/lib/guest-user.js +71 -0
- package/dist/lib/loading-context.d.ts +19 -0
- package/dist/lib/loading-context.d.ts.map +1 -0
- package/dist/lib/loading-context.js +197 -0
- package/dist/lib/mock-stores.d.ts +22 -0
- package/dist/lib/mock-stores.d.ts.map +1 -0
- package/dist/lib/mock-stores.js +2099 -0
- package/dist/lib/payaza-checkout.d.ts +167 -0
- package/dist/lib/payaza-checkout.d.ts.map +1 -0
- package/dist/lib/payaza-checkout.js +455 -0
- package/dist/lib/services/analytics.service.d.ts +58 -0
- package/dist/lib/services/analytics.service.d.ts.map +1 -0
- package/dist/lib/services/analytics.service.js +182 -0
- package/dist/lib/services/auth.service.d.ts +63 -0
- package/dist/lib/services/auth.service.d.ts.map +1 -0
- package/dist/lib/services/auth.service.js +101 -0
- package/dist/lib/services/booking.service.d.ts +53 -0
- package/dist/lib/services/booking.service.d.ts.map +1 -0
- package/dist/lib/services/booking.service.js +52 -0
- package/dist/lib/services/cart.service.d.ts +37 -0
- package/dist/lib/services/cart.service.d.ts.map +1 -0
- package/dist/lib/services/cart.service.js +55 -0
- package/dist/lib/services/category.service.d.ts +21 -0
- package/dist/lib/services/category.service.d.ts.map +1 -0
- package/dist/lib/services/category.service.js +41 -0
- package/dist/lib/services/checkout.service.d.ts +79 -0
- package/dist/lib/services/checkout.service.d.ts.map +1 -0
- package/dist/lib/services/checkout.service.js +37 -0
- package/dist/lib/services/customer.service.d.ts +52 -0
- package/dist/lib/services/customer.service.d.ts.map +1 -0
- package/dist/lib/services/customer.service.js +64 -0
- package/dist/lib/services/fees.service.d.ts +23 -0
- package/dist/lib/services/fees.service.d.ts.map +1 -0
- package/dist/lib/services/fees.service.js +13 -0
- package/dist/lib/services/index.d.ts +19 -0
- package/dist/lib/services/index.d.ts.map +1 -0
- package/dist/lib/services/index.js +18 -0
- package/dist/lib/services/order.service.d.ts +107 -0
- package/dist/lib/services/order.service.d.ts.map +1 -0
- package/dist/lib/services/order.service.js +82 -0
- package/dist/lib/services/payment.service.d.ts +51 -0
- package/dist/lib/services/payment.service.d.ts.map +1 -0
- package/dist/lib/services/payment.service.js +105 -0
- package/dist/lib/services/product.service.d.ts +90 -0
- package/dist/lib/services/product.service.d.ts.map +1 -0
- package/dist/lib/services/product.service.js +86 -0
- package/dist/lib/services/promo.service.d.ts +31 -0
- package/dist/lib/services/promo.service.d.ts.map +1 -0
- package/dist/lib/services/promo.service.js +29 -0
- package/dist/lib/services/review.service.d.ts +47 -0
- package/dist/lib/services/review.service.d.ts.map +1 -0
- package/dist/lib/services/review.service.js +54 -0
- package/dist/lib/services/service.service.d.ts +55 -0
- package/dist/lib/services/service.service.d.ts.map +1 -0
- package/dist/lib/services/service.service.js +37 -0
- package/dist/lib/services/shipping.service.d.ts +44 -0
- package/dist/lib/services/shipping.service.d.ts.map +1 -0
- package/dist/lib/services/shipping.service.js +23 -0
- package/dist/lib/services/store.service.d.ts +87 -0
- package/dist/lib/services/store.service.d.ts.map +1 -0
- package/dist/lib/services/store.service.js +41 -0
- package/dist/lib/services/wishlist.service.d.ts +30 -0
- package/dist/lib/services/wishlist.service.d.ts.map +1 -0
- package/dist/lib/services/wishlist.service.js +53 -0
- package/dist/lib/store-config-utils.d.ts +41 -0
- package/dist/lib/store-config-utils.d.ts.map +1 -0
- package/dist/lib/store-config-utils.js +1535 -0
- package/dist/lib/store-config.d.ts +3 -0
- package/dist/lib/store-config.d.ts.map +1 -0
- package/dist/lib/store-config.js +2 -0
- package/dist/lib/store-context.d.ts +39 -0
- package/dist/lib/store-context.d.ts.map +1 -0
- package/dist/lib/store-context.js +803 -0
- package/dist/lib/store-types.d.ts +663 -0
- package/dist/lib/store-types.d.ts.map +1 -0
- package/dist/lib/store-types.js +1 -0
- package/dist/lib/utils/asset-helpers.d.ts +102 -0
- package/dist/lib/utils/asset-helpers.d.ts.map +1 -0
- package/dist/lib/utils/asset-helpers.js +395 -0
- package/dist/lib/utils/category-tree.d.ts +25 -0
- package/dist/lib/utils/category-tree.d.ts.map +1 -0
- package/dist/lib/utils/category-tree.js +85 -0
- package/dist/lib/utils/demo-detection.d.ts +23 -0
- package/dist/lib/utils/demo-detection.d.ts.map +1 -0
- package/dist/lib/utils/demo-detection.js +36 -0
- package/dist/lib/utils/fee-calculations.d.ts +35 -0
- package/dist/lib/utils/fee-calculations.d.ts.map +1 -0
- package/dist/lib/utils/fee-calculations.js +64 -0
- package/dist/lib/utils/index.d.ts +37 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +160 -0
- package/dist/lib/utils/url-helpers.d.ts +30 -0
- package/dist/lib/utils/url-helpers.d.ts.map +1 -0
- package/dist/lib/utils/url-helpers.js +56 -0
- package/dist/lib/utils/video-helpers.d.ts +32 -0
- package/dist/lib/utils/video-helpers.d.ts.map +1 -0
- package/dist/lib/utils/video-helpers.js +210 -0
- package/package.json +92 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { api } from '../api';
|
|
2
|
+
export const paymentService = {
|
|
3
|
+
/**
|
|
4
|
+
* Verify payment status with backend
|
|
5
|
+
* This ensures the payment is legitimate before showing success to user
|
|
6
|
+
*/
|
|
7
|
+
async verifyPayment(transactionRef, storeId) {
|
|
8
|
+
try {
|
|
9
|
+
const response = await api.post('/payments/verify', {
|
|
10
|
+
transactionRef,
|
|
11
|
+
storeId,
|
|
12
|
+
});
|
|
13
|
+
if (response.data.status === 'success') {
|
|
14
|
+
return response.data.data;
|
|
15
|
+
}
|
|
16
|
+
throw new Error(response.data.message || 'Payment verification failed');
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error('Payment verification error:', error);
|
|
20
|
+
return {
|
|
21
|
+
verified: false,
|
|
22
|
+
paymentStatus: 'pending',
|
|
23
|
+
message: error.message || 'Failed to verify payment',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Confirm payment from Payaza callback data
|
|
29
|
+
* This processes the payment, updates order status, and triggers order processing
|
|
30
|
+
*/
|
|
31
|
+
async confirmPaymentFromCallback(callbackData) {
|
|
32
|
+
try {
|
|
33
|
+
const response = await api.post('/payments/confirm-callback', callbackData);
|
|
34
|
+
if (response.data.status === 'success') {
|
|
35
|
+
return response.data.data;
|
|
36
|
+
}
|
|
37
|
+
throw new Error(response.data.message || 'Payment confirmation failed');
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error('Payment confirmation error:', error);
|
|
41
|
+
throw new Error(error.message || 'Failed to confirm payment');
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* Confirm payment from transaction reference (fallback method)
|
|
46
|
+
* Used when SDK callback fails but payment was successful
|
|
47
|
+
* This processes the payment, updates order status, and triggers order processing
|
|
48
|
+
*/
|
|
49
|
+
async confirmPaymentFromReference(transactionRef, storeId) {
|
|
50
|
+
try {
|
|
51
|
+
const response = await api.post('/payments/confirm-reference', {
|
|
52
|
+
transactionRef,
|
|
53
|
+
storeId,
|
|
54
|
+
});
|
|
55
|
+
if (response.data.status === 'success') {
|
|
56
|
+
return response.data.data;
|
|
57
|
+
}
|
|
58
|
+
throw new Error(response.data.message || 'Payment confirmation failed');
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error('Payment confirmation from reference error:', error);
|
|
62
|
+
throw new Error(error.message || 'Failed to confirm payment');
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* Poll payment status until it's completed or timeout
|
|
67
|
+
* Used when SDK callback fires to check if webhook already processed payment
|
|
68
|
+
*/
|
|
69
|
+
async pollPaymentStatus(transactionRef, storeId, options = {}) {
|
|
70
|
+
const maxAttempts = options.maxAttempts || 10;
|
|
71
|
+
const intervalMs = options.intervalMs || 1500; // Poll every 1.5 seconds
|
|
72
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
73
|
+
if (options.onProgress) {
|
|
74
|
+
options.onProgress(attempt, maxAttempts);
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const verification = await this.verifyPayment(transactionRef, storeId);
|
|
78
|
+
// If payment is completed, return immediately
|
|
79
|
+
if (verification.verified && verification.paymentStatus === 'completed') {
|
|
80
|
+
return verification;
|
|
81
|
+
}
|
|
82
|
+
// If webhook is processing, continue polling
|
|
83
|
+
if (verification.webhookProcessing) {
|
|
84
|
+
// Wait before next poll
|
|
85
|
+
await new Promise(resolve => setTimeout(resolve, intervalMs));
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
// If payment is still pending and no webhook processing, wait and continue
|
|
89
|
+
if (verification.paymentStatus === 'pending') {
|
|
90
|
+
await new Promise(resolve => setTimeout(resolve, intervalMs));
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
// Payment is in a final state (failed, etc.), return it
|
|
94
|
+
return verification;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error(`[PaymentPolling] Attempt ${attempt} failed:`, error);
|
|
98
|
+
// Wait before retrying
|
|
99
|
+
await new Promise(resolve => setTimeout(resolve, intervalMs));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Timeout - return null to indicate polling didn't find completed payment
|
|
103
|
+
return null;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export interface Product {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
slug: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
price: number;
|
|
7
|
+
compareAtPrice?: number;
|
|
8
|
+
images: Array<{
|
|
9
|
+
url: string;
|
|
10
|
+
isPrimary?: boolean;
|
|
11
|
+
}> | string[];
|
|
12
|
+
isActive: boolean;
|
|
13
|
+
isFeatured: boolean;
|
|
14
|
+
status?: 'active' | 'inactive' | 'draft';
|
|
15
|
+
productType: 'food' | 'retail' | 'service' | 'mixed';
|
|
16
|
+
currency: string;
|
|
17
|
+
storeId: string;
|
|
18
|
+
categoryId?: string;
|
|
19
|
+
subcategoryId?: string;
|
|
20
|
+
subcategory?: any;
|
|
21
|
+
locationId?: string;
|
|
22
|
+
location?: any;
|
|
23
|
+
sku?: string;
|
|
24
|
+
barcode?: string;
|
|
25
|
+
stock?: number;
|
|
26
|
+
rating?: number;
|
|
27
|
+
brand?: string;
|
|
28
|
+
trackInventory?: boolean;
|
|
29
|
+
lowStockThreshold?: number;
|
|
30
|
+
variations?: any[];
|
|
31
|
+
inventory?: any[];
|
|
32
|
+
metadata?: Record<string, any>;
|
|
33
|
+
merchantId?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ProductListParams {
|
|
36
|
+
storeId: string;
|
|
37
|
+
categoryId?: string;
|
|
38
|
+
locationId?: string;
|
|
39
|
+
productType?: string;
|
|
40
|
+
checkoutType?: string;
|
|
41
|
+
search?: string;
|
|
42
|
+
minPrice?: number;
|
|
43
|
+
maxPrice?: number;
|
|
44
|
+
brand?: string;
|
|
45
|
+
rating?: number;
|
|
46
|
+
inStock?: boolean;
|
|
47
|
+
sortBy?: 'featured' | 'price-asc' | 'price-desc' | 'newest' | 'rating';
|
|
48
|
+
sortOrder?: 'ASC' | 'DESC';
|
|
49
|
+
page?: number;
|
|
50
|
+
limit?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface PaginatedResponse<T> {
|
|
53
|
+
data: T[];
|
|
54
|
+
meta: {
|
|
55
|
+
page: number;
|
|
56
|
+
limit: number;
|
|
57
|
+
total: number;
|
|
58
|
+
totalPages: number;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export declare const productService: {
|
|
62
|
+
/**
|
|
63
|
+
* Get products with filtering, sorting, and pagination
|
|
64
|
+
*/
|
|
65
|
+
getProducts(params: ProductListParams): Promise<PaginatedResponse<Product>>;
|
|
66
|
+
/**
|
|
67
|
+
* Get product by ID
|
|
68
|
+
*/
|
|
69
|
+
getProductById(id: string): Promise<Product>;
|
|
70
|
+
/**
|
|
71
|
+
* Get product by slug
|
|
72
|
+
*/
|
|
73
|
+
getProductBySlug(slug: string, storeId: string): Promise<{
|
|
74
|
+
product: Product;
|
|
75
|
+
relatedProducts: Product[];
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Get related products
|
|
79
|
+
*/
|
|
80
|
+
getRelatedProducts(productId: string, limit?: number): Promise<Product[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Get trending products
|
|
83
|
+
*/
|
|
84
|
+
getTrendingProducts(storeId: string, limit?: number): Promise<Product[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Get featured products
|
|
87
|
+
*/
|
|
88
|
+
getFeaturedProducts(storeId: string, limit?: number): Promise<Product[]>;
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=product.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/product.service.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,MAAM,EAAE,CAAC;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACzC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvE,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,eAAO,MAAM,cAAc;IACzB;;OAEG;wBACuB,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAwBjF;;OAEG;uBACsB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlD;;OAEG;2BAC0B,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAWhH;;OAEG;kCACiC,MAAM,UAAS,MAAM,GAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAUlF;;OAEG;iCACgC,MAAM,UAAS,MAAM,GAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;IAUlF;;OAEG;iCACgC,MAAM,UAAS,MAAM,GAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;CASnF,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { api } from '../api';
|
|
2
|
+
export const productService = {
|
|
3
|
+
/**
|
|
4
|
+
* Get products with filtering, sorting, and pagination
|
|
5
|
+
*/
|
|
6
|
+
async getProducts(params) {
|
|
7
|
+
try {
|
|
8
|
+
console.log(`[ProductService] Fetching products with params:`, { storeId: params.storeId, limit: params.limit });
|
|
9
|
+
const response = await api.get('/products', { params });
|
|
10
|
+
if (response.data.status === 'success') {
|
|
11
|
+
console.log(`[ProductService] Successfully fetched ${response.data.data.length} products (total: ${response.data.meta?.total || 0})`);
|
|
12
|
+
return {
|
|
13
|
+
data: response.data.data,
|
|
14
|
+
meta: response.data.meta || { page: 1, limit: 20, total: 0, totalPages: 0 },
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
throw new Error(response.data.message || 'Failed to fetch products');
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
console.error('[ProductService] Error fetching products:', {
|
|
21
|
+
params,
|
|
22
|
+
message: error.message,
|
|
23
|
+
status: error.status,
|
|
24
|
+
response: error.response?.data,
|
|
25
|
+
url: error.config?.url,
|
|
26
|
+
});
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Get product by ID
|
|
32
|
+
*/
|
|
33
|
+
async getProductById(id) {
|
|
34
|
+
const response = await api.get(`/products/${id}`);
|
|
35
|
+
if (response.data.status === 'success') {
|
|
36
|
+
return response.data.data;
|
|
37
|
+
}
|
|
38
|
+
throw new Error(response.data.message || 'Failed to fetch product');
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Get product by slug
|
|
42
|
+
*/
|
|
43
|
+
async getProductBySlug(slug, storeId) {
|
|
44
|
+
const response = await api.get(`/products/slug/${slug}`, { params: { storeId } });
|
|
45
|
+
if (response.data.status === 'success') {
|
|
46
|
+
return response.data.data;
|
|
47
|
+
}
|
|
48
|
+
throw new Error(response.data.message || 'Failed to fetch product');
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* Get related products
|
|
52
|
+
*/
|
|
53
|
+
async getRelatedProducts(productId, limit = 4) {
|
|
54
|
+
const response = await api.get(`/products/${productId}/related`, {
|
|
55
|
+
params: { limit },
|
|
56
|
+
});
|
|
57
|
+
if (response.data.status === 'success') {
|
|
58
|
+
return response.data.data;
|
|
59
|
+
}
|
|
60
|
+
throw new Error(response.data.message || 'Failed to fetch related products');
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* Get trending products
|
|
64
|
+
*/
|
|
65
|
+
async getTrendingProducts(storeId, limit = 10) {
|
|
66
|
+
const response = await api.get('/products/trending', {
|
|
67
|
+
params: { storeId, limit },
|
|
68
|
+
});
|
|
69
|
+
if (response.data.status === 'success') {
|
|
70
|
+
return response.data.data;
|
|
71
|
+
}
|
|
72
|
+
throw new Error(response.data.message || 'Failed to fetch trending products');
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* Get featured products
|
|
76
|
+
*/
|
|
77
|
+
async getFeaturedProducts(storeId, limit = 10) {
|
|
78
|
+
const response = await api.get('/products/featured', {
|
|
79
|
+
params: { storeId, limit },
|
|
80
|
+
});
|
|
81
|
+
if (response.data.status === 'success') {
|
|
82
|
+
return response.data.data;
|
|
83
|
+
}
|
|
84
|
+
throw new Error(response.data.message || 'Failed to fetch featured products');
|
|
85
|
+
},
|
|
86
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface PromoValidation {
|
|
2
|
+
valid: boolean;
|
|
3
|
+
code: string;
|
|
4
|
+
type: string;
|
|
5
|
+
discountValue: number;
|
|
6
|
+
discount: number;
|
|
7
|
+
description?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface Promo {
|
|
10
|
+
id: string;
|
|
11
|
+
code: string;
|
|
12
|
+
type: string;
|
|
13
|
+
discountValue: number;
|
|
14
|
+
minimumPurchase?: number;
|
|
15
|
+
maximumDiscount?: number;
|
|
16
|
+
status: string;
|
|
17
|
+
startDate?: string;
|
|
18
|
+
endDate?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const promoService: {
|
|
22
|
+
/**
|
|
23
|
+
* Validate a promo code
|
|
24
|
+
*/
|
|
25
|
+
validatePromo(code: string, storeId: string, amount?: number): Promise<PromoValidation>;
|
|
26
|
+
/**
|
|
27
|
+
* Get active promo codes for a store
|
|
28
|
+
*/
|
|
29
|
+
getActivePromos(storeId: string): Promise<Promo[]>;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=promo.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promo.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/promo.service.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY;IACvB;;OAEG;wBACuB,MAAM,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAY7F;;OAEG;6BAC4B,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CASzD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { api } from '../api';
|
|
2
|
+
export const promoService = {
|
|
3
|
+
/**
|
|
4
|
+
* Validate a promo code
|
|
5
|
+
*/
|
|
6
|
+
async validatePromo(code, storeId, amount) {
|
|
7
|
+
const response = await api.post('/promos/validate', {
|
|
8
|
+
code,
|
|
9
|
+
storeId,
|
|
10
|
+
amount,
|
|
11
|
+
});
|
|
12
|
+
if (response.data.status === 'success') {
|
|
13
|
+
return response.data.data;
|
|
14
|
+
}
|
|
15
|
+
throw new Error(response.data.message || 'Invalid promo code');
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* Get active promo codes for a store
|
|
19
|
+
*/
|
|
20
|
+
async getActivePromos(storeId) {
|
|
21
|
+
const response = await api.get('/promos', {
|
|
22
|
+
params: { storeId },
|
|
23
|
+
});
|
|
24
|
+
if (response.data.status === 'success') {
|
|
25
|
+
return response.data.data;
|
|
26
|
+
}
|
|
27
|
+
throw new Error(response.data.message || 'Failed to fetch promos');
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface Review {
|
|
2
|
+
id: string;
|
|
3
|
+
rating: number;
|
|
4
|
+
comment?: string;
|
|
5
|
+
isVerified: boolean;
|
|
6
|
+
productId: string;
|
|
7
|
+
customerId: string;
|
|
8
|
+
customer?: any;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
}
|
|
11
|
+
export interface CreateReviewDto {
|
|
12
|
+
rating: number;
|
|
13
|
+
comment?: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface PaginatedReviews {
|
|
17
|
+
data: Review[];
|
|
18
|
+
meta: {
|
|
19
|
+
page: number;
|
|
20
|
+
limit: number;
|
|
21
|
+
total: number;
|
|
22
|
+
totalPages: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export declare const reviewService: {
|
|
26
|
+
/**
|
|
27
|
+
* Get product reviews
|
|
28
|
+
*/
|
|
29
|
+
getProductReviews(productId: string, page?: number, limit?: number): Promise<PaginatedReviews>;
|
|
30
|
+
/**
|
|
31
|
+
* Create a review (requires authentication)
|
|
32
|
+
*/
|
|
33
|
+
createReview(productId: string, data: CreateReviewDto): Promise<Review>;
|
|
34
|
+
/**
|
|
35
|
+
* Update a review (requires authentication, owner only)
|
|
36
|
+
*/
|
|
37
|
+
updateReview(productId: string, reviewId: string, data: Partial<CreateReviewDto>): Promise<Review>;
|
|
38
|
+
/**
|
|
39
|
+
* Delete a review (requires authentication, owner only)
|
|
40
|
+
*/
|
|
41
|
+
deleteReview(productId: string, reviewId: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Mark review as helpful (requires authentication)
|
|
44
|
+
*/
|
|
45
|
+
markHelpful(productId: string, reviewId: string): Promise<void>;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=review.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/review.service.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,eAAO,MAAM,aAAa;IACxB;;OAEG;iCACgC,MAAM,SAAQ,MAAM,UAAa,MAAM,GAAQ,OAAO,CAAC,gBAAgB,CAAC;IAc3G;;OAEG;4BAC2B,MAAM,QAAQ,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7E;;OAEG;4BAC2B,MAAM,YAAY,MAAM,QAAQ,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxG;;OAEG;4BAC2B,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtE;;OAEG;2BAC0B,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMtE,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { api } from '../api';
|
|
2
|
+
export const reviewService = {
|
|
3
|
+
/**
|
|
4
|
+
* Get product reviews
|
|
5
|
+
*/
|
|
6
|
+
async getProductReviews(productId, page = 1, limit = 10) {
|
|
7
|
+
const response = await api.get(`/products/${productId}/reviews`, { params: { page, limit } });
|
|
8
|
+
if (response.data.status === 'success') {
|
|
9
|
+
return {
|
|
10
|
+
data: response.data.data,
|
|
11
|
+
meta: response.data.meta || { page: 1, limit: 10, total: 0, totalPages: 0 },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
throw new Error(response.data.message || 'Failed to fetch reviews');
|
|
15
|
+
},
|
|
16
|
+
/**
|
|
17
|
+
* Create a review (requires authentication)
|
|
18
|
+
*/
|
|
19
|
+
async createReview(productId, data) {
|
|
20
|
+
const response = await api.post(`/products/${productId}/reviews`, data);
|
|
21
|
+
if (response.data.status === 'success') {
|
|
22
|
+
return response.data.data;
|
|
23
|
+
}
|
|
24
|
+
throw new Error(response.data.message || 'Failed to create review');
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Update a review (requires authentication, owner only)
|
|
28
|
+
*/
|
|
29
|
+
async updateReview(productId, reviewId, data) {
|
|
30
|
+
const response = await api.put(`/products/${productId}/reviews/${reviewId}`, data);
|
|
31
|
+
if (response.data.status === 'success') {
|
|
32
|
+
return response.data.data;
|
|
33
|
+
}
|
|
34
|
+
throw new Error(response.data.message || 'Failed to update review');
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Delete a review (requires authentication, owner only)
|
|
38
|
+
*/
|
|
39
|
+
async deleteReview(productId, reviewId) {
|
|
40
|
+
const response = await api.delete(`/products/${productId}/reviews/${reviewId}`);
|
|
41
|
+
if (response.data.status !== 'success') {
|
|
42
|
+
throw new Error(response.data.message || 'Failed to delete review');
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
/**
|
|
46
|
+
* Mark review as helpful (requires authentication)
|
|
47
|
+
*/
|
|
48
|
+
async markHelpful(productId, reviewId) {
|
|
49
|
+
const response = await api.post(`/products/${productId}/reviews/${reviewId}/helpful`);
|
|
50
|
+
if (response.data.status !== 'success') {
|
|
51
|
+
throw new Error(response.data.message || 'Failed to mark review as helpful');
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface Service {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
slug: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
price: number;
|
|
7
|
+
currency?: string;
|
|
8
|
+
pricingType?: 'fixed' | 'hourly';
|
|
9
|
+
duration?: number;
|
|
10
|
+
images?: Array<{
|
|
11
|
+
url: string;
|
|
12
|
+
isPrimary?: boolean;
|
|
13
|
+
}> | string[];
|
|
14
|
+
image?: string;
|
|
15
|
+
categoryId?: string;
|
|
16
|
+
category?: any;
|
|
17
|
+
categoryName?: string;
|
|
18
|
+
serviceType: 'appointment' | 'booking' | 'consultation' | 'treatment' | 'other';
|
|
19
|
+
checkoutType?: 'online' | 'offline' | 'both';
|
|
20
|
+
status?: 'active' | 'inactive' | 'draft';
|
|
21
|
+
availability?: {
|
|
22
|
+
days?: string[];
|
|
23
|
+
startTime?: string;
|
|
24
|
+
endTime?: string;
|
|
25
|
+
timeSlots?: number[];
|
|
26
|
+
day?: string;
|
|
27
|
+
slots?: string[];
|
|
28
|
+
};
|
|
29
|
+
isActive: boolean;
|
|
30
|
+
storeId: string;
|
|
31
|
+
locationId?: string;
|
|
32
|
+
location?: any;
|
|
33
|
+
providerId?: string;
|
|
34
|
+
provider?: any;
|
|
35
|
+
merchantId?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare const serviceService: {
|
|
38
|
+
/**
|
|
39
|
+
* Get services for a store
|
|
40
|
+
*/
|
|
41
|
+
getServices(storeId: string, params?: {
|
|
42
|
+
locationId?: string;
|
|
43
|
+
serviceType?: string;
|
|
44
|
+
categoryId?: string;
|
|
45
|
+
}): Promise<Service[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Get service by ID
|
|
48
|
+
*/
|
|
49
|
+
getServiceById(id: string): Promise<Service>;
|
|
50
|
+
/**
|
|
51
|
+
* Get service by slug
|
|
52
|
+
*/
|
|
53
|
+
getServiceBySlug(slug: string, storeId: string): Promise<Service>;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=service.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/service.service.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,MAAM,EAAE,CAAC;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,aAAa,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,GAAG,OAAO,CAAC;IAChF,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc;IACzB;;OAEG;yBACwB,MAAM,WAAW;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUnI;;OAEG;uBACsB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlD;;OAEG;2BAC0B,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CASxE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { api } from '../api';
|
|
2
|
+
export const serviceService = {
|
|
3
|
+
/**
|
|
4
|
+
* Get services for a store
|
|
5
|
+
*/
|
|
6
|
+
async getServices(storeId, params) {
|
|
7
|
+
const response = await api.get('/services', {
|
|
8
|
+
params: { storeId, ...params },
|
|
9
|
+
});
|
|
10
|
+
if (response.data.status === 'success') {
|
|
11
|
+
return response.data.data;
|
|
12
|
+
}
|
|
13
|
+
throw new Error(response.data.message || 'Failed to fetch services');
|
|
14
|
+
},
|
|
15
|
+
/**
|
|
16
|
+
* Get service by ID
|
|
17
|
+
*/
|
|
18
|
+
async getServiceById(id) {
|
|
19
|
+
const response = await api.get(`/services/${id}`);
|
|
20
|
+
if (response.data.status === 'success') {
|
|
21
|
+
return response.data.data;
|
|
22
|
+
}
|
|
23
|
+
throw new Error(response.data.message || 'Failed to fetch service');
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Get service by slug
|
|
27
|
+
*/
|
|
28
|
+
async getServiceBySlug(slug, storeId) {
|
|
29
|
+
const response = await api.get(`/services/slug/${slug}`, {
|
|
30
|
+
params: { storeId },
|
|
31
|
+
});
|
|
32
|
+
if (response.data.status === 'success') {
|
|
33
|
+
return response.data.data;
|
|
34
|
+
}
|
|
35
|
+
throw new Error(response.data.message || 'Failed to fetch service');
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface ShippingMethod {
|
|
2
|
+
code: string;
|
|
3
|
+
name: string;
|
|
4
|
+
cost: number;
|
|
5
|
+
estimatedDays: number;
|
|
6
|
+
estimatedDaysMin?: number;
|
|
7
|
+
estimatedDaysMax?: number;
|
|
8
|
+
description?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ShippingCalculation {
|
|
11
|
+
methods: ShippingMethod[];
|
|
12
|
+
selectedMethod?: ShippingMethod;
|
|
13
|
+
freeShippingEligible: boolean;
|
|
14
|
+
freeShippingThreshold?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface TaxCalculation {
|
|
17
|
+
tax: number;
|
|
18
|
+
taxRate: number;
|
|
19
|
+
subtotal: number;
|
|
20
|
+
total: number;
|
|
21
|
+
}
|
|
22
|
+
export declare const shippingService: {
|
|
23
|
+
/**
|
|
24
|
+
* Calculate shipping costs
|
|
25
|
+
*/
|
|
26
|
+
calculateShipping(data: {
|
|
27
|
+
storeId: string;
|
|
28
|
+
address: any;
|
|
29
|
+
weight?: number;
|
|
30
|
+
items?: any[];
|
|
31
|
+
subtotal?: number;
|
|
32
|
+
shippingMethod?: string;
|
|
33
|
+
currency?: string;
|
|
34
|
+
}): Promise<ShippingCalculation>;
|
|
35
|
+
/**
|
|
36
|
+
* Calculate tax
|
|
37
|
+
*/
|
|
38
|
+
calculateTax(data: {
|
|
39
|
+
storeId: string;
|
|
40
|
+
address: any;
|
|
41
|
+
subtotal: number;
|
|
42
|
+
}): Promise<TaxCalculation>;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=shipping.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shipping.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/shipping.service.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe;IAC1B;;OAEG;4BAC2B;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,GAAG,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQhC;;OAEG;uBACsB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAOvG,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { api } from '../api';
|
|
2
|
+
export const shippingService = {
|
|
3
|
+
/**
|
|
4
|
+
* Calculate shipping costs
|
|
5
|
+
*/
|
|
6
|
+
async calculateShipping(data) {
|
|
7
|
+
const response = await api.post('/shipping/calculate', data);
|
|
8
|
+
if (response.data.status === 'success') {
|
|
9
|
+
return response.data.data;
|
|
10
|
+
}
|
|
11
|
+
throw new Error(response.data.message || 'Failed to calculate shipping');
|
|
12
|
+
},
|
|
13
|
+
/**
|
|
14
|
+
* Calculate tax
|
|
15
|
+
*/
|
|
16
|
+
async calculateTax(data) {
|
|
17
|
+
const response = await api.post('/tax/calculate', data);
|
|
18
|
+
if (response.data.status === 'success') {
|
|
19
|
+
return response.data.data;
|
|
20
|
+
}
|
|
21
|
+
throw new Error(response.data.message || 'Failed to calculate tax');
|
|
22
|
+
},
|
|
23
|
+
};
|