@ozdao/martyrs 0.2.505 → 0.2.507

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 (517) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/auth.server.cjs +1 -1
  6. package/dist/auth.server.js +1 -1
  7. package/dist/builder.cjs +52 -60
  8. package/dist/builder.js +52 -60
  9. package/dist/chats.server.cjs +1 -1
  10. package/dist/chats.server.js +1 -1
  11. package/dist/events.server.cjs +1 -1
  12. package/dist/events.server.js +1 -1
  13. package/dist/{mailing-q7sR8gCV.cjs → mailing-Bs9ThyVZ.cjs} +1 -24
  14. package/dist/{mailing-C11EYWm-.js → mailing-DzlhsxCC.js} +1 -24
  15. package/dist/main-AWSb_d2P.cjs +11 -0
  16. package/dist/{main-CJm5myDI.js → main-Dq-UfO4G.js} +2562 -2477
  17. package/dist/martyrs/src/components/Button/Button.vue2.cjs +1 -1
  18. package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
  19. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs +3 -3
  20. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs.map +1 -1
  21. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +3 -3
  22. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +1 -1
  24. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  25. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +15 -46
  26. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  27. package/dist/martyrs/src/components/Feed/Feed.vue.js +22 -53
  28. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  29. package/dist/martyrs/src/components/Field/Field.vue.cjs +14 -6
  30. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  31. package/dist/martyrs/src/components/Field/Field.vue.js +14 -6
  32. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  33. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +58 -11
  34. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +60 -13
  36. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  37. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
  38. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  39. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  40. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  41. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  42. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  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/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
  50. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
  51. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  52. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  53. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs +2 -2
  54. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs.map +1 -1
  55. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +2 -2
  56. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
  57. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  58. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
  60. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  62. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  63. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +42 -10
  64. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  65. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +44 -12
  66. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +11 -15
  68. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +21 -25
  70. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +12 -16
  72. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +33 -37
  74. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs +13 -9
  76. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js +13 -9
  78. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/auth/views/router/users.cjs +0 -4
  80. package/dist/martyrs/src/modules/auth/views/router/users.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/auth/views/router/users.js +0 -4
  82. package/dist/martyrs/src/modules/auth/views/router/users.js.map +1 -1
  83. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  85. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  87. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +431 -0
  88. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -0
  89. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +431 -0
  90. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -0
  91. package/dist/martyrs/src/modules/community/router/blogposts.cjs +17 -0
  92. package/dist/martyrs/src/modules/community/router/blogposts.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/community/router/blogposts.js +17 -0
  94. package/dist/martyrs/src/modules/community/router/blogposts.js.map +1 -1
  95. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  97. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -3
  98. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -3
  100. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
  103. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  104. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  105. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  107. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
  108. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  109. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  110. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  111. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +4 -6
  112. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +4 -6
  114. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
  115. package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.cjs → BlockMultiselect.vue.cjs} +2 -2
  116. package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.js.map → BlockMultiselect.vue.cjs.map} +1 -1
  117. package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.js → BlockMultiselect.vue.js} +2 -2
  118. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js.map +1 -0
  119. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs +5 -2
  120. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js +6 -3
  122. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  125. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  127. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -3
  128. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  129. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -3
  130. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  131. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +324 -0
  132. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
  133. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +324 -0
  134. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
  135. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.cjs +32 -0
  136. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.cjs.map +1 -0
  137. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.js +32 -0
  138. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.js.map +1 -0
  139. package/dist/martyrs/src/modules/icons/icons.client.cjs +2 -0
  140. package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/icons/icons.client.js +116 -114
  142. package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
  143. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +5 -3
  144. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
  145. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +117 -115
  146. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +11 -36
  149. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
  150. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +11 -36
  151. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
  152. package/dist/martyrs/src/modules/landing/landing.client.cjs +3 -0
  153. package/dist/martyrs/src/modules/landing/landing.client.cjs.map +1 -1
  154. package/dist/martyrs/src/modules/landing/landing.client.js +3 -0
  155. package/dist/martyrs/src/modules/landing/landing.client.js.map +1 -1
  156. package/dist/martyrs/src/modules/landing/locales/en.cjs +12 -0
  157. package/dist/martyrs/src/modules/landing/locales/en.cjs.map +1 -0
  158. package/dist/martyrs/src/modules/landing/locales/en.js +12 -0
  159. package/dist/martyrs/src/modules/landing/locales/en.js.map +1 -0
  160. package/dist/martyrs/src/modules/landing/locales/index.cjs +10 -0
  161. package/dist/martyrs/src/modules/landing/locales/index.cjs.map +1 -0
  162. package/dist/martyrs/src/modules/landing/locales/index.js +10 -0
  163. package/dist/martyrs/src/modules/landing/locales/index.js.map +1 -0
  164. package/dist/martyrs/src/modules/landing/locales/ru.cjs +12 -0
  165. package/dist/martyrs/src/modules/landing/locales/ru.cjs.map +1 -0
  166. package/dist/martyrs/src/modules/landing/locales/ru.js +12 -0
  167. package/dist/martyrs/src/modules/landing/locales/ru.js.map +1 -0
  168. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  169. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  170. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  171. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  172. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  173. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  174. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  175. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  176. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  177. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  178. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
  179. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
  180. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  181. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  182. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
  183. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  184. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
  185. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
  186. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  187. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  188. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
  189. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  190. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
  191. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
  192. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  193. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  194. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  195. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  196. package/dist/martyrs/src/modules/music/router/music.cjs +2 -4
  197. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  198. package/dist/martyrs/src/modules/music/router/music.js +2 -4
  199. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  200. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.cjs +86 -0
  201. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.cjs.map +1 -0
  202. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +86 -0
  203. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -0
  204. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.cjs +103 -0
  205. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.cjs.map +1 -0
  206. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +103 -0
  207. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -0
  208. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs +194 -0
  209. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs.map +1 -0
  210. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +194 -0
  211. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -0
  212. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +138 -0
  213. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs.map +1 -0
  214. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +138 -0
  215. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -0
  216. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +189 -0
  217. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs.map +1 -0
  218. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +189 -0
  219. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -0
  220. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +173 -0
  221. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs.map +1 -0
  222. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +173 -0
  223. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js.map +1 -0
  224. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs +233 -0
  225. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs.map +1 -0
  226. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +233 -0
  227. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -0
  228. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs +234 -0
  229. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs.map +1 -0
  230. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +234 -0
  231. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -0
  232. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +9 -8
  233. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  234. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +9 -8
  235. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  236. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +8 -82
  237. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  238. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +9 -83
  239. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  240. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +119 -0
  241. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs.map +1 -0
  242. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +119 -0
  243. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -0
  244. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +139 -0
  245. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs.map +1 -0
  246. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +139 -0
  247. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -0
  248. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -3
  249. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  250. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -3
  251. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  252. package/dist/martyrs/src/modules/orders/locales/en.cjs +38 -0
  253. package/dist/martyrs/src/modules/orders/locales/en.cjs.map +1 -0
  254. package/dist/martyrs/src/modules/orders/locales/en.js +38 -0
  255. package/dist/martyrs/src/modules/orders/locales/en.js.map +1 -0
  256. package/dist/martyrs/src/modules/orders/locales/index.cjs +10 -0
  257. package/dist/martyrs/src/modules/orders/locales/index.cjs.map +1 -0
  258. package/dist/martyrs/src/modules/orders/locales/index.js +10 -0
  259. package/dist/martyrs/src/modules/orders/locales/index.js.map +1 -0
  260. package/dist/martyrs/src/modules/orders/locales/ru.cjs +38 -0
  261. package/dist/martyrs/src/modules/orders/locales/ru.cjs.map +1 -0
  262. package/dist/martyrs/src/modules/orders/locales/ru.js +38 -0
  263. package/dist/martyrs/src/modules/orders/locales/ru.js.map +1 -0
  264. package/dist/martyrs/src/modules/orders/orders.client.cjs +78 -3
  265. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  266. package/dist/martyrs/src/modules/orders/orders.client.js +80 -5
  267. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  268. package/dist/martyrs/src/modules/orders/router/applications.router.cjs +17 -0
  269. package/dist/martyrs/src/modules/orders/router/applications.router.cjs.map +1 -0
  270. package/dist/martyrs/src/modules/orders/router/applications.router.js +17 -0
  271. package/dist/martyrs/src/modules/orders/router/applications.router.js.map +1 -0
  272. package/dist/martyrs/src/modules/orders/router/customers.router.cjs +18 -0
  273. package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -0
  274. package/dist/martyrs/src/modules/orders/router/customers.router.js +18 -0
  275. package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -0
  276. package/dist/martyrs/src/modules/orders/store/applications.cjs +4 -42
  277. package/dist/martyrs/src/modules/orders/store/applications.cjs.map +1 -1
  278. package/dist/martyrs/src/modules/orders/store/applications.js +3 -41
  279. package/dist/martyrs/src/modules/orders/store/applications.js.map +1 -1
  280. package/dist/martyrs/src/modules/orders/store/models/application.cjs +20 -0
  281. package/dist/martyrs/src/modules/orders/store/models/application.cjs.map +1 -0
  282. package/dist/martyrs/src/modules/orders/store/models/application.js +20 -0
  283. package/dist/martyrs/src/modules/orders/store/models/application.js.map +1 -0
  284. package/dist/martyrs/src/modules/orders/store/models/customer.cjs +13 -1
  285. package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
  286. package/dist/martyrs/src/modules/orders/store/models/customer.js +13 -1
  287. package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
  288. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  289. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  290. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  291. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  292. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +18 -194
  293. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  294. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +19 -195
  295. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  296. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  297. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  298. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  299. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  300. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  301. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  302. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -11
  303. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs.map +1 -1
  304. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +6 -15
  305. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js.map +1 -1
  306. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  307. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  308. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  309. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  310. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +85 -89
  311. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  312. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +92 -96
  313. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  314. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +5 -1
  315. package/dist/martyrs/src/modules/organizations/router/organizations.cjs.map +1 -1
  316. package/dist/martyrs/src/modules/organizations/router/organizations.js +5 -1
  317. package/dist/martyrs/src/modules/organizations/router/organizations.js.map +1 -1
  318. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  319. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  320. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs +3 -6
  321. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs.map +1 -1
  322. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js +3 -6
  323. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
  324. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +1 -1
  325. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  326. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
  327. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  328. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +2 -2
  329. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs.map +1 -1
  330. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +2 -2
  331. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
  332. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.cjs +1 -1
  333. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  334. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +22 -19
  335. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  336. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +22 -19
  337. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  338. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +27 -18
  339. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  340. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +27 -18
  341. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  342. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  343. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  344. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  345. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  346. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  347. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  348. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +361 -106
  349. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  350. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +379 -124
  351. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  352. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +20 -6
  353. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
  354. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +20 -6
  355. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  356. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +32 -2
  357. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
  358. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +33 -3
  359. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  360. package/dist/martyrs/src/modules/products/router/products.router.cjs +15 -0
  361. package/dist/martyrs/src/modules/products/router/products.router.cjs.map +1 -1
  362. package/dist/martyrs/src/modules/products/router/products.router.js +15 -0
  363. package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
  364. package/dist/martyrs/src/modules/products/store/categories.cjs +25 -7
  365. package/dist/martyrs/src/modules/products/store/categories.cjs.map +1 -1
  366. package/dist/martyrs/src/modules/products/store/categories.js +25 -7
  367. package/dist/martyrs/src/modules/products/store/categories.js.map +1 -1
  368. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  369. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs.map +1 -1
  370. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  371. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
  372. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +345 -0
  373. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -0
  374. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +345 -0
  375. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -0
  376. package/dist/martyrs/src/modules/spots/router/spots.cjs +17 -0
  377. package/dist/martyrs/src/modules/spots/router/spots.cjs.map +1 -1
  378. package/dist/martyrs/src/modules/spots/router/spots.js +17 -0
  379. package/dist/martyrs/src/modules/spots/router/spots.js.map +1 -1
  380. package/dist/martyrs.cjs.js +1 -1
  381. package/dist/martyrs.css +1 -1
  382. package/dist/martyrs.es.js +1 -1
  383. package/dist/notifications.server.cjs +1 -1
  384. package/dist/notifications.server.js +1 -1
  385. package/dist/orders.server.cjs +459 -201
  386. package/dist/orders.server.js +459 -201
  387. package/dist/organizations.server.cjs +1 -1
  388. package/dist/organizations.server.js +1 -1
  389. package/dist/products.server.cjs +439 -255
  390. package/dist/products.server.js +439 -255
  391. package/dist/style.css +115 -139
  392. package/dist/{tickets.controller-DQQcjyui.js → tickets.controller-C56OvH6v.js} +1 -1
  393. package/dist/{tickets.controller-D0V0gJCA.cjs → tickets.controller-DdnndM6c.cjs} +1 -1
  394. package/dist/wallet.server.cjs +1 -1
  395. package/dist/wallet.server.js +1 -1
  396. package/dist/{web-Dkk0_7TA.js → web-BXajFCU2.js} +1 -1
  397. package/dist/{web-stVkXd0l.cjs → web-DaBwwCQ5.cjs} +1 -1
  398. package/package.json +1 -1
  399. package/src/builder/modes/ssr.dev.js +10 -10
  400. package/src/builder/rspack/rspack.config.ssr.client.js +50 -50
  401. package/src/components/Checkbox/Checkbox.vue +3 -4
  402. package/src/components/Feed/Feed.old.vue +522 -0
  403. package/src/components/Feed/Feed.vue +4 -4
  404. package/src/components/Field/Field.vue +7 -1
  405. package/src/components/FieldBig/FieldBig.vue +62 -8
  406. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  407. package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
  408. package/src/modules/STYLES.MD +198 -0
  409. package/src/modules/auth/views/components/pages/Profile.vue +1 -1
  410. package/src/modules/auth/views/components/pages/ProfileEdit.vue +42 -8
  411. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +9 -11
  412. package/src/modules/auth/views/components/pages/ProfileEditProfile.vue +9 -11
  413. package/src/modules/auth/views/components/pages/ProfileEditSidebar.vue +7 -4
  414. package/src/modules/auth/views/router/users.js +0 -4
  415. package/src/modules/community/components/pages/Posts.vue +444 -0
  416. package/src/modules/community/router/blogposts.js +15 -0
  417. package/src/modules/events/components/pages/EventsBackoffice.vue +1 -1
  418. package/src/modules/globals/views/classes/globals.websocket.js +7 -8
  419. package/src/modules/globals/views/components/blocks/Card.vue +2 -1
  420. package/src/modules/globals/views/components/layouts/Client.vue +1 -2
  421. package/src/modules/globals/views/components/partials/FooterAlt.vue +161 -188
  422. package/src/modules/globals/views/components/sections/Filters.vue +261 -121
  423. package/src/modules/globals/views/components/sections/filters/FilterCheckbox.vue +78 -0
  424. package/src/modules/globals/views/components/sections/filters/FilterDateRange.vue +177 -0
  425. package/src/modules/globals/views/components/sections/filters/FilterRange.vue +51 -50
  426. package/src/modules/icons/entities/IconLock.vue +14 -0
  427. package/src/modules/icons/icons.client.js +2 -1
  428. package/src/modules/icons/pages/IconsPage.vue +4 -2
  429. package/src/modules/landing/components/sections/SubscribeNewsletter.vue +11 -61
  430. package/src/modules/landing/landing.client.js +6 -0
  431. package/src/modules/landing/locales/en.js +9 -0
  432. package/src/modules/landing/locales/index.js +7 -0
  433. package/src/modules/landing/locales/ru.js +9 -0
  434. package/src/modules/music/components/pages/Album.vue +1 -1
  435. package/src/modules/music/components/pages/Playlist.vue +1 -1
  436. package/src/modules/music/components/pages/Track.vue +1 -1
  437. package/src/modules/orders/components/blocks/CardApplication.vue +74 -0
  438. package/src/modules/orders/components/blocks/CardCustomer.vue +90 -0
  439. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +199 -0
  440. package/src/modules/orders/components/forms/FormApplicationDetails.vue +117 -0
  441. package/src/modules/orders/components/forms/FormCustomerDetails.vue +165 -0
  442. package/src/modules/orders/components/forms/FormSelectCustomer.vue +172 -0
  443. package/src/modules/orders/components/pages/Applications.vue +240 -0
  444. package/src/modules/orders/components/pages/Customers.vue +239 -0
  445. package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
  446. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +5 -76
  447. package/src/modules/orders/components/sections/ApplicationDetails.vue +91 -0
  448. package/src/modules/orders/components/sections/CustomerDetails.vue +107 -0
  449. package/src/modules/orders/locales/en.js +35 -0
  450. package/src/modules/orders/locales/index.js +7 -0
  451. package/src/modules/orders/locales/ru.js +35 -0
  452. package/src/modules/orders/middlewares/applications.verifier.js +189 -0
  453. package/src/modules/orders/middlewares/customers.verifier.js +251 -0
  454. package/src/modules/orders/models/application.model.js +21 -0
  455. package/src/modules/orders/models/customer.model.js +26 -0
  456. package/src/modules/orders/orders.client.js +86 -1
  457. package/src/modules/orders/orders.server.js +3 -1
  458. package/src/modules/orders/router/applications.router.js +15 -0
  459. package/src/modules/orders/router/customers.router.js +17 -0
  460. package/src/modules/orders/routes/applications.routes.js +124 -12
  461. package/src/modules/orders/routes/customers.routes.js +43 -0
  462. package/src/modules/orders/store/applications.js +3 -159
  463. package/src/modules/orders/store/models/application.js +18 -0
  464. package/src/modules/orders/store/models/customer.js +12 -0
  465. package/src/modules/organizations/components/pages/Organization.new.vue +593 -0
  466. package/src/modules/organizations/components/pages/Organization.vue +11 -202
  467. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  468. package/src/modules/organizations/components/sections/DetailsTabSection.vue +2 -2
  469. package/src/modules/organizations/configs/navigation.organization.config.js +69 -85
  470. package/src/modules/organizations/router/organizations.js +5 -0
  471. package/src/modules/pages/views/components/pages/Page.vue +1 -1
  472. package/src/modules/products/TASKS.MD +157 -0
  473. package/src/modules/products/components/blocks/CardCategory.vue +1 -1
  474. package/src/modules/products/components/blocks/ProductImages.vue +1 -1
  475. package/src/modules/products/components/pages/Categories.vue +27 -22
  476. package/src/modules/products/components/pages/CategoryEdit.vue +24 -13
  477. package/src/modules/products/components/pages/Products.vue +415 -174
  478. package/src/modules/products/components/sections/EditVariants.vue +14 -0
  479. package/src/modules/products/components/sections/ProductsRecommended.vue +46 -2
  480. package/src/modules/products/controllers/categories.controller.js +321 -282
  481. package/src/modules/products/controllers/configs/products.lookup.config.js +9 -0
  482. package/src/modules/products/controllers/products.controller.js +2 -1
  483. package/src/modules/products/controllers/queries/products.queries.js +183 -11
  484. package/src/modules/products/middlewares/categories.verifier.js +58 -15
  485. package/src/modules/products/middlewares/variants.verifier.js +12 -0
  486. package/src/modules/products/migrations/categories-to-materialized-path.js +433 -0
  487. package/src/modules/products/migrations/path-to-url.js +27 -0
  488. package/src/modules/products/models/category.model.js +8 -23
  489. package/src/modules/products/models/variant.model.js +3 -0
  490. package/src/modules/products/router/products.router.js +12 -0
  491. package/src/modules/products/store/categories.js +26 -7
  492. package/src/modules/rents/TASK.MD +161 -0
  493. package/src/modules/reports/components/sections/FormReport.vue +1 -1
  494. package/src/modules/spots/components/pages/Spots.vue +342 -0
  495. package/src/modules/spots/router/spots.js +15 -0
  496. package/src/styles/base/all.scss +2 -3
  497. package/src/styles/layout.scss +16 -0
  498. package/dist/main-DTaE01lg.cjs +0 -11
  499. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs +0 -96
  500. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs.map +0 -1
  501. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +0 -96
  502. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +0 -1
  503. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
  504. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
  505. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  506. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue2.cjs.map +0 -1
  507. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +0 -155
  508. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +0 -1
  509. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +0 -155
  510. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +0 -1
  511. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +0 -81
  512. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs.map +0 -1
  513. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +0 -81
  514. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js.map +0 -1
  515. package/src/modules/orders/components/sections/FormAddCustomer.vue +0 -152
  516. package/src/modules/orders/components/sections/FormCustomerDetails.vue +0 -67
  517. package/src/modules/orders/controllers/applications.controller.js +0 -122
@@ -0,0 +1,161 @@
1
+ Вот доработанный **общий план перепроектирования системы аренды**, с учётом **абсолютно произвольных промежутков времени** (не только суток):
2
+
3
+ ---
4
+
5
+ ## 1. Оставляем `Rent` как историю и бизнес‑логику
6
+
7
+ Модель `Rent` остаётся основной для хранения фактов аренды и истории.
8
+
9
+ Добавляем индексы, чтобы находить активные пересекающиеся аренды:
10
+
11
+ ```js
12
+ // В rent.model.js
13
+ RentSchema.index({ variant: 1, startDate: 1, endDate: 1 });
14
+ RentSchema.index({ product: 1, startDate: 1, endDate: 1 });
15
+ ```
16
+
17
+ ---
18
+
19
+ ## 2. Вводим коллекцию `TimeSlot` для любых интервалов
20
+
21
+ ### Зачем?
22
+
23
+ Чтобы быстро проверять доступность на произвольные интервалы времени, без тяжёлых агрегаций по коллекции `Rent`.
24
+
25
+ ### Схема
26
+
27
+ ```js
28
+ const TimeSlotSchema = new mongoose.Schema({
29
+ resource: {
30
+ type: mongoose.Schema.Types.ObjectId,
31
+ required: true,
32
+ index: true,
33
+ ref: 'Variant', // или Ingredient
34
+ },
35
+ start: {
36
+ type: Date,
37
+ required: true,
38
+ index: true,
39
+ },
40
+ end: {
41
+ type: Date,
42
+ required: true,
43
+ index: true,
44
+ },
45
+ reserved: {
46
+ type: Number,
47
+ required: true,
48
+ },
49
+ });
50
+ TimeSlotSchema.index({ resource: 1, start: 1, end: 1 });
51
+ TimeSlotSchema.index({ resource: 1, start: 1 });
52
+ TimeSlotSchema.index({ resource: 1, end: 1 });
53
+
54
+ const TimeSlot = db.mongoose.model('TimeSlot', TimeSlotSchema);
55
+ ```
56
+
57
+ ---
58
+
59
+ ## 3. Обновление `TimeSlot` при аренде
60
+
61
+ На подтверждение или отмену аренды:
62
+
63
+ ```js
64
+ async function updateTimeSlots(rent, delta) {
65
+ // Создаём или изменяем слот по точному периоду
66
+ const baseOp = {
67
+ updateOne: {
68
+ filter: {
69
+ resource: rent.variant,
70
+ start: rent.startDate,
71
+ end: rent.endDate
72
+ },
73
+ update: { $inc: { reserved: delta } },
74
+ upsert: true
75
+ }
76
+ };
77
+
78
+ const ingOps = rent.variant.ingredients.map(ing => ({
79
+ updateOne: {
80
+ filter: {
81
+ resource: ing._id,
82
+ start: rent.startDate,
83
+ end: rent.endDate
84
+ },
85
+ update: { $inc: { reserved: delta * ing.quantity * rent.quantity } },
86
+ upsert: true
87
+ }
88
+ }));
89
+
90
+ await TimeSlot.bulkWrite([baseOp, ...ingOps]);
91
+ }
92
+ ```
93
+
94
+ > Обновление происходит при изменении статуса `Rent`: `pending → confirmed`, `confirmed → canceled`, и т.д.
95
+
96
+ ---
97
+
98
+ ## 4. Проверка доступности на произвольный интервал
99
+
100
+ 1. Получаем `StockBalance` для варианта или ингредиента.
101
+ 2. Запрашиваем `TimeSlot`, которые **пересекают** интересующий интервал:
102
+
103
+ ```js
104
+ const overlapping = await TimeSlot.find({
105
+ resource: variantId,
106
+ $or: [
107
+ { start: { $lt: endDate }, end: { $gt: startDate } }
108
+ ]
109
+ }).lean();
110
+
111
+ const maxReserved = overlapping.reduce((sum, slot) => sum + slot.reserved, 0);
112
+ const stock = await StockBalance.findOne({ variant: variantId, storage });
113
+ const available = stock.quantity - maxReserved;
114
+ ```
115
+
116
+ 3. Для составных товаров:
117
+
118
+ * Повторяем проверку по каждому ингредиенту
119
+ * Берём минимум из доступных
120
+
121
+ ---
122
+
123
+ ## 5. Почему это быстро и гибко
124
+
125
+ * **Любые интервалы** — можно бронировать хоть на 15 минут, хоть на 5 дней.
126
+ * **Предикативная проверка** — пересекающиеся слоты запрашиваются мгновенно через индексы.
127
+ * **Чтение** — два лёгких запроса: в `StockBalance` и `TimeSlot`.
128
+ * **Запись** — один `bulkWrite` на аренду.
129
+ * **Мало документов** — каждый слот покрывает конкретный интервал, без дробления по дням.
130
+
131
+ ---
132
+
133
+ ## 6. Дополнительно
134
+
135
+ * **Нормализация по шагу** — при необходимости можно округлять интервалы к ближайшему часу/получасу.
136
+ * **TTL-удаление** — добавить TTL-индекс на `end`, чтобы автоматически удалять старые слоты.
137
+ * **Транзакции** — желательно использовать MongoDB transactions для консистентности между `Rent` и `TimeSlot`.
138
+ * **Промежуточный кэш** — если high-load, можно кэшировать слоты в Redis на популярные даты/ресурсы.
139
+ * **Поддержка `time-series`** — начиная с MongoDB 5.0 можно использовать `time-series` коллекции для хранения слотов.
140
+
141
+ ---
142
+
143
+ ## 7. Возможный гибрид: суточные + произвольные
144
+
145
+ Если большинство аренд всё же по дням:
146
+
147
+ * используем `DailySlot` (date‑based)
148
+ * и `FreeFormSlot` (с интервалами)
149
+ * проверка доступности объединяет оба типа
150
+
151
+ ---
152
+
153
+ ## Итого:
154
+
155
+ * **Rent** — остаётся неизменной как лог и история.
156
+ * **TimeSlot** — новая коллекция для fast-check.
157
+ * **Произвольные интервалы** — поддерживаются из коробки.
158
+ * **Масштабируемость** — высокая, агрегации не нужны.
159
+ * **Скорость** — мгновенные индексы по `(resource, start, end)`.
160
+
161
+ Такой подход используется в сложных системах бронирования (видеостудии, каршаринг, логистика), и подходит для MongoDB‑экосистемы.
@@ -32,7 +32,7 @@
32
32
  'other'
33
33
  ]"
34
34
  :placeholder="'Select reason'"
35
- class="mn-b-small bg-white br-solid br-black-transp br-1px uppercase pd-medium t-semi bg-white t-black radius-medium"
35
+ class="mn-b-small bg-white br-solid br-black-transp-10 br-1px uppercase pd-medium t-semi bg-white t-black radius-medium"
36
36
  />
37
37
 
38
38
  <p class="p-medium mn-b-small">Our moderators will review your report within 24 hours and take action if it violates our policies.</p>
@@ -0,0 +1,342 @@
1
+ <template>
2
+ <div class="pos-relative">
3
+ <header
4
+ v-if="route.name !== 'Organization' && !MOBILE_APP"
5
+ class="pd-medium flex-v-center flex-nowrap flex"
6
+ >
7
+ <h2 class="mn-r-medium">Spots</h2>
8
+ <button
9
+ v-if="hasAccess(route.params._id, 'spots', 'create', auth.state.accesses, auth.state.access.roles)"
10
+ @click="$router.push({
11
+ name: route.params?._id ? 'Organization_SpotAdd' : 'SpotAdd'
12
+ })"
13
+ class="radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second">
14
+ +
15
+ </button>
16
+ </header>
17
+
18
+ <div class="cols-2-1_3 br-1px br-solid br-light z-index-3 pos-relative">
19
+
20
+ <div class="o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative">
21
+ <div class="w-100 o-y-scroll h-100">
22
+ <!-- Categories -->
23
+ <div class="mn-b-medium" v-if="currentCategories.length > 0">
24
+ <h4 class="mn-b-small">
25
+ {{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}
26
+ </h4>
27
+ <div class="gap-micro">
28
+ <div
29
+ v-for="category in currentCategories"
30
+ :key="category._id"
31
+ @click="selectCategory(category)"
32
+ class="pd-small radius-small cursor-pointer hover-bg-light transition-all"
33
+ >
34
+ {{ category.name }}
35
+ </div>
36
+ </div>
37
+ </div>
38
+
39
+ <!-- Location Filter -->
40
+ <Spoiler
41
+ class="o-hidden mn-b-medium"
42
+ :status="true"
43
+ >
44
+ <template #header="{ isOpen }">
45
+ <div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
46
+ <h4 class="w-100">Location</h4>
47
+ <div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
48
+ <IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
49
+ </div>
50
+ </div>
51
+ </template>
52
+
53
+ <template #content>
54
+ <div class="mn-t-small">
55
+ <Field
56
+ v-model="searchLocation"
57
+ placeholder="Search location..."
58
+ type="text"
59
+ class="w-100 bg-light pd-small radius-small mn-b-small"
60
+ />
61
+ <Checkbox
62
+ v-for="location in locationOptions"
63
+ :key="location"
64
+ v-model:radio="selectedLocation"
65
+ :label="location"
66
+ :value="location"
67
+ mode="radio"
68
+ class="mn-b-micro"
69
+ />
70
+ </div>
71
+ </template>
72
+ </Spoiler>
73
+
74
+ <!-- Delivery Options -->
75
+ <Spoiler
76
+ class="o-hidden mn-b-medium"
77
+ :status="true"
78
+ >
79
+ <template #header="{ isOpen }">
80
+ <div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
81
+ <h4 class="w-100">Delivery Options</h4>
82
+ <div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
83
+ <IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
84
+ </div>
85
+ </div>
86
+ </template>
87
+
88
+ <template #content>
89
+ <div class="mn-t-small">
90
+ <Checkbox
91
+ v-for="option in deliveryOptions"
92
+ :key="option.value"
93
+ v-model:checkbox="selectedDeliveryOptions"
94
+ :label="option.label"
95
+ :value="option.value"
96
+ mode="checkbox"
97
+ class="mn-b-micro"
98
+ />
99
+ </div>
100
+ </template>
101
+ </Spoiler>
102
+
103
+ <!-- Payment Options -->
104
+ <Spoiler
105
+ class="o-hidden mn-b-medium"
106
+ :status="true"
107
+ >
108
+ <template #header="{ isOpen }">
109
+ <div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
110
+ <h4 class="w-100">Payment Options</h4>
111
+ <div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
112
+ <IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
113
+ </div>
114
+ </div>
115
+ </template>
116
+
117
+ <template #content>
118
+ <div class="mn-t-small">
119
+ <Checkbox
120
+ v-for="option in paymentOptions"
121
+ :key="option.value"
122
+ v-model:checkbox="selectedPaymentOptions"
123
+ :label="option.label"
124
+ :value="option.value"
125
+ mode="checkbox"
126
+ class="mn-b-micro"
127
+ />
128
+ </div>
129
+ </template>
130
+ </Spoiler>
131
+
132
+ <!-- Clear Filters Button -->
133
+ <button
134
+ @click="clearFilters"
135
+ class="bg-main w-100 button mn-t-medium"
136
+ >
137
+ Clear Filters
138
+ </button>
139
+ </div>
140
+ </div>
141
+
142
+ <div class="w-100 rows-1 pd-thin pos-relative o-hidden">
143
+ <Filters
144
+ v-model:filters="availableFilters"
145
+ v-model:selected="selectedFilters"
146
+ />
147
+
148
+ <div class="mn-b-thin w-100 o-y-scroll scroll-hide scroll-snap-type-x-mandatory scroll-pd-regular">
149
+ <div class="gap-thin flex-nowrap flex">
150
+ <div
151
+ v-for="category in currentCategories"
152
+ :key="category._id"
153
+ @click="selectCategory(category)"
154
+ class="flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover-bg-light transition-all"
155
+ >
156
+ {{ category.name }}
157
+ </div>
158
+ </div>
159
+ </div>
160
+
161
+ <Feed
162
+ :search="true"
163
+ v-model:filter="spots.state.filter"
164
+ v-model:sort="spots.state.sort"
165
+ :showLoadMore="false"
166
+ :states="{
167
+ empty: {
168
+ title: 'No Spots Found',
169
+ description: 'Currently, there are no spots available.'
170
+ }
171
+ }"
172
+ :store="{
173
+ read: (options) => spots.actions.read(options),
174
+ state: spots.state
175
+ }"
176
+ :options="{
177
+ limit: 12,
178
+ organization: route.params._id || null,
179
+ user: auth.state.user._id,
180
+ location: selectedLocation,
181
+ deliveryOptions: selectedDeliveryOptions,
182
+ paymentOptions: selectedPaymentOptions,
183
+ search: route.query.search
184
+ }"
185
+ v-slot="{
186
+ items
187
+ }"
188
+ class="cols-3 pos-relative w-100 rows-1 gap-thin"
189
+ >
190
+ <CardSpot
191
+ v-for="(spot, index) in items"
192
+ :key="index"
193
+ :spot="spot"
194
+ :organization="organization"
195
+ :editAccess="hasAccess(route.params._id, 'spots', 'edit', auth.state.accesses, auth.state.access.roles)"
196
+ :showDeliveryOptions="true"
197
+ :showPaymentOptions="true"
198
+ class="radius-medium h-min-big bg-light"
199
+ @click="$router.push({
200
+ name: route.params._id ? 'Organization_Spot' : 'Spot',
201
+ params: {
202
+ _id: route.params._id,
203
+ spot: spot._id
204
+ }
205
+ })"
206
+ />
207
+ </Feed>
208
+
209
+ <button
210
+ v-if="hasAccess(route.params._id, 'spots', 'create', auth.state.accesses, auth.state.access.roles)"
211
+ @click="$router.push(`/spots/${route.params._id}/spots/create`)"
212
+ class="mn-t-medium bg-main button w-100"
213
+ >
214
+ Add New Spot
215
+ </button>
216
+ </div>
217
+ </div>
218
+ </div>
219
+ </template>
220
+
221
+ <script setup="props">
222
+ // Import libs
223
+ import { ref, computed, watch, onMounted, onUnmounted } from 'vue'
224
+ import { useRoute, useRouter } from 'vue-router'
225
+
226
+ // Import components
227
+ import Feed from '@martyrs/src/components/Feed/Feed.vue'
228
+ import Filters from '@martyrs/src/modules/globals/views/components/sections/Filters.vue'
229
+ import Spoiler from "@martyrs/src/components/Spoiler/Spoiler.vue"
230
+ import Field from "@martyrs/src/components/Field/Field.vue"
231
+ import Checkbox from "@martyrs/src/components/Checkbox/Checkbox.vue"
232
+
233
+ import CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue'
234
+
235
+ import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'
236
+ import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'
237
+
238
+ // Accessing router and store
239
+ import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
240
+ import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';
241
+ import * as spots from '@martyrs/src/modules/spots/store/spots.js';
242
+ import * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';
243
+ import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';
244
+
245
+ const route = useRoute()
246
+ const router = useRouter()
247
+ const { hasAccess } = useGlobalMixins()
248
+
249
+ // Props
250
+ const props = defineProps({
251
+ organization: {
252
+ type: Object,
253
+ default: null
254
+ }
255
+ })
256
+
257
+ // Categories
258
+ const currentCategories = ref([]);
259
+ const searchLocation = ref('');
260
+ const selectedLocation = ref('All');
261
+ const locationOptions = ref(['All', 'Phuket', 'Bangkok', 'Chiang Mai', 'Pattaya']);
262
+
263
+ // Delivery options
264
+ const deliveryOptions = ref([
265
+ { label: 'Pickup', value: 'pickup' },
266
+ { label: 'Delivery', value: 'delivery' },
267
+ { label: 'Dine-in', value: 'dinein' }
268
+ ]);
269
+ const selectedDeliveryOptions = ref([]);
270
+
271
+ // Payment options
272
+ const paymentOptions = ref([
273
+ { label: 'Cash', value: 'cash' },
274
+ { label: 'Card', value: 'card' },
275
+ { label: 'Crypto', value: 'crypto' },
276
+ { label: 'Bank Transfer', value: 'transfer' }
277
+ ]);
278
+ const selectedPaymentOptions = ref([]);
279
+
280
+ const availableFilters = ref([
281
+ {
282
+ title: 'Location',
283
+ value: 'location',
284
+ type: 'radio',
285
+ options: locationOptions.value.map(loc => ({ label: loc, value: loc }))
286
+ },
287
+ {
288
+ title: 'Type',
289
+ value: 'type',
290
+ type: 'checkbox',
291
+ options: [
292
+ { label: 'Restaurant', value: 'restaurant' },
293
+ { label: 'Cafe', value: 'cafe' },
294
+ { label: 'Bar', value: 'bar' },
295
+ { label: 'Club', value: 'club' }
296
+ ]
297
+ }
298
+ ])
299
+
300
+ const selectedFilters = ref({
301
+ location: 'All',
302
+ type: []
303
+ })
304
+
305
+ const selectCategory = (category) => {
306
+ // Implementation for category selection
307
+ console.log('Category selected:', category);
308
+ };
309
+
310
+ const clearFilters = () => {
311
+ selectedLocation.value = 'All';
312
+ selectedDeliveryOptions.value = [];
313
+ selectedPaymentOptions.value = [];
314
+ searchLocation.value = '';
315
+ selectedFilters.value = {
316
+ location: 'All',
317
+ type: []
318
+ };
319
+ };
320
+
321
+ globals.state.navigation_bar.actions = [{
322
+ component: IconPlus,
323
+ props: {
324
+ fill: "rgb(var(--main))"
325
+ },
326
+ condition: () => auth.state.user && auth.state.user._id,
327
+ action: () => route.params._id ? router.push({ name: 'Organization_SpotAdd', params: { _id: route.params._id} }) : router.push({ name: 'SpotAdd' })
328
+ }]
329
+
330
+ onMounted(async () => {
331
+ if (route.params._id) {
332
+ await organizations.actions.read({ _id: route.params._id });
333
+ }
334
+ })
335
+
336
+ onUnmounted(() => {
337
+ globals.state.navigation_bar.actions = [];
338
+ });
339
+ </script>
340
+
341
+ <style lang="scss">
342
+ </style>
@@ -3,6 +3,21 @@ import layoutSpots from '../components/layouts/Spots.vue';
3
3
 
4
4
  import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';
5
5
 
6
+ // Function to create organization spots routes
7
+ export const createSpotsRoutes = (prefix = '') => {
8
+ return {
9
+ path: 'spots',
10
+ name: `${prefix}Spots`,
11
+ meta: {
12
+ title: {
13
+ en: 'Spots',
14
+ ru: 'Точки',
15
+ },
16
+ },
17
+ component: () => import(/* webpackChunkName: "organization-spots" */ '../components/pages/Spots.vue'),
18
+ };
19
+ };
20
+
6
21
  const spots = {
7
22
  path: 'spots',
8
23
  component: layoutEmpty,
@@ -48,9 +48,9 @@ body {
48
48
  .w-m-66r { width: min(100%, 66rem); }
49
49
  .w-m-60r { width: min(100%, 60rem); }
50
50
  .w-m-50r { width: min(100%, 50rem); }
51
+ .h-m-40r { height: min(100%, 40rem); }
51
52
  .w-m-40r { width: min(100%, 40rem); }
52
53
  .w-m-33r { width: min(100%, 33rem); }
53
- .w-minmax-33r-100 { width: max(33rem, 100%); }
54
54
  .w-m-25r { width: min(100%, 25rem); }
55
55
  .w-m-20r { width: min(100%, 20rem); }
56
56
  .w-m-15r { width: min(100%, 15rem); }
@@ -257,8 +257,7 @@ body {
257
257
  .col-w-100 {
258
258
  grid-column: 1 / -1
259
259
  }
260
- // Rows
261
- .rows-1 {display: grid; grid-template-rows: auto 1fr; }
260
+ .rows-1 {display: grid; grid-template-columns: 100%; grid-auto-rows: minmax(auto, max-content); }
262
261
  .rows-1-min0_max1 {display: grid; grid-template-rows: minmax(0, 1fr); }
263
262
  .rows-auto { grid-auto-flow: row;
264
263
  grid-auto-columns: auto;
@@ -38,6 +38,22 @@ span, p {
38
38
  box-shadow: inset 0 0 0 1px rgba(var(--second), 1), 0 0 6px 2px rgba(var(--second), 0.1);
39
39
  }
40
40
 
41
+ .field-wrapper:has(input:-webkit-autofill),
42
+ .field-wrapper:has(textarea:-webkit-autofill),
43
+ .field-wrapper:has(select:-webkit-autofill) {
44
+ background: rgb(255, 250, 150);
45
+ }
46
+
47
+ /* Также перекрашиваем сам autofill input */
48
+ .field-wrapper input:-webkit-autofill,
49
+ .field-wrapper textarea:-webkit-autofill,
50
+ .field-wrapper select:-webkit-autofill {
51
+ background: rgb(255, 250, 150) !important;
52
+ -webkit-box-shadow: 0 0 0 1000px rgb(255, 250, 150) inset !important;
53
+ -webkit-text-fill-color: #000 !important;
54
+ transition: background-color 5000s ease-in-out 0s;
55
+ }
56
+
41
57
  .clickable {
42
58
  transition: border-width .2s, box-shadow .2s ease;
43
59
  }