@ozdao/martyrs 0.2.473 → 0.2.475

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.
Files changed (235) hide show
  1. package/dist/{Media-DW8RLbfM.js → Media-_vz04tII.js} +1 -1
  2. package/dist/{Media-y_TX6us_.mjs → Media-sGk7Bp9b.mjs} +1 -1
  3. package/dist/auth.server.js +6 -2
  4. package/dist/auth.server.mjs +6 -2
  5. package/dist/authJwt-CELQKF2s.js +82 -0
  6. package/dist/authJwt-DnXu3BFq.mjs +83 -0
  7. package/dist/builder.js +7 -4
  8. package/dist/builder.mjs +7 -4
  9. package/dist/chats.server.js +1 -1
  10. package/dist/chats.server.mjs +1 -1
  11. package/dist/community.server.js +4 -4
  12. package/dist/community.server.mjs +4 -4
  13. package/dist/events.server.js +4 -4
  14. package/dist/events.server.mjs +4 -4
  15. package/dist/files.server.js +1 -1
  16. package/dist/files.server.mjs +1 -1
  17. package/dist/gallery.server.js +3 -3
  18. package/dist/gallery.server.mjs +3 -3
  19. package/dist/{globals.abac-DT0VjfaZ.js → globals.abac-Bn-4tbX8.js} +110 -16
  20. package/dist/{globals.abac-CvmZM8XG.mjs → globals.abac-DZpTRxKR.mjs} +110 -16
  21. package/dist/globals.server.js +70 -10
  22. package/dist/globals.server.mjs +70 -10
  23. package/dist/{globals.verifier-C_VZYebB.mjs → globals.verifier-BdJxc8-8.mjs} +34 -0
  24. package/dist/{globals.verifier-ChDpCdy_.js → globals.verifier-CKYpYfQl.js} +34 -0
  25. package/dist/{index-CVXl1rB5.js → index-BOmxJQ5W.js} +7 -86
  26. package/dist/{index-Df8vtZx7.mjs → index-C_Fw0Umg.mjs} +7 -86
  27. package/dist/{main-CgmHzhq5.mjs → main-CqMtW7Hq.mjs} +274 -276
  28. package/dist/{main-CCfQH-Dd.js → main-CsGkbSyK.js} +2 -2
  29. package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
  30. package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
  31. package/dist/martyrs/src/components/Button/Button.vue2.cjs +1 -1
  32. package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
  33. package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
  34. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
  35. package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
  36. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
  37. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  38. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  39. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  40. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  41. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
  42. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  43. package/dist/martyrs/src/components/Loader/{Loader.vue2.cjs → Loader.vue.cjs} +2 -2
  44. package/dist/martyrs/src/components/Loader/{Loader.vue2.js.map → Loader.vue.cjs.map} +1 -1
  45. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  46. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  47. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
  48. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
  49. package/dist/martyrs/src/components/Select/Select.vue.cjs +4 -4
  50. package/dist/martyrs/src/components/Select/Select.vue.cjs.map +1 -1
  51. package/dist/martyrs/src/components/Select/Select.vue.js +4 -4
  52. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
  53. package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs +1 -1
  54. package/dist/martyrs/src/components/Slider/Slider.native.vue.js +1 -1
  55. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.cjs → Tooltip.vue.cjs} +2 -2
  56. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js.map → Tooltip.vue.cjs.map} +1 -1
  57. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
  58. package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
  59. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  60. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  63. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  64. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  65. package/dist/martyrs/src/modules/community/community.client.js +27 -27
  66. package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
  67. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  69. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  70. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  71. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +4 -5
  72. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +4 -5
  74. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  77. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  79. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -2
  80. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  81. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +2 -2
  82. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -2
  83. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  85. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  87. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  88. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  89. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +3 -3
  90. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +3 -3
  91. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  93. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
  95. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  97. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  98. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  99. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
  100. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
  101. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  103. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +88 -27
  104. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +89 -28
  106. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
  108. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  109. package/dist/martyrs/src/modules/orders/store/shopcart.cjs +1 -0
  110. package/dist/martyrs/src/modules/orders/store/shopcart.cjs.map +1 -1
  111. package/dist/martyrs/src/modules/orders/store/shopcart.js +1 -0
  112. package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
  113. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  115. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  117. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  119. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  120. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  121. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  123. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  125. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  127. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  129. package/dist/martyrs/src/modules/products/components/blocks/Images360.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/products/components/blocks/Images360.vue.js +1 -1
  131. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  133. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +21 -2
  134. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +21 -2
  136. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -0
  138. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  139. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -0
  140. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  142. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
  143. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  144. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  145. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  147. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
  149. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
  151. package/dist/martyrs/src/modules/products/store/categories.cjs +2 -0
  152. package/dist/martyrs/src/modules/products/store/categories.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/products/store/categories.js +2 -0
  154. package/dist/martyrs/src/modules/products/store/categories.js.map +1 -1
  155. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  157. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  159. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +31 -24
  160. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +31 -24
  162. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +807 -0
  164. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs.map +1 -0
  165. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +807 -0
  166. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js.map +1 -0
  167. package/dist/martyrs/src/modules/spots/store/spots.cjs +4 -1
  168. package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/spots/store/spots.js +4 -1
  170. package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
  171. package/dist/martyrs.cjs.js +1 -1
  172. package/dist/martyrs.css +1 -1
  173. package/dist/martyrs.es.js +1 -1
  174. package/dist/notifications.server.js +1 -1
  175. package/dist/notifications.server.mjs +1 -1
  176. package/dist/orders.server.js +5 -4
  177. package/dist/orders.server.mjs +5 -4
  178. package/dist/organizations.server.js +120 -47
  179. package/dist/organizations.server.mjs +120 -47
  180. package/dist/{ownership.schema-C0w02Vw1.mjs → ownership.schema-CNCotD3D.mjs} +10 -4
  181. package/dist/{ownership.schema-Ck2H9clB.js → ownership.schema-MxfJlPtq.js} +10 -4
  182. package/dist/products.server.js +415 -149
  183. package/dist/products.server.mjs +415 -149
  184. package/dist/{profile.schema-h61hhB2w.js → profile.schema-BLSuV_VC.js} +0 -4
  185. package/dist/{profile.schema-kP_zKXNt.mjs → profile.schema-BRuvQ7QV.mjs} +0 -4
  186. package/dist/{queryProcessor-CWnMIe2U.mjs → queryProcessor-CVKI651_.mjs} +62 -8
  187. package/dist/{queryProcessor-D6GuKfTV.js → queryProcessor-DSUqSk3I.js} +62 -8
  188. package/dist/rents.server.js +4 -4
  189. package/dist/rents.server.mjs +4 -4
  190. package/dist/spots.server.js +162 -8
  191. package/dist/spots.server.mjs +162 -8
  192. package/dist/style.css +27 -4
  193. package/dist/wallet.server.js +2 -2
  194. package/dist/wallet.server.mjs +2 -2
  195. package/package.json +1 -1
  196. package/src/builder/rspack/rspack.config.base.js +1 -1
  197. package/src/builder/rspack/rspack.config.client.js +13 -5
  198. package/src/components/Select/Select.vue +4 -2
  199. package/src/modules/auth/models/user.model.js +4 -1
  200. package/src/modules/community/components/sections/HotPosts.vue +1 -1
  201. package/src/modules/globals/controllers/classes/globals.abac.js +148 -23
  202. package/src/modules/globals/controllers/classes/globals.validator.js +37 -0
  203. package/src/modules/globals/controllers/classes/globals.verifier.js +2 -0
  204. package/src/modules/globals/controllers/policies/globals.policies.js +91 -74
  205. package/src/modules/globals/controllers/utils/queryProcessor.js +59 -11
  206. package/src/modules/globals/models/schemas/ownership.schema.js +11 -6
  207. package/src/modules/globals/models/schemas/profile.schema.js +0 -4
  208. package/src/modules/music/components/layouts/MusicLayout.vue +10 -58
  209. package/src/modules/music/components/pages/MusicHome.vue +5 -5
  210. package/src/modules/orders/components/pages/OrderCreate.vue +84 -12
  211. package/src/modules/orders/controllers/orders.controller.js +3 -0
  212. package/src/modules/orders/store/shopcart.js +1 -0
  213. package/src/modules/organizations/models/schemas/accesses.schema.js +18 -0
  214. package/src/modules/organizations/policies/organizations.policies.js +117 -61
  215. package/src/modules/products/components/pages/CategoryEdit.vue +27 -2
  216. package/src/modules/products/components/pages/Product.vue +1 -0
  217. package/src/modules/products/components/pages/ProductEdit.vue +2 -2
  218. package/src/modules/products/controllers/categories.controller.js +297 -133
  219. package/src/modules/products/middlewares/categories.verifier.js +177 -0
  220. package/src/modules/products/models/category.model.js +12 -14
  221. package/src/modules/products/routes/categories.routes.js +50 -11
  222. package/src/modules/products/store/categories.js +2 -0
  223. package/src/modules/spots/components/pages/SpotEdit.vue +21 -17
  224. package/src/modules/spots/components/sections/WorktimeEdit.vue +840 -0
  225. package/src/modules/spots/controllers/queries/getIsOpenNowStage.js +109 -0
  226. package/src/modules/spots/controllers/spots.controller.js +2 -1
  227. package/src/modules/spots/models/spot.model.js +59 -13
  228. package/src/modules/spots/store/spots.js +4 -1
  229. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
  230. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
  231. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  232. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
  233. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +0 -1
  234. package/src/modules/products/middlewares/index.js +0 -11
  235. package/src/modules/products/middlewares/verifyCategory.js +0 -25
@@ -20,17 +20,30 @@ const orders = require("../../store/orders.cjs");
20
20
  const users = require("../../../auth/views/store/users.cjs");
21
21
  ;/* empty css */
22
22
  const _hoisted_1 = { class: "bg-white pd-thin" };
23
- const _hoisted_2 = { class: "gap-small mn-b-thin cols-2" };
23
+ const _hoisted_2 = {
24
+ key: 3,
25
+ class: "w-100 gap-thin cols-1 mn-b-thin"
26
+ };
24
27
  const _hoisted_3 = {
25
- key: 2,
26
- class: "rows-1 gap-thin"
28
+ key: 0,
29
+ class: "bg-fifth-nano pd-small radius-medium t-center"
27
30
  };
28
31
  const _hoisted_4 = {
29
- key: 3,
32
+ key: 1,
33
+ class: "bg-fourth-nano pd-small radius-medium t-center"
34
+ };
35
+ const _hoisted_5 = { class: "t-fourth" };
36
+ const _hoisted_6 = { class: "gap-small mn-b-thin cols-2" };
37
+ const _hoisted_7 = {
38
+ key: 0,
39
+ class: "rows-1 gap-thin"
40
+ };
41
+ const _hoisted_8 = {
42
+ key: 1,
30
43
  class: "bg-white br-solid br-light br-1px pd-medium radius-medium"
31
44
  };
32
- const _hoisted_5 = { class: "flex gap-thin flex-wrap mn-b-thin" };
33
- const _hoisted_6 = { class: "mn-b-thin" };
45
+ const _hoisted_9 = { class: "flex gap-thin flex-wrap mn-b-thin" };
46
+ const _hoisted_10 = { class: "mn-b-thin" };
34
47
  const _sfc_main = {
35
48
  __name: "OrderCreate",
36
49
  emits: ["page-loading", "page-loaded"],
@@ -39,7 +52,7 @@ const _sfc_main = {
39
52
  const isLocationLoading = vue.ref(false);
40
53
  vueRouter.useRoute();
41
54
  const router = vueRouter.useRouter();
42
- const { returnCurrency } = mixins.useGlobalMixins();
55
+ const { returnCurrency, formatPrice } = mixins.useGlobalMixins();
43
56
  const order = vue.computed(() => orders.state.current);
44
57
  vue.computed(() => users.state.current);
45
58
  const cartTotalPrice = shopcart.getters.cartTotalPrice;
@@ -51,12 +64,46 @@ const _sfc_main = {
51
64
  return orders.getters.getDeliveryPrice(type, distance, config);
52
65
  });
53
66
  const orderOrganization = vue.ref({});
67
+ const spotOrganization = vue.ref({});
68
+ const isOpen = vue.ref(true);
69
+ const minOrderAmount = vue.ref(0);
70
+ function checkIsOpenNow(worktime) {
71
+ var _a, _b, _c;
72
+ try {
73
+ console.log("[checkIsOpenNow] worktime:", worktime);
74
+ if (!worktime || typeof worktime !== "object" || Array.isArray(worktime) || !worktime.regular) {
75
+ console.log("[checkIsOpenNow] invalid, returning true");
76
+ return true;
77
+ }
78
+ const now = /* @__PURE__ */ new Date();
79
+ const currentDay = now.getDay();
80
+ const currentTime = `${String(now.getHours()).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}`;
81
+ const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
82
+ console.log("[checkIsOpenNow] currentDay:", currentDay);
83
+ console.log("[checkIsOpenNow] currentTime:", currentTime);
84
+ const specialDay = (_a = worktime.special) == null ? void 0 : _a.find((s) => {
85
+ const d = new Date(s.date);
86
+ return d.getFullYear() === today.getFullYear() && d.getMonth() === today.getMonth() && d.getDate() === today.getDate();
87
+ });
88
+ if (specialDay) {
89
+ console.log("[checkIsOpenNow] specialDay:", specialDay);
90
+ if (!specialDay.isOpen) return false;
91
+ return (_b = specialDay.periods) == null ? void 0 : _b.some((p) => p.open <= currentTime && p.close > currentTime);
92
+ }
93
+ const regularDay = worktime.regular.find((d) => d.dayOfWeek === currentDay);
94
+ if (!regularDay || !regularDay.isOpen) return false;
95
+ return (_c = regularDay.periods) == null ? void 0 : _c.some((p) => p.open <= currentTime && p.close > currentTime);
96
+ } catch (err) {
97
+ console.error("[checkIsOpenNow] error:", err);
98
+ return true;
99
+ }
100
+ }
54
101
  if (!globals.state.options.orders.allowUnauthenticatedOrders && !auth.state.user._id) {
55
102
  router.push({ name: "Sign In" });
56
103
  }
57
104
  orders.mutations.resetOrder();
58
105
  vue.onMounted(async () => {
59
- var _a, _b, _c;
106
+ var _a, _b, _c, _d, _e;
60
107
  emits("page-loading");
61
108
  isLocationLoading.value = true;
62
109
  if (auth.state.user._id) {
@@ -70,6 +117,12 @@ const _sfc_main = {
70
117
  location: (_a = globals.state.position) == null ? void 0 : _a.location,
71
118
  lookup: ["spots"]
72
119
  });
120
+ if (orderOrganization.value && ((_c = (_b = orderOrganization.value[0]) == null ? void 0 : _b.spots) == null ? void 0 : _c.length) > 0) {
121
+ spotOrganization.value = orderOrganization.value[0].spots[0];
122
+ isOpen.value = checkIsOpenNow(spotOrganization.value.worktime);
123
+ console.log(spotOrganization.value);
124
+ minOrderAmount.value = spotOrganization.value.minorder || 0;
125
+ }
73
126
  isLocationLoading.value = false;
74
127
  emits("page-loaded");
75
128
  if (typeof gtag === "function") {
@@ -78,18 +131,18 @@ const _sfc_main = {
78
131
  // Замените на вашу валюту
79
132
  value: cartTotalPrice || 0,
80
133
  items: shopcart.state.positions.map((item) => {
81
- var _a2, _b2, _c2, _d;
134
+ var _a2, _b2, _c2, _d2;
82
135
  return {
83
136
  item_id: (_a2 = item.product) == null ? void 0 : _a2._id,
84
137
  item_name: (_b2 = item.product) == null ? void 0 : _b2.name,
85
138
  price: item.price || 0,
86
139
  quantity: item.quantity || 1,
87
140
  item_category: ((_c2 = item.product) == null ? void 0 : _c2.category) || "",
88
- item_brand: ((_d = orderOrganization.value.profile) == null ? void 0 : _d.name) || ""
141
+ item_brand: ((_d2 = orderOrganization.value.profile) == null ? void 0 : _d2.name) || ""
89
142
  };
90
143
  }),
91
- organization: ((_b = orderOrganization.value.profile) == null ? void 0 : _b.name) || "",
92
- location: ((_c = globals.state.position) == null ? void 0 : _c.location) || "unknown"
144
+ organization: ((_d = orderOrganization.value.profile) == null ? void 0 : _d.name) || "",
145
+ location: ((_e = globals.state.position) == null ? void 0 : _e.location) || "unknown"
93
146
  });
94
147
  }
95
148
  });
@@ -219,13 +272,21 @@ const _sfc_main = {
219
272
  key: 0,
220
273
  class: "mn-b-thin"
221
274
  })) : vue.createCommentVNode("", true),
222
- vue.createElementVNode("div", _hoisted_2, [
223
- shopcart.state.positions < 1 ? (vue.openBlock(), vue.createBlock(EmptyState.default, { key: 0 })) : vue.createCommentVNode("", true),
224
- order.value.status === true && shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createBlock(Succes.default, {
225
- key: 1,
226
- order: order.value
227
- }, null, 8, ["order"])) : vue.createCommentVNode("", true),
228
- orders.state.current.status !== true && shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
275
+ shopcart.state.positions < 1 ? (vue.openBlock(), vue.createBlock(EmptyState.default, { key: 1 })) : vue.createCommentVNode("", true),
276
+ order.value.status === true && shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createBlock(Succes.default, {
277
+ key: 2,
278
+ order: order.value
279
+ }, null, 8, ["order"])) : vue.createCommentVNode("", true),
280
+ shopcart.state.positions.length > 0 && orders.state.current.status !== true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
281
+ !isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, _cache[0] || (_cache[0] = [
282
+ vue.createElementVNode("p", { class: "t-fourth" }, "⚠️ This spot is currently closed. You can place an order, but it will be processed when the spot opens.", -1)
283
+ ]))) : vue.createCommentVNode("", true),
284
+ vue.unref(cartTotalPrice) < minOrderAmount.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
285
+ vue.createElementVNode("p", _hoisted_5, "⚠️ Minimum order amount is " + vue.toDisplayString(vue.unref(formatPrice)(minOrderAmount.value)) + ". Your current total is " + vue.toDisplayString(vue.unref(formatPrice)(vue.unref(cartTotalPrice))) + ".", 1)
286
+ ])) : vue.createCommentVNode("", true)
287
+ ])) : vue.createCommentVNode("", true),
288
+ vue.createElementVNode("div", _hoisted_6, [
289
+ orders.state.current.status !== true && shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [
229
290
  vue.createVNode(FormCustomerDetails.default, {
230
291
  customer: orders.state.current.customer
231
292
  }, null, 8, ["customer"]),
@@ -240,9 +301,9 @@ const _sfc_main = {
240
301
  organization: orderOrganization.value[0]
241
302
  }, null, 8, ["order", "organization"])) : vue.createCommentVNode("", true)
242
303
  ])) : vue.createCommentVNode("", true),
243
- shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
244
- _cache[1] || (_cache[1] = vue.createElementVNode("h4", { class: "font-second mn-b-thin" }, "Your Order", -1)),
245
- vue.createElementVNode("ul", _hoisted_5, [
304
+ shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
305
+ _cache[2] || (_cache[2] = vue.createElementVNode("h4", { class: "font-second mn-b-thin" }, "Your Order", -1)),
306
+ vue.createElementVNode("ul", _hoisted_9, [
246
307
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(shopcart.state.positions, (product) => {
247
308
  return vue.openBlock(), vue.createBlock(CardOrderItem.default, {
248
309
  key: product._id,
@@ -256,7 +317,7 @@ const _sfc_main = {
256
317
  }, null, 8, ["product", "increase", "decrease", "remove", "onUpdateRentDates"]);
257
318
  }), 128))
258
319
  ]),
259
- vue.createElementVNode("div", _hoisted_6, [
320
+ vue.createElementVNode("div", _hoisted_10, [
260
321
  vue.createVNode(PriceTotal.default, {
261
322
  totalPrice: vue.unref(cartTotalPrice),
262
323
  deliveryRate: deliveryCost.value,
@@ -272,14 +333,14 @@ const _sfc_main = {
272
333
  key: 0,
273
334
  submit: () => handleCreate(),
274
335
  class: "bg-main mn-b-small pd-small radius-big w-100 button",
275
- disabled: errorName.value || errorPhoneOrMessenger.value || _ctx.errorCity || errorAddress.value || errorDelivery.value || errorPayment.value || isLocationLoading.value
336
+ disabled: errorName.value || errorPhoneOrMessenger.value || _ctx.errorCity || errorAddress.value || errorDelivery.value || errorPayment.value || isLocationLoading.value || vue.unref(cartTotalPrice) < minOrderAmount.value
276
337
  }, {
277
- default: vue.withCtx(() => _cache[0] || (_cache[0] = [
338
+ default: vue.withCtx(() => _cache[1] || (_cache[1] = [
278
339
  vue.createElementVNode("span", null, "Place an Order", -1)
279
340
  ])),
280
341
  _: 1
281
342
  }, 8, ["submit", "disabled"])) : vue.createCommentVNode("", true),
282
- _cache[2] || (_cache[2] = vue.createElementVNode("p", { class: "mn-b-thin" }, [
343
+ _cache[3] || (_cache[3] = vue.createElementVNode("p", { class: "mn-b-thin" }, [
283
344
  vue.createTextVNode(" I agree that placing the order places me under an obligation to make a payment in accordance with "),
284
345
  vue.createElementVNode("a", {
285
346
  class: "t-semi font-second t-second",
@@ -287,7 +348,7 @@ const _sfc_main = {
287
348
  target: "_blank"
288
349
  }, "Terms of Use.")
289
350
  ], -1)),
290
- _cache[3] || (_cache[3] = vue.createElementVNode("p", null, null, -1))
351
+ _cache[4] || (_cache[4] = vue.createElementVNode("p", null, null, -1))
291
352
  ])) : vue.createCommentVNode("", true)
292
353
  ])
293
354
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"OrderCreate.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderCreate.vue"],"sourcesContent":["<template>\n\n<section class=\"bg-white pd-thin\">\n\n\t<!-- Ask to login -->\n\t<AskToLogin class=\"mn-b-thin\" v-if=\"auth.state.access.status === false\" /> \n\t<!-- Order form -->\n\t<div class=\"gap-small mn-b-thin cols-2\">\n\t\t<!-- Empty State -->\n\t\t<EmptyState \n\t\t\tv-if=\"shopcart.state.positions < 1\" \n\t\t/>\t\n\n\t\t<Succes \n\t\t\tv-if=\"order.status === true && shopcart.state.positions.length > 0\" \n\t\t\t:order=\"order\" \n\t\t/>\n\t\t<!-- Order Form -->\n\t\t<div\n\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\" \n\t\t\tclass=\"rows-1 gap-thin\"\n\t\t>\n\t\t\t<FormCustomerDetails\n\t\t\t\t:customer=\"orders.state.current.customer\"\n\t\t\t/>\n\t\t\t<FormPayment \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t<FormDelivery \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t\n\t\t</div>\n\n\t\t<!-- Order positions -->\n\t\t<div \n\t\t\tv-if=\"shopcart.state.positions.length > 0\" \n\t\t\tclass=\"bg-white br-solid br-light br-1px pd-medium radius-medium\"\n\t\t>\n\t\t\t<h4 class=\"font-second mn-b-thin\">Your Order</h4>\n\n\t\t\t<ul class=\"flex gap-thin flex-wrap mn-b-thin\">\n\t\t\t\t<CardOrderItem \n\t\t\t\t\tv-for=\"product in shopcart.state.positions\" \n\t\t\t\t\t:key=\"product._id\" \n\t\t\t\t\t:editable=\"true\" \n\t\t\t\t\t:product=\"product\" \n\t :increase=\"product => shopcart.actions.incrementItemQuantity(product._id)\"\n\t :decrease=\"product => shopcart.actions.decrementItemQuantity(product._id)\"\n\t :remove=\"product => shopcart.actions.removeProduct(product._id)\"\n\t\t\t\t\t@updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ productId: product._id, dates })\"\n\t class=\"w-100 bg-white \"\n\t />\n\t\t\t</ul>\n\n\t\t\t\t<div \n\t\t\t\tclass=\"mn-b-thin\"\n\t\t\t>\t\n\t\t\t\t<PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders.showFees\"\n :feesRate=\"globals.state.options?.orders.feesRate || 0\"\n :showVat=\"globals.state.options?.orders.showVat\"\n :vatRate=\"globals.state.options?.orders.vatRate || 0\"\n :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n />\n\t\t\t</div>\n\t\t\t<!-- Send order -->\n\t\t <Button\n v-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n :submit=\"() => handleCreate()\"\n class=\"bg-main mn-b-small pd-small radius-big w-100 button\"\n :disabled=\"\n\t\t errorName \n\t\t || errorPhoneOrMessenger \n\t\t || errorCity \n\t\t || errorAddress \n\t\t || errorDelivery \n\t\t || errorPayment\n\t\t || isLocationLoading\n\t\t \"\n >\n <span>Place an Order</span>\n </Button>\n\n\t\t <p class='mn-b-thin'>\n\t\t\t\tI agree that placing the order places me under an obligation to make a payment in accordance with <a class=\"t-semi font-second t-second\" href=\"/legal/terms-of-use\" target=\"_blank\">Terms of Use.</a>\n\t\t\t</p>\n\t\t\t<p >\n\t\t\t\t\n\t\t\t</p>\n\t\t</div>\n\n\t</div>\n\n\t\n\t\n</section>\n\n</template>\n\n\n<script setup>\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import components\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Block\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n// Sections\nimport AskToLogin from '@martyrs/src/modules/orders/components/sections/AskToLogin.vue'\nimport Succes from '@martyrs/src/modules/orders/components/sections/Succes.vue'\nimport EmptyState from '@martyrs/src/modules/orders/components/sections/EmptyState.vue'\n\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\nimport FormCustomerDetails from '@martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue'\nimport FormDelivery from '@martyrs/src/modules/orders/components/sections/FormDelivery.vue'\nimport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import libs\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport { ref, computed, onMounted, watch } from 'vue'\nimport { useRoute,useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n// Store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations';\nimport * as orders from '@martyrs/src/modules/orders/store/orders';\nimport * as users from '@martyrs/src/modules/auth/views/store/users';\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Variables and computed\n//////////////////////////////////////////////////////////////////////////////////////////////////\nconst isLocationLoading = ref(false)\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\nconst { returnCurrency } = useGlobalMixins()\n// COMPUTED\nconst order = computed(() => orders.state.current)\nconst user = computed(() => users.state.current)\n\nconst cartTotalPrice = shopcart.getters.cartTotalPrice\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n// Organization\nconst orderOrganization = ref({})\n\n\nif (!globals.state.options.orders.allowUnauthenticatedOrders && !auth.state.user._id) { \n\trouter.push({name: 'Sign In'})\t\n}\n\n\norders.mutations.resetOrder()\n\nonMounted(async()=> {\n\temits('page-loading');\n\n\tisLocationLoading.value = true\n\n\tif (auth.state.user._id) {\n\t\tlet data = await users.actions.read({ _id:auth.state.user._id, user: auth.state.user._id });\n\n\t\torders.state.current.customer.profile.name = users.state.current.profile.name\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t}\n\n\torderOrganization.value = await organizations.actions.read({\n\t _id: shopcart.state.organization,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t})\n\t\n \tisLocationLoading.value = false\n emits('page-loaded');\n\n if (typeof gtag === 'function') {\n gtag('event', 'begin_checkout', {\n currency: returnCurrency(), // Замените на вашу валюту\n value: cartTotalPrice || 0,\n items: shopcart.state.positions.map(item => ({\n item_id: item.product?._id,\n item_name: item.product?.name,\n price: item.price || 0,\n quantity: item.quantity || 1,\n item_category: item.product?.category || '',\n item_brand: orderOrganization.value.profile?.name || ''\n })),\n organization: orderOrganization.value.profile?.name || '',\n location: globals.state.position?.location || 'unknown'\n });\n }\n})\n\n\nwatch(\n () => orders.state.current.delivery,\n async (newVal) => {\n if (newVal?.location) {\n \tisLocationLoading.value = true\n\n orderOrganization.value = await organizations.actions.read({\n _id: shopcart.state.organization,\n location: newVal.location,\n lookup: ['spots']\n })\n\n isLocationLoading.value = false\n }\n },\n { deep: true }\n)\n\n\n/////////////////////////////\n// Store Verification\n/////////////////////////////\nconst errorName = computed(() => {\n if (orders.state.current.customer.name?.length < 2) { return true } else { return false }\n});\n\nconst errorPhoneOrMessenger = computed(() => {\n const hasMessengerType = orders.state.current.customer.messenger?.type;\n const hasMessengerValue = orders.state.current.customer.messenger?.value?.length >\t 2;\n const hasPhone = orders.state.current.customer.number?.length > 0;\n // Ошибка, если нет ни номера телефона, ни корректного типа и значения мессенджера\n return !hasPhone && !(hasMessengerType && hasMessengerValue);\n});\n\nconst errorAddress = computed(() => {\n const type = orders.state.current.delivery.type;\n if (type === \"pickup\") {\n return !orders.state.current.delivery.spot;\n } else if (type === \"courier\" || type === \"mail\") {\n const address = orders.state.current.delivery.address;\n return !address || typeof address !== 'string' || address.length < 2;\n }\n return false;\n});\n\nconst errorDelivery = computed(() => {\n if (orders.state.current.delivery.type) {return false } else {return true } \n})\n\nconst errorPayment = computed(() => {\n if (orders.state.current.payment.type) { return false } else {return true } \n})\n/////////////////////////////\n// Methods\n/////////////////////////////\nasync function handleCreate() {\n\n\torders.state.current.status = 'created';\n\n\torders.state.current.owner = {\n\t\ttarget: orderOrganization.value[0]._id,\n\t\ttype: 'organization'\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.creator = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.customer = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\torders.state.current.positions = shopcart.state.positions\n\n \tconst referralCode = localStorage.getItem('referalCode');\n \n if (referralCode) {\n orders.state.current.referralCode = referralCode;\n }\n\n let order = await orders.actions.create(orders.state.current);\n\n if (order) {\n\t if (typeof gtag === 'function') {\n\t gtag('event', 'purchase', {\n\t transaction_id: order._id,\n\t value: cartTotalPrice || 0,\n\t currency: returnCurrency(), // Замените на вашу валюту\n\t tax: 0, // Если есть данные о налоге\n\t shipping: deliveryCost.value, // Если есть данные о доставке\n\t items: shopcart.state.positions.map(item => ({\n\t item_id: item.product?._id,\n\t item_name: item.product?.name ,\n\t price: item.price || 0,\n\t quantity: item.quantity || 1,\n\t item_category: item.product?.category || ''\n\t })),\n\t organization: orderOrganization.value?.profile?.name,\n\t location: globals.state.position?.location || 'unknown',\n\t referral_code: referralCode || null,\n\t user_id: auth.state.user._id || 'anonymous'\n\t });\n\t }\n\t}\n\n if (order) {\n \tawait router.push({\n \t\tname: 'Order',\n \t\tparams: {\n \t\t\torder: order._id\n \t\t}\n \t})\n \t\t\n \tshopcart.actions.resetShopcart()\n\n } else {\n \talert('something wrong')\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.round-wrapper {\n\tposition: relative;\n\n\t.round {\n\t\tmargin: 0;\n\t\tmargin-right: 1rem;\n\t}\n\n\tinput:checked {\n\t\tbackground: #00ff88;\n\t}\n\n\t.round-checkmark {\n\t\tposition: absolute;\n\t\twidth: 0.5rem;\n\t\theight: 0.5rem;\n\t\tbackground: white;\n\n\t\tleft: 0.5rem;\n\t\ttop: 0.5rem;\n\n\t\topacity: 1;\n\t}\n}\n</style>"],"names":["ref","useRoute","useRouter","useGlobalMixins","computed","orders.state","users.state","shopcart.getters","globals.state","orders.getters","auth.state","orders.mutations","onMounted","users.actions","organizations.actions","shopcart.state","_a","_b","_c","watch","order","orders.actions","shopcart.actions"],"mappings":"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"}
1
+ {"version":3,"file":"OrderCreate.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderCreate.vue"],"sourcesContent":["<template>\n\n<section class=\"bg-white pd-thin\">\n\n\t<!-- Ask to login -->\n\t<AskToLogin class=\"mn-b-thin\" v-if=\"auth.state.access.status === false\" /> \n\n\t<!-- Empty State -->\n\t<EmptyState \n\t\tv-if=\"shopcart.state.positions < 1\" \n\t/>\t\n\t<Succes \n\t\tv-if=\"order.status === true && shopcart.state.positions.length > 0\" \n\t\t:order=\"order\" \n\t/>\n\t<!-- Уведомления о минимальной сумме заказа и времени работы -->\n\t<div v-if=\"shopcart.state.positions.length > 0 && orders.state.current.status !== true\" class=\"w-100 gap-thin cols-1 mn-b-thin\">\n\t\t<div v-if=\"!isOpen\" class=\"bg-fifth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ This spot is currently closed. You can place an order, but it will be processed when the spot opens.</p>\n\t\t</div>\n\t\t<div v-if=\"cartTotalPrice < minOrderAmount\" class=\"bg-fourth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ Minimum order amount is {{ formatPrice(minOrderAmount) }}. Your current total is {{ formatPrice(cartTotalPrice) }}.</p>\n\t\t</div>\n\t</div>\n\t<!-- Order form -->\n\t<div class=\"gap-small mn-b-thin cols-2\">\n\t\t<!-- Order Form -->\n\t\t<div\n\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\" \n\t\t\tclass=\"rows-1 gap-thin\"\n\t\t>\n\t\t\t<FormCustomerDetails\n\t\t\t\t:customer=\"orders.state.current.customer\"\n\t\t\t/>\n\t\t\t<FormPayment \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t<FormDelivery \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t\n\t\t</div>\n\n\t\t<!-- Order positions -->\n\t\t<div \n\t\t\tv-if=\"shopcart.state.positions.length > 0\" \n\t\t\tclass=\"bg-white br-solid br-light br-1px pd-medium radius-medium\"\n\t\t>\n\t\t\t<h4 class=\"font-second mn-b-thin\">Your Order</h4>\n\n\t\t\t<ul class=\"flex gap-thin flex-wrap mn-b-thin\">\n\t\t\t\t<CardOrderItem \n\t\t\t\t\tv-for=\"product in shopcart.state.positions\" \n\t\t\t\t\t:key=\"product._id\" \n\t\t\t\t\t:editable=\"true\" \n\t\t\t\t\t:product=\"product\" \n\t :increase=\"product => shopcart.actions.incrementItemQuantity(product._id)\"\n\t :decrease=\"product => shopcart.actions.decrementItemQuantity(product._id)\"\n\t :remove=\"product => shopcart.actions.removeProduct(product._id)\"\n\t\t\t\t\t@updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ productId: product._id, dates })\"\n\t class=\"w-100 bg-white \"\n\t />\n\t\t\t</ul>\n\n\t\t\t\t<div \n\t\t\t\tclass=\"mn-b-thin\"\n\t\t\t>\t\n\t\t\t\t<PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders.showFees\"\n :feesRate=\"globals.state.options?.orders.feesRate || 0\"\n :showVat=\"globals.state.options?.orders.showVat\"\n :vatRate=\"globals.state.options?.orders.vatRate || 0\"\n :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n />\n\t\t\t</div>\n\t\t\t<!-- Send order -->\n\t\t <Button\n v-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n :submit=\"() => handleCreate()\"\n class=\"bg-main mn-b-small pd-small radius-big w-100 button\"\n :disabled=\"\n\t\t errorName \n\t\t || errorPhoneOrMessenger \n\t\t || errorCity \n\t\t || errorAddress \n\t\t || errorDelivery \n\t\t || errorPayment\n\t\t || isLocationLoading\n\t\t || cartTotalPrice < minOrderAmount\n\t\t \"\n >\n <span>Place an Order</span>\n </Button>\n\n\t\t <p class='mn-b-thin'>\n\t\t\t\tI agree that placing the order places me under an obligation to make a payment in accordance with <a class=\"t-semi font-second t-second\" href=\"/legal/terms-of-use\" target=\"_blank\">Terms of Use.</a>\n\t\t\t</p>\n\t\t\t<p >\n\t\t\t\t\n\t\t\t</p>\n\t\t</div>\n\n\t</div>\n\n\t\n\t\n</section>\n\n</template>\n\n\n<script setup>\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import components\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Block\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n// Sections\nimport AskToLogin from '@martyrs/src/modules/orders/components/sections/AskToLogin.vue'\nimport Succes from '@martyrs/src/modules/orders/components/sections/Succes.vue'\nimport EmptyState from '@martyrs/src/modules/orders/components/sections/EmptyState.vue'\n\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\nimport FormCustomerDetails from '@martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue'\nimport FormDelivery from '@martyrs/src/modules/orders/components/sections/FormDelivery.vue'\nimport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import libs\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport { ref, computed, onMounted, watch } from 'vue'\nimport { useRoute,useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n// Store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations';\nimport * as orders from '@martyrs/src/modules/orders/store/orders';\nimport * as users from '@martyrs/src/modules/auth/views/store/users';\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Variables and computed\n//////////////////////////////////////////////////////////////////////////////////////////////////\nconst isLocationLoading = ref(false)\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\nconst { returnCurrency, formatPrice } = useGlobalMixins()\n// COMPUTED\nconst order = computed(() => orders.state.current)\nconst user = computed(() => users.state.current)\n\nconst cartTotalPrice = shopcart.getters.cartTotalPrice\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n// Organization\nconst orderOrganization = ref({})\nconst spotOrganization = ref({})\nconst isOpen = ref(true)\n\n// Новые переменные для проверки минимальной суммы заказа и времени работы\nconst minOrderAmount = ref(0)\n\nfunction checkIsOpenNow(worktime) {\n try {\n console.log('[checkIsOpenNow] worktime:', worktime);\n\n if (\n !worktime ||\n typeof worktime !== 'object' ||\n Array.isArray(worktime) ||\n !worktime.regular\n ) {\n console.log('[checkIsOpenNow] invalid, returning true');\n return true;\n }\n\n const now = new Date();\n const currentDay = now.getDay();\n const currentTime = `${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n\n console.log('[checkIsOpenNow] currentDay:', currentDay);\n console.log('[checkIsOpenNow] currentTime:', currentTime);\n\n const specialDay = worktime.special?.find(s => {\n const d = new Date(s.date);\n return (\n d.getFullYear() === today.getFullYear() &&\n d.getMonth() === today.getMonth() &&\n d.getDate() === today.getDate()\n );\n });\n\n if (specialDay) {\n console.log('[checkIsOpenNow] specialDay:', specialDay);\n if (!specialDay.isOpen) return false;\n return specialDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n }\n\n const regularDay = worktime.regular.find(d => d.dayOfWeek === currentDay);\n if (!regularDay || !regularDay.isOpen) return false;\n\n return regularDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n } catch (err) {\n console.error('[checkIsOpenNow] error:', err);\n return true;\n }\n}\n\n\nif (!globals.state.options.orders.allowUnauthenticatedOrders && !auth.state.user._id) { \n\trouter.push({name: 'Sign In'})\t\n}\n\n\norders.mutations.resetOrder()\n\nonMounted(async()=> {\n\temits('page-loading');\n\n\tisLocationLoading.value = true\n\n\tif (auth.state.user._id) {\n\t\tlet data = await users.actions.read({ _id:auth.state.user._id, user: auth.state.user._id });\n\n\t\torders.state.current.customer.profile.name = users.state.current.profile.name\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t}\n\t\n\torderOrganization.value = await organizations.actions.read({\n\t _id: shopcart.state.organization,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t})\n\t\n\t// Получаем информацию о минимальной сумме заказа и времени работы из spot\n\tif (orderOrganization.value && orderOrganization.value[0]?.spots?.length > 0) {\n\t spotOrganization.value = orderOrganization.value[0].spots[0];\n\t\tisOpen.value = checkIsOpenNow(spotOrganization.value.worktime);\n\t console.log(spotOrganization.value)\n\t minOrderAmount.value = spotOrganization.value.minorder || 0;\n\t}\n\n\n\t\n \tisLocationLoading.value = false\n emits('page-loaded');\n\n if (typeof gtag === 'function') {\n gtag('event', 'begin_checkout', {\n currency: returnCurrency(), // Замените на вашу валюту\n value: cartTotalPrice || 0,\n items: shopcart.state.positions.map(item => ({\n item_id: item.product?._id,\n item_name: item.product?.name,\n price: item.price || 0,\n quantity: item.quantity || 1,\n item_category: item.product?.category || '',\n item_brand: orderOrganization.value.profile?.name || ''\n })),\n organization: orderOrganization.value.profile?.name || '',\n location: globals.state.position?.location || 'unknown'\n });\n }\n})\n\n\nwatch(\n () => orders.state.current.delivery,\n async (newVal) => {\n if (newVal?.location) {\n \tisLocationLoading.value = true\n\n orderOrganization.value = await organizations.actions.read({\n _id: shopcart.state.organization,\n location: newVal.location,\n lookup: ['spots']\n })\n \n isLocationLoading.value = false\n }\n },\n { deep: true }\n)\n\n\n/////////////////////////////\n// Store Verification\n/////////////////////////////\nconst errorName = computed(() => {\n if (orders.state.current.customer.name?.length < 2) { return true } else { return false }\n});\n\nconst errorPhoneOrMessenger = computed(() => {\n const hasMessengerType = orders.state.current.customer.messenger?.type;\n const hasMessengerValue = orders.state.current.customer.messenger?.value?.length >\t 2;\n const hasPhone = orders.state.current.customer.number?.length > 0;\n // Ошибка, если нет ни номера телефона, ни корректного типа и значения мессенджера\n return !hasPhone && !(hasMessengerType && hasMessengerValue);\n});\n\nconst errorAddress = computed(() => {\n const type = orders.state.current.delivery.type;\n if (type === \"pickup\") {\n return !orders.state.current.delivery.spot;\n } else if (type === \"courier\" || type === \"mail\") {\n const address = orders.state.current.delivery.address;\n return !address || typeof address !== 'string' || address.length < 2;\n }\n return false;\n});\n\nconst errorDelivery = computed(() => {\n if (orders.state.current.delivery.type) {return false } else {return true } \n})\n\nconst errorPayment = computed(() => {\n if (orders.state.current.payment.type) { return false } else {return true } \n})\n/////////////////////////////\n// Methods\n/////////////////////////////\nasync function handleCreate() {\n\n\torders.state.current.status = 'created';\n\n\torders.state.current.owner = {\n\t\ttarget: orderOrganization.value[0]._id,\n\t\ttype: 'organization'\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.creator = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.customer = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\torders.state.current.positions = shopcart.state.positions\n\n \tconst referralCode = localStorage.getItem('referalCode');\n \n if (referralCode) {\n orders.state.current.referralCode = referralCode;\n }\n\n let order = await orders.actions.create(orders.state.current);\n\n if (order) {\n\t if (typeof gtag === 'function') {\n\t gtag('event', 'purchase', {\n\t transaction_id: order._id,\n\t value: cartTotalPrice || 0,\n\t currency: returnCurrency(), // Замените на вашу валюту\n\t tax: 0, // Если есть данные о налоге\n\t shipping: deliveryCost.value, // Если есть данные о доставке\n\t items: shopcart.state.positions.map(item => ({\n\t item_id: item.product?._id,\n\t item_name: item.product?.name ,\n\t price: item.price || 0,\n\t quantity: item.quantity || 1,\n\t item_category: item.product?.category || ''\n\t })),\n\t organization: orderOrganization.value?.profile?.name,\n\t location: globals.state.position?.location || 'unknown',\n\t referral_code: referralCode || null,\n\t user_id: auth.state.user._id || 'anonymous'\n\t });\n\t }\n\t}\n\n if (order) {\n \tawait router.push({\n \t\tname: 'Order',\n \t\tparams: {\n \t\t\torder: order._id\n \t\t}\n \t})\n \t\t\n \tshopcart.actions.resetShopcart()\n\n } else {\n \talert('something wrong')\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.round-wrapper {\n\tposition: relative;\n\n\t.round {\n\t\tmargin: 0;\n\t\tmargin-right: 1rem;\n\t}\n\n\tinput:checked {\n\t\tbackground: #00ff88;\n\t}\n\n\t.round-checkmark {\n\t\tposition: absolute;\n\t\twidth: 0.5rem;\n\t\theight: 0.5rem;\n\t\tbackground: white;\n\n\t\tleft: 0.5rem;\n\t\ttop: 0.5rem;\n\n\t\topacity: 1;\n\t}\n}\n</style>"],"names":["ref","useRoute","useRouter","useGlobalMixins","computed","orders.state","users.state","shopcart.getters","globals.state","orders.getters","auth.state","orders.mutations","onMounted","users.actions","organizations.actions","shopcart.state","_a","_b","_c","_d","watch","order","orders.actions","shopcart.actions"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ref, computed, onMounted, watch, createElementBlock, openBlock, createBlock, createCommentVNode, createElementVNode, createVNode, Fragment, renderList, unref, withCtx, createTextVNode } from "vue";
1
+ import { ref, computed, onMounted, watch, createElementBlock, openBlock, createBlock, createCommentVNode, createElementVNode, unref, toDisplayString, createVNode, Fragment, renderList, withCtx, createTextVNode } from "vue";
2
2
  import _sfc_main$9 from "../../../../components/Button/Button.vue2.js";
3
3
  import _sfc_main$7 from "../blocks/CardOrderItem.vue.js";
4
4
  import _sfc_main$1 from "../sections/AskToLogin.vue.js";
@@ -18,17 +18,30 @@ import { state, getters as getters$1, mutations, actions as actions$3 } from "..
18
18
  import { state as state$1, actions } from "../../../auth/views/store/users.js";
19
19
  /* empty css */
20
20
  const _hoisted_1 = { class: "bg-white pd-thin" };
21
- const _hoisted_2 = { class: "gap-small mn-b-thin cols-2" };
21
+ const _hoisted_2 = {
22
+ key: 3,
23
+ class: "w-100 gap-thin cols-1 mn-b-thin"
24
+ };
22
25
  const _hoisted_3 = {
23
- key: 2,
24
- class: "rows-1 gap-thin"
26
+ key: 0,
27
+ class: "bg-fifth-nano pd-small radius-medium t-center"
25
28
  };
26
29
  const _hoisted_4 = {
27
- key: 3,
30
+ key: 1,
31
+ class: "bg-fourth-nano pd-small radius-medium t-center"
32
+ };
33
+ const _hoisted_5 = { class: "t-fourth" };
34
+ const _hoisted_6 = { class: "gap-small mn-b-thin cols-2" };
35
+ const _hoisted_7 = {
36
+ key: 0,
37
+ class: "rows-1 gap-thin"
38
+ };
39
+ const _hoisted_8 = {
40
+ key: 1,
28
41
  class: "bg-white br-solid br-light br-1px pd-medium radius-medium"
29
42
  };
30
- const _hoisted_5 = { class: "flex gap-thin flex-wrap mn-b-thin" };
31
- const _hoisted_6 = { class: "mn-b-thin" };
43
+ const _hoisted_9 = { class: "flex gap-thin flex-wrap mn-b-thin" };
44
+ const _hoisted_10 = { class: "mn-b-thin" };
32
45
  const _sfc_main = {
33
46
  __name: "OrderCreate",
34
47
  emits: ["page-loading", "page-loaded"],
@@ -37,7 +50,7 @@ const _sfc_main = {
37
50
  const isLocationLoading = ref(false);
38
51
  useRoute();
39
52
  const router = useRouter();
40
- const { returnCurrency } = useGlobalMixins();
53
+ const { returnCurrency, formatPrice } = useGlobalMixins();
41
54
  const order = computed(() => state.current);
42
55
  computed(() => state$1.current);
43
56
  const cartTotalPrice = getters.cartTotalPrice;
@@ -49,12 +62,46 @@ const _sfc_main = {
49
62
  return getters$1.getDeliveryPrice(type, distance, config);
50
63
  });
51
64
  const orderOrganization = ref({});
65
+ const spotOrganization = ref({});
66
+ const isOpen = ref(true);
67
+ const minOrderAmount = ref(0);
68
+ function checkIsOpenNow(worktime) {
69
+ var _a, _b, _c;
70
+ try {
71
+ console.log("[checkIsOpenNow] worktime:", worktime);
72
+ if (!worktime || typeof worktime !== "object" || Array.isArray(worktime) || !worktime.regular) {
73
+ console.log("[checkIsOpenNow] invalid, returning true");
74
+ return true;
75
+ }
76
+ const now = /* @__PURE__ */ new Date();
77
+ const currentDay = now.getDay();
78
+ const currentTime = `${String(now.getHours()).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}`;
79
+ const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
80
+ console.log("[checkIsOpenNow] currentDay:", currentDay);
81
+ console.log("[checkIsOpenNow] currentTime:", currentTime);
82
+ const specialDay = (_a = worktime.special) == null ? void 0 : _a.find((s) => {
83
+ const d = new Date(s.date);
84
+ return d.getFullYear() === today.getFullYear() && d.getMonth() === today.getMonth() && d.getDate() === today.getDate();
85
+ });
86
+ if (specialDay) {
87
+ console.log("[checkIsOpenNow] specialDay:", specialDay);
88
+ if (!specialDay.isOpen) return false;
89
+ return (_b = specialDay.periods) == null ? void 0 : _b.some((p) => p.open <= currentTime && p.close > currentTime);
90
+ }
91
+ const regularDay = worktime.regular.find((d) => d.dayOfWeek === currentDay);
92
+ if (!regularDay || !regularDay.isOpen) return false;
93
+ return (_c = regularDay.periods) == null ? void 0 : _c.some((p) => p.open <= currentTime && p.close > currentTime);
94
+ } catch (err) {
95
+ console.error("[checkIsOpenNow] error:", err);
96
+ return true;
97
+ }
98
+ }
52
99
  if (!state$2.options.orders.allowUnauthenticatedOrders && !state$3.user._id) {
53
100
  router.push({ name: "Sign In" });
54
101
  }
55
102
  mutations.resetOrder();
56
103
  onMounted(async () => {
57
- var _a, _b, _c;
104
+ var _a, _b, _c, _d, _e;
58
105
  emits("page-loading");
59
106
  isLocationLoading.value = true;
60
107
  if (state$3.user._id) {
@@ -68,6 +115,12 @@ const _sfc_main = {
68
115
  location: (_a = state$2.position) == null ? void 0 : _a.location,
69
116
  lookup: ["spots"]
70
117
  });
118
+ if (orderOrganization.value && ((_c = (_b = orderOrganization.value[0]) == null ? void 0 : _b.spots) == null ? void 0 : _c.length) > 0) {
119
+ spotOrganization.value = orderOrganization.value[0].spots[0];
120
+ isOpen.value = checkIsOpenNow(spotOrganization.value.worktime);
121
+ console.log(spotOrganization.value);
122
+ minOrderAmount.value = spotOrganization.value.minorder || 0;
123
+ }
71
124
  isLocationLoading.value = false;
72
125
  emits("page-loaded");
73
126
  if (typeof gtag === "function") {
@@ -76,18 +129,18 @@ const _sfc_main = {
76
129
  // Замените на вашу валюту
77
130
  value: cartTotalPrice || 0,
78
131
  items: state$4.positions.map((item) => {
79
- var _a2, _b2, _c2, _d;
132
+ var _a2, _b2, _c2, _d2;
80
133
  return {
81
134
  item_id: (_a2 = item.product) == null ? void 0 : _a2._id,
82
135
  item_name: (_b2 = item.product) == null ? void 0 : _b2.name,
83
136
  price: item.price || 0,
84
137
  quantity: item.quantity || 1,
85
138
  item_category: ((_c2 = item.product) == null ? void 0 : _c2.category) || "",
86
- item_brand: ((_d = orderOrganization.value.profile) == null ? void 0 : _d.name) || ""
139
+ item_brand: ((_d2 = orderOrganization.value.profile) == null ? void 0 : _d2.name) || ""
87
140
  };
88
141
  }),
89
- organization: ((_b = orderOrganization.value.profile) == null ? void 0 : _b.name) || "",
90
- location: ((_c = state$2.position) == null ? void 0 : _c.location) || "unknown"
142
+ organization: ((_d = orderOrganization.value.profile) == null ? void 0 : _d.name) || "",
143
+ location: ((_e = state$2.position) == null ? void 0 : _e.location) || "unknown"
91
144
  });
92
145
  }
93
146
  });
@@ -217,13 +270,21 @@ const _sfc_main = {
217
270
  key: 0,
218
271
  class: "mn-b-thin"
219
272
  })) : createCommentVNode("", true),
220
- createElementVNode("div", _hoisted_2, [
221
- state$4.positions < 1 ? (openBlock(), createBlock(_sfc_main$2, { key: 0 })) : createCommentVNode("", true),
222
- order.value.status === true && state$4.positions.length > 0 ? (openBlock(), createBlock(_sfc_main$3, {
223
- key: 1,
224
- order: order.value
225
- }, null, 8, ["order"])) : createCommentVNode("", true),
226
- state.current.status !== true && state$4.positions.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_3, [
273
+ state$4.positions < 1 ? (openBlock(), createBlock(_sfc_main$2, { key: 1 })) : createCommentVNode("", true),
274
+ order.value.status === true && state$4.positions.length > 0 ? (openBlock(), createBlock(_sfc_main$3, {
275
+ key: 2,
276
+ order: order.value
277
+ }, null, 8, ["order"])) : createCommentVNode("", true),
278
+ state$4.positions.length > 0 && state.current.status !== true ? (openBlock(), createElementBlock("div", _hoisted_2, [
279
+ !isOpen.value ? (openBlock(), createElementBlock("div", _hoisted_3, _cache[0] || (_cache[0] = [
280
+ createElementVNode("p", { class: "t-fourth" }, "⚠️ This spot is currently closed. You can place an order, but it will be processed when the spot opens.", -1)
281
+ ]))) : createCommentVNode("", true),
282
+ unref(cartTotalPrice) < minOrderAmount.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
283
+ createElementVNode("p", _hoisted_5, "⚠️ Minimum order amount is " + toDisplayString(unref(formatPrice)(minOrderAmount.value)) + ". Your current total is " + toDisplayString(unref(formatPrice)(unref(cartTotalPrice))) + ".", 1)
284
+ ])) : createCommentVNode("", true)
285
+ ])) : createCommentVNode("", true),
286
+ createElementVNode("div", _hoisted_6, [
287
+ state.current.status !== true && state$4.positions.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_7, [
227
288
  createVNode(_sfc_main$4, {
228
289
  customer: state.current.customer
229
290
  }, null, 8, ["customer"]),
@@ -238,9 +299,9 @@ const _sfc_main = {
238
299
  organization: orderOrganization.value[0]
239
300
  }, null, 8, ["order", "organization"])) : createCommentVNode("", true)
240
301
  ])) : createCommentVNode("", true),
241
- state$4.positions.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_4, [
242
- _cache[1] || (_cache[1] = createElementVNode("h4", { class: "font-second mn-b-thin" }, "Your Order", -1)),
243
- createElementVNode("ul", _hoisted_5, [
302
+ state$4.positions.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_8, [
303
+ _cache[2] || (_cache[2] = createElementVNode("h4", { class: "font-second mn-b-thin" }, "Your Order", -1)),
304
+ createElementVNode("ul", _hoisted_9, [
244
305
  (openBlock(true), createElementBlock(Fragment, null, renderList(state$4.positions, (product) => {
245
306
  return openBlock(), createBlock(_sfc_main$7, {
246
307
  key: product._id,
@@ -254,7 +315,7 @@ const _sfc_main = {
254
315
  }, null, 8, ["product", "increase", "decrease", "remove", "onUpdateRentDates"]);
255
316
  }), 128))
256
317
  ]),
257
- createElementVNode("div", _hoisted_6, [
318
+ createElementVNode("div", _hoisted_10, [
258
319
  createVNode(_sfc_main$8, {
259
320
  totalPrice: unref(cartTotalPrice),
260
321
  deliveryRate: deliveryCost.value,
@@ -270,14 +331,14 @@ const _sfc_main = {
270
331
  key: 0,
271
332
  submit: () => handleCreate(),
272
333
  class: "bg-main mn-b-small pd-small radius-big w-100 button",
273
- disabled: errorName.value || errorPhoneOrMessenger.value || _ctx.errorCity || errorAddress.value || errorDelivery.value || errorPayment.value || isLocationLoading.value
334
+ disabled: errorName.value || errorPhoneOrMessenger.value || _ctx.errorCity || errorAddress.value || errorDelivery.value || errorPayment.value || isLocationLoading.value || unref(cartTotalPrice) < minOrderAmount.value
274
335
  }, {
275
- default: withCtx(() => _cache[0] || (_cache[0] = [
336
+ default: withCtx(() => _cache[1] || (_cache[1] = [
276
337
  createElementVNode("span", null, "Place an Order", -1)
277
338
  ])),
278
339
  _: 1
279
340
  }, 8, ["submit", "disabled"])) : createCommentVNode("", true),
280
- _cache[2] || (_cache[2] = createElementVNode("p", { class: "mn-b-thin" }, [
341
+ _cache[3] || (_cache[3] = createElementVNode("p", { class: "mn-b-thin" }, [
281
342
  createTextVNode(" I agree that placing the order places me under an obligation to make a payment in accordance with "),
282
343
  createElementVNode("a", {
283
344
  class: "t-semi font-second t-second",
@@ -285,7 +346,7 @@ const _sfc_main = {
285
346
  target: "_blank"
286
347
  }, "Terms of Use.")
287
348
  ], -1)),
288
- _cache[3] || (_cache[3] = createElementVNode("p", null, null, -1))
349
+ _cache[4] || (_cache[4] = createElementVNode("p", null, null, -1))
289
350
  ])) : createCommentVNode("", true)
290
351
  ])
291
352
  ]);