@ozdao/martyrs 0.2.519 → 0.2.520

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 (341) hide show
  1. package/dist/chats.server.cjs +198 -1
  2. package/dist/chats.server.js +198 -1
  3. package/dist/{main-Wr1_4rwl.cjs → main-BM3GslOO.cjs} +6 -6
  4. package/dist/{main-DgGUrhjT.js → main-Qcn7YlTx.js} +1832 -1828
  5. package/dist/martyrs/src/components/Address/{Address.vue2.cjs → Address.vue.cjs} +2 -2
  6. package/dist/martyrs/src/components/Address/{Address.vue2.js.map → Address.vue.cjs.map} +1 -1
  7. package/dist/martyrs/src/components/Address/{Address.vue2.js → Address.vue.js} +2 -2
  8. package/dist/martyrs/src/components/Address/Address.vue.js.map +1 -0
  9. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +0 -1
  10. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  11. package/dist/martyrs/src/components/Feed/Feed.vue.js +0 -1
  12. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  13. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.cjs → LocationMarker.vue.cjs} +2 -2
  14. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js.map → LocationMarker.vue.cjs.map} +1 -1
  15. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js → LocationMarker.vue.js} +2 -2
  16. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -0
  17. package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
  18. package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
  19. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  21. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.cjs +2 -2
  22. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  23. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  24. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  25. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  26. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  27. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  28. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
  29. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +4 -4
  30. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +40 -50
  32. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +59 -69
  34. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  35. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +11 -13
  36. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +11 -13
  38. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  39. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +9 -0
  40. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  41. package/dist/martyrs/src/modules/auth/views/store/auth.js +9 -0
  42. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  43. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs +27 -11
  44. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs.map +1 -1
  45. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +28 -12
  46. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  47. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +62 -0
  48. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +63 -1
  50. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  51. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +60 -1
  52. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  53. package/dist/martyrs/src/modules/chats/store/chat.store.js +60 -1
  54. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  55. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
  56. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  57. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  58. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  59. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  61. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +50 -368
  62. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -1
  63. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +53 -371
  64. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
  67. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  68. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +0 -1
  70. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  71. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +0 -1
  72. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  73. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +2 -2
  74. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  75. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  76. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  77. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  79. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  81. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  83. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +2 -2
  84. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +2 -2
  85. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +7 -0
  87. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  88. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +7 -0
  89. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
  90. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -1
  91. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  93. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  95. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  97. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +180 -19
  98. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +181 -20
  100. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  103. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  105. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  107. package/dist/martyrs/src/modules/music/router/music.cjs +0 -1
  108. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/music/router/music.js +0 -1
  110. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  111. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +2 -2
  112. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  114. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  117. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  119. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  121. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -3
  122. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -3
  124. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  127. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -24
  128. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
  129. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -27
  130. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
  131. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs +4 -1
  132. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs.map +1 -1
  133. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +4 -1
  134. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +3 -3
  136. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
  137. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +3 -3
  138. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +195 -0
  140. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -0
  141. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +195 -0
  142. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -0
  143. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +402 -0
  144. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -0
  145. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +402 -0
  146. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -0
  147. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +86 -0
  148. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -0
  149. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +86 -0
  150. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -0
  151. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
  152. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +11 -11
  154. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +279 -191
  156. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +285 -197
  158. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  159. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +5 -5
  160. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +5 -5
  162. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  164. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  166. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  170. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  173. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  174. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  175. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  176. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs +4 -4
  178. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js +4 -4
  180. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +42 -41
  182. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  183. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +53 -52
  184. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  185. package/dist/martyrs/src/modules/organizations/organizations.client.cjs +23 -16
  186. package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/organizations/organizations.client.js +35 -28
  188. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  189. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +0 -18
  190. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
  191. package/dist/martyrs/src/modules/organizations/router/departments.router.js +0 -18
  192. package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
  193. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs +6 -0
  194. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs.map +1 -0
  195. package/dist/martyrs/src/modules/organizations/store/departments.store.js +6 -0
  196. package/dist/martyrs/src/modules/organizations/store/departments.store.js.map +1 -0
  197. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs +6 -0
  198. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs.map +1 -0
  199. package/dist/martyrs/src/modules/organizations/store/invites.store.js +6 -0
  200. package/dist/martyrs/src/modules/organizations/store/invites.store.js.map +1 -0
  201. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs +20 -0
  202. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs.map +1 -0
  203. package/dist/martyrs/src/modules/organizations/store/memberships.store.js +20 -0
  204. package/dist/martyrs/src/modules/organizations/store/memberships.store.js.map +1 -0
  205. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -3
  206. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  207. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -3
  208. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  211. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  212. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  213. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  214. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  215. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  216. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  217. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  218. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  219. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  221. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +2 -2
  222. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  223. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +2 -2
  224. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  225. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  226. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  227. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  228. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  229. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +60 -272
  230. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -1
  231. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +62 -274
  232. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  235. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  237. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
  238. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  239. package/dist/martyrs.cjs.js +1 -1
  240. package/dist/martyrs.css +1 -1
  241. package/dist/martyrs.es.js +1 -1
  242. package/dist/notifications.server.cjs +0 -24
  243. package/dist/notifications.server.js +0 -24
  244. package/dist/orders.server.cjs +1 -4
  245. package/dist/orders.server.js +1 -4
  246. package/dist/organizations.server.cjs +115 -39
  247. package/dist/organizations.server.js +115 -39
  248. package/dist/style.css +9 -9
  249. package/dist/{web-42I-Howt.cjs → web-B0cfxzgu.cjs} +1 -1
  250. package/dist/{web-ByhZ_fIu.js → web-DVR8m2fm.js} +1 -1
  251. package/package.json +1 -1
  252. package/src/components/Feed/Feed.old.vue +0 -1
  253. package/src/components/Feed/Feed.vue +0 -30
  254. package/src/modules/auth/FIXES.md +2 -26
  255. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  256. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  257. package/src/modules/auth/views/components/pages/Invite.vue +2 -2
  258. package/src/modules/auth/views/components/pages/Profile.vue +33 -48
  259. package/src/modules/auth/views/components/sections/SliderFeatures.vue +5 -7
  260. package/src/modules/auth/views/store/auth.js +15 -0
  261. package/src/modules/chats/CLAUDE.md +137 -0
  262. package/src/modules/chats/components/blocks/ChatMessage.vue +12 -0
  263. package/src/modules/chats/components/sections/ChatWindow.vue +84 -2
  264. package/src/modules/chats/controllers/chats.controller.js +187 -0
  265. package/src/modules/chats/models/chat.model.js +21 -0
  266. package/src/modules/chats/routes/chats.routes.js +46 -0
  267. package/src/modules/chats/store/chat.store.js +67 -0
  268. package/src/modules/community/components/layouts/Community.vue +2 -2
  269. package/src/modules/community/components/pages/Posts.vue +3 -328
  270. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  271. package/src/modules/events/components/pages/Events.vue +2 -2
  272. package/src/modules/globals/views/mixins/mixins.js +7 -0
  273. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +160 -8
  274. package/src/modules/notifications/controllers/notifications.controller.js +0 -6
  275. package/src/modules/notifications/services/notification.service.js +1 -17
  276. package/src/modules/notifications/services/web-push.service.js +0 -2
  277. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +2 -2
  278. package/src/modules/orders/components/blocks/CardOrderVar1.vue +1 -1
  279. package/src/modules/orders/controllers/orders.controller.js +2 -4
  280. package/src/modules/organizations/CLAUDE.md +259 -0
  281. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -22
  282. package/src/modules/organizations/components/blocks/Socials.vue +1 -1
  283. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +3 -3
  284. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +191 -0
  285. package/src/modules/organizations/components/forms/DepartmentForm.vue +390 -0
  286. package/src/modules/organizations/components/forms/InviteForm.vue +81 -0
  287. package/src/modules/organizations/components/pages/Department.vue +10 -10
  288. package/src/modules/organizations/components/pages/DepartmentEdit.vue +8 -8
  289. package/src/modules/organizations/components/pages/Members.vue +265 -171
  290. package/src/modules/organizations/components/pages/Organization.new.vue +172 -183
  291. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  292. package/src/modules/organizations/components/pages/OrganizationEdit.vue +1 -1
  293. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  294. package/src/modules/organizations/components/sections/Organizations.vue +2 -2
  295. package/src/modules/organizations/components/sections/Publics.vue +4 -4
  296. package/src/modules/organizations/configs/navigation.organization.config.js +40 -39
  297. package/src/modules/organizations/controllers/departments.controller.js +53 -34
  298. package/src/modules/organizations/controllers/invites.controller.js +44 -5
  299. package/src/modules/organizations/controllers/memberships.controller.js +43 -4
  300. package/src/modules/organizations/organizations.client.js +24 -15
  301. package/src/modules/organizations/router/departments.router.js +0 -18
  302. package/src/modules/organizations/routes/departments.routes.js +6 -8
  303. package/src/modules/organizations/routes/invites.routes.js +6 -4
  304. package/src/modules/organizations/routes/memberships.routes.js +6 -5
  305. package/src/modules/organizations/store/departments.store.js +5 -0
  306. package/src/modules/organizations/store/invites.store.js +5 -0
  307. package/src/modules/organizations/store/memberships.store.js +23 -0
  308. package/src/modules/products/components/pages/Products.vue +0 -1
  309. package/src/modules/spots/components/blocks/CardSpot.vue +1 -1
  310. package/src/modules/spots/components/pages/Spots.vue +3 -203
  311. package/src/styles/base/all.scss +0 -15
  312. package/src/styles/typography.scss +20 -5
  313. package/dist/martyrs/src/components/Address/Address.vue2.cjs.map +0 -1
  314. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs.map +0 -1
  315. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
  316. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +0 -76
  317. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +0 -1
  318. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js +0 -76
  319. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +0 -1
  320. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +0 -280
  321. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +0 -1
  322. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +0 -280
  323. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +0 -1
  324. package/dist/martyrs/src/modules/organizations/store/departments.cjs +0 -121
  325. package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +0 -1
  326. package/dist/martyrs/src/modules/organizations/store/departments.js +0 -121
  327. package/dist/martyrs/src/modules/organizations/store/departments.js.map +0 -1
  328. package/dist/martyrs/src/modules/organizations/store/invites.cjs +0 -64
  329. package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +0 -1
  330. package/dist/martyrs/src/modules/organizations/store/invites.js +0 -64
  331. package/dist/martyrs/src/modules/organizations/store/invites.js.map +0 -1
  332. package/dist/martyrs/src/modules/organizations/store/memberships.cjs +0 -87
  333. package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +0 -1
  334. package/dist/martyrs/src/modules/organizations/store/memberships.js +0 -87
  335. package/dist/martyrs/src/modules/organizations/store/memberships.js.map +0 -1
  336. package/src/CLAUDE.MD +0 -15
  337. package/src/modules/globals/controllers/classes/globals.websocket.ws.js +0 -102
  338. package/src/modules/globals/views/components/blocks/BlockFilter.vue +0 -60
  339. package/src/modules/organizations/store/departments.js +0 -137
  340. package/src/modules/organizations/store/invites.js +0 -76
  341. package/src/modules/organizations/store/memberships.js +0 -110
@@ -1,13 +1,127 @@
1
1
  <template>
2
2
  <div class="cols-2-1_3 z-index-3 pos-relative radius-big">
3
3
 
4
- <div class="o-y-scroll br-r br-solid br-light z-index-2 desktop-only h-100 pos-relative">
5
- <BlockFilter
6
- v-model:filter="marketplace.state.filter"
7
- :options="marketplace.state.filter.options"
8
- class="h-100 w-100 pd-medium"
9
- />
10
- </div>
4
+ <div class="o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative">
5
+ <div class="w-100 o-y-scroll h-100">
6
+ <!-- Categories -->
7
+ <div class="mn-b-medium" v-if="currentCategories.length > 0">
8
+ <h4 class="mn-b-small">
9
+ {{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}
10
+ </h4>
11
+ <div class="gap-micro">
12
+ <div
13
+ v-for="category in currentCategories"
14
+ :key="category._id"
15
+ @click="selectCategory(category)"
16
+ class="pd-small radius-small cursor-pointer hover-bg-light transition-all"
17
+ >
18
+ {{ category.name }}
19
+ </div>
20
+ </div>
21
+ </div>
22
+
23
+ <!-- Location Filter -->
24
+ <Spoiler
25
+ class="o-hidden mn-b-medium"
26
+ :status="true"
27
+ >
28
+ <template #header="{ isOpen }">
29
+ <div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
30
+ <h4 class="w-100">Location</h4>
31
+ <div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
32
+ <IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
33
+ </div>
34
+ </div>
35
+ </template>
36
+
37
+ <template #content>
38
+ <div class="mn-t-small">
39
+ <Field
40
+ v-model="searchLocation"
41
+ placeholder="Search location..."
42
+ type="text"
43
+ class="w-100 bg-light pd-small radius-small mn-b-small"
44
+ />
45
+ <Checkbox
46
+ v-for="location in locationOptions"
47
+ :key="location"
48
+ v-model:radio="selectedLocation"
49
+ :label="location"
50
+ :value="location"
51
+ mode="radio"
52
+ class="mn-b-micro"
53
+ />
54
+ </div>
55
+ </template>
56
+ </Spoiler>
57
+
58
+ <!-- Delivery Options -->
59
+ <Spoiler
60
+ class="o-hidden mn-b-medium"
61
+ :status="true"
62
+ >
63
+ <template #header="{ isOpen }">
64
+ <div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
65
+ <h4 class="w-100">Delivery Options</h4>
66
+ <div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
67
+ <IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
68
+ </div>
69
+ </div>
70
+ </template>
71
+
72
+ <template #content>
73
+ <div class="mn-t-small">
74
+ <Checkbox
75
+ v-for="option in deliveryOptions"
76
+ :key="option.value"
77
+ v-model:checkbox="selectedDeliveryOptions"
78
+ :label="option.label"
79
+ :value="option.value"
80
+ mode="checkbox"
81
+ class="mn-b-micro"
82
+ />
83
+ </div>
84
+ </template>
85
+ </Spoiler>
86
+
87
+ <!-- Payment Options -->
88
+ <Spoiler
89
+ class="o-hidden mn-b-medium"
90
+ :status="true"
91
+ >
92
+ <template #header="{ isOpen }">
93
+ <div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
94
+ <h4 class="w-100">Payment Options</h4>
95
+ <div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
96
+ <IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
97
+ </div>
98
+ </div>
99
+ </template>
100
+
101
+ <template #content>
102
+ <div class="mn-t-small">
103
+ <Checkbox
104
+ v-for="option in paymentOptions"
105
+ :key="option.value"
106
+ v-model:checkbox="selectedPaymentOptions"
107
+ :label="option.label"
108
+ :value="option.value"
109
+ mode="checkbox"
110
+ class="mn-b-micro"
111
+ />
112
+ </div>
113
+ </template>
114
+ </Spoiler>
115
+
116
+ <!-- Clear Filters Button -->
117
+ <button
118
+ @click="clearFilters"
119
+ class="bg-main w-100 button mn-t-medium"
120
+ >
121
+ Clear Filters
122
+ </button>
123
+ </div>
124
+ </div>
11
125
 
12
126
  <!-- Catalog wrapper -->
13
127
  <div class="pd-thin">
@@ -45,7 +159,10 @@
45
159
  import { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'
46
160
  import { useI18n } from 'vue-i18n'
47
161
 
48
- import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'
162
+ import Spoiler from "@martyrs/src/components/Spoiler/Spoiler.vue"
163
+ import Field from "@martyrs/src/components/Field/Field.vue"
164
+ import Checkbox from "@martyrs/src/components/Checkbox/Checkbox.vue"
165
+ import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'
49
166
 
50
167
  import * as globals from '@martyrs/src/modules/globals/views/store/globals.js'
51
168
  import * as categories from '@martyrs/src/modules/products/store/categories.js';
@@ -65,6 +182,41 @@
65
182
 
66
183
  const desktopFilters = ref(null)
67
184
 
185
+ // Categories
186
+ const currentCategories = ref([]);
187
+ const searchLocation = ref('');
188
+ const selectedLocation = ref('All');
189
+ const locationOptions = ref(['All', 'Phuket', 'Bangkok', 'Chiang Mai', 'Pattaya']);
190
+
191
+ // Delivery options
192
+ const deliveryOptions = ref([
193
+ { label: 'Pickup', value: 'pickup' },
194
+ { label: 'Delivery', value: 'delivery' },
195
+ { label: 'Dine-in', value: 'dinein' }
196
+ ]);
197
+ const selectedDeliveryOptions = ref([]);
198
+
199
+ // Payment options
200
+ const paymentOptions = ref([
201
+ { label: 'Cash', value: 'cash' },
202
+ { label: 'Card', value: 'card' },
203
+ { label: 'Crypto', value: 'crypto' },
204
+ { label: 'Bank Transfer', value: 'transfer' }
205
+ ]);
206
+ const selectedPaymentOptions = ref([]);
207
+
208
+ const selectCategory = (category) => {
209
+ // Implementation for category selection
210
+ console.log('Category selected:', category);
211
+ };
212
+
213
+ const clearFilters = () => {
214
+ selectedLocation.value = 'All';
215
+ selectedDeliveryOptions.value = [];
216
+ selectedPaymentOptions.value = [];
217
+ searchLocation.value = '';
218
+ };
219
+
68
220
  function denormalizeUrlParam(param) {
69
221
  return param
70
222
  .replace(/-/g, ' ') // Замена дефисов на пробелы
@@ -14,22 +14,16 @@ const NotificationsController = (db, wss, notificationService) => {
14
14
 
15
15
  // Create multiple notifications at once
16
16
  const createBatch = async (req, res) => {
17
- console.log('=== Batch notifications endpoint ===');
18
- console.log('Request body:', JSON.stringify(req.body, null, 2));
19
17
 
20
18
  try {
21
19
  const { notifications } = req.body;
22
20
 
23
21
  if (!notifications || !Array.isArray(notifications)) {
24
- console.error('Invalid request: notifications array is required');
25
22
  return res.status(400).json({ message: 'notifications array is required' });
26
23
  }
27
24
 
28
- console.log('Creating notifications count:', notifications.length);
29
-
30
25
  // Create all notifications
31
26
  const createdNotifications = await db.notification.insertMany(notifications);
32
- console.log('Created notifications:', createdNotifications.map(n => n._id));
33
27
 
34
28
  // Fire and forget with error tracking
35
29
  setImmediate(() => {
@@ -43,12 +43,6 @@ export default (function (db, wss) {
43
43
  userId: new ObjectId(userId),
44
44
  isActive: true,
45
45
  });
46
- console.log('=== CHANNEL SELECTION DEBUG ===');
47
- console.log('userDevices found:', userDevices.length);
48
- console.log('userDevices:', userDevices);
49
- console.log('user.email:', user.email);
50
- console.log('user.phoneNumber:', user.phoneNumber);
51
- console.log('preferences.length:', preferences.length);
52
46
 
53
47
  // Default channels if no preferences set
54
48
  let channels = ['web']; // Web is always on by default
@@ -56,7 +50,6 @@ export default (function (db, wss) {
56
50
  // If user has devices, add push to default channels
57
51
  if (userDevices.length > 0) {
58
52
  channels.push('push');
59
- console.log('Added push channel - devices found');
60
53
  } else {
61
54
  console.log('No push channel - no devices found');
62
55
  }
@@ -64,24 +57,20 @@ export default (function (db, wss) {
64
57
  // If user has email, add it to default channels
65
58
  if (user.email) {
66
59
  channels.push('email');
67
- console.log('Added email channel');
68
60
  }
69
61
  // If user has phone, add SMS to default channels
70
62
  if (user.phoneNumber) {
71
63
  channels.push('sms');
72
- console.log('Added SMS channel');
73
64
  }
74
65
  // Override with user preferences if they exist
75
66
  if (preferences.length > 0) {
76
67
  channels = preferences.filter(pref => pref.isEnabled).map(pref => pref.channelType);
77
- console.log('Overridden with user preferences:', channels);
78
68
  }
79
- console.log('=== FINAL CHANNELS ===', channels);
69
+
80
70
  // Send to each enabled channel - parallel processing
81
71
  const channelPromises = [];
82
72
 
83
73
  for (const channel of channels) {
84
- console.log(`=== PREPARING CHANNEL: ${channel} ===`);
85
74
  const sendFunc = channelRouters[channel];
86
75
  if (!sendFunc) {
87
76
  channelPromises.push(Promise.resolve({
@@ -93,17 +82,14 @@ export default (function (db, wss) {
93
82
  }
94
83
 
95
84
  if (channel === 'push') {
96
- console.log(`Preparing push to ${userDevices.length} devices`);
97
85
  // Each device as separate promise for true parallelism
98
86
  for (const device of userDevices) {
99
87
  channelPromises.push(
100
88
  sendFunc(notification, user, device)
101
89
  .then(() => {
102
- console.log(`Push sent successfully to device ${device.deviceId}`);
103
90
  return { channel: 'push', deviceId: device.deviceId, success: true };
104
91
  })
105
92
  .catch(err => {
106
- console.error(`Push failed for device ${device.deviceId}:`, err);
107
93
  return { channel: 'push', deviceId: device.deviceId, success: false, error: err.message };
108
94
  })
109
95
  );
@@ -123,7 +109,6 @@ export default (function (db, wss) {
123
109
  }
124
110
  }
125
111
 
126
- console.log(`=== PROCESSING ${channelPromises.length} PARALLEL OPERATIONS ===`);
127
112
  const results = await Promise.allSettled(channelPromises);
128
113
 
129
114
  // Process results and create batch logs
@@ -180,7 +165,6 @@ export default (function (db, wss) {
180
165
  };
181
166
  // Send websocket notifications
182
167
  const sendWebNotification = async (notification, user) => {
183
- console.log(`[WebSocket][notification] sending to user ${user._id}`);
184
168
  const result = await wss.sendToUserInModule('notification', user._id, {
185
169
  type: 'notification',
186
170
  data: notification,
@@ -17,10 +17,8 @@ const WebPushService = {
17
17
  badge: process.env.NOTIFICATION_BADGE_URL || '/favicon.ico',
18
18
  data: data,
19
19
  });
20
- console.log('payload is', payload);
21
20
  // Send the notification
22
21
  const result = await webpush.sendNotification(subscription, payload);
23
- console.log('web push is', result);
24
22
  return { success: true, statusCode: result.statusCode };
25
23
  } catch (error) {
26
24
  console.error('Web Push service error:', error);
@@ -55,13 +55,13 @@
55
55
  <p class="t-medium mn-r-auto">{{formatDate(order.deadline)}}</p>
56
56
 
57
57
  <span
58
- class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-b-nano pd-t-nano pd-r-thin pd-l-thin bg-main"
58
+ class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-thin bg-main"
59
59
  >
60
60
  {{order.status}}
61
61
  </span>
62
62
 
63
63
  <span
64
- class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-b-nano pd-t-nano pd-r-thin pd-l-thin t-white bg-red"
64
+ class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-thin t-white bg-red"
65
65
  >
66
66
  {{order.payment.status || 'Not defined'}}
67
67
  </span>
@@ -26,7 +26,7 @@
26
26
  Order: #{{order._id}}
27
27
 
28
28
  <span
29
- class="flex-child flex-child-shrink-0 capitalize w-max mn-r-thin t-medium radius-big pd-b-nano pd-t-nano pd-r-thin pd-l-thin bg-main"
29
+ class="flex-child flex-child-shrink-0 capitalize w-max mn-r-thin t-medium radius-big pd-thin bg-main"
30
30
  >
31
31
  {{order.status}}
32
32
  </span>
@@ -505,11 +505,9 @@ const controllerFactory = db => {
505
505
  console.log('Sending notification for status change...');
506
506
  try {
507
507
  const usersWithAccess = await getUsersWithOrdersConfirmAccess(order.owner.target);
508
- const filteredUsers = usersWithAccess.filter(userId =>
509
- userId.toString() !== order.creator.target.toString()
510
- );
511
508
 
512
- await sendOrderNotifications(order, 'order_status', filteredUsers, {
509
+ // Отправляем уведомления всем пользователям с доступом, включая создателя
510
+ await sendOrderNotifications(order, 'order_status', usersWithAccess, {
513
511
  oldStatus: oldStatus,
514
512
  newStatus: order.status,
515
513
  organization: order.owner.target
@@ -0,0 +1,259 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Module Overview
6
+
7
+ The organizations module is a Vue.js/Node.js module that manages organizations, departments, memberships, and invites within the Martyrs application. It follows a modular architecture with separate client and server components.
8
+
9
+ ## Architecture
10
+
11
+ ### Server-Side Structure
12
+ - **Entry Point**: `organizations.server.js` - Initializes models, routes, and policies
13
+ - **Models**: Mongoose schemas for Organization, Department, Membership, and Invite
14
+ - **Controllers**: Handle business logic with caching support using a custom Cache class
15
+ - **Routes**: Express routes for RESTful API endpoints
16
+ - **Middlewares**: Access verification middleware
17
+ - **Policies**: ABAC (Attribute-Based Access Control) policies
18
+
19
+ ### Client-Side Structure
20
+ - **Entry Point**: `organizations.client.js` - Exports components and initializes stores/router
21
+ - **Components**: Vue 3 components organized by type:
22
+ - `pages/`: Full page components
23
+ - `forms/`: Popup forms (DepartmentForm, InviteForm, AddExistingMembersForm)
24
+ - `blocks/`: Reusable UI blocks
25
+ - `sections/`: Page sections
26
+ - `elements/`: Small UI elements
27
+ - **Store**: Uses Store class from globals module
28
+ - `membershipsStore` - manages memberships with handleMembershipUpdate method
29
+ - `departmentsStore` - manages departments
30
+ - `invitesStore` - manages invites
31
+ - **Router**: Vue Router configuration with nested routes
32
+
33
+ ## Key Features
34
+
35
+ 1. **Organization Management**: CRUD operations for organizations with owner/member relationships
36
+ 2. **Department System**: Hierarchical department structure within organizations
37
+ 3. **Membership System**: User roles and permissions within organizations
38
+ 4. **Invite System**: Invitation workflow for adding members
39
+ 5. **Access Control**: Fine-grained permissions using ABAC
40
+ 6. **Caching**: Redis-like caching with tag-based invalidation
41
+
42
+ ## API Endpoints
43
+
44
+ All modules now follow the standard Store class pattern:
45
+
46
+ ### Organizations
47
+ - `GET /api/organizations` - List organizations with filters
48
+ - `POST /api/organizations/create` - Create new organization
49
+ - `POST /api/organizations/:_id/update` - Update organization
50
+ - `DELETE /api/organizations/:_id/delete` - Delete organization
51
+
52
+ ### Departments
53
+ - `GET /api/departments/read` - Read with query parameters
54
+ - `POST /api/departments/create` - Create new department
55
+ - `PUT /api/departments/update` - Update department
56
+ - `POST /api/departments/delete` - Delete department (expects {_id} in body)
57
+
58
+ ### Memberships
59
+ - `GET /api/memberships/read` - Read with query parameters
60
+ - `POST /api/memberships/create` - Create new membership
61
+ - `PUT /api/memberships/update` - Update membership
62
+ - `POST /api/memberships/delete` - Delete membership (expects {_id} in body)
63
+
64
+ ### Invites
65
+ - `GET /api/invites/read` - Read with query parameters (owner, target, search)
66
+ - `POST /api/invites/create` - Create new invite
67
+ - `PUT /api/invites/update` - Update invite
68
+ - `POST /api/invites/delete` - Delete invite (expects {_id} in body)
69
+
70
+ ## Important Patterns
71
+
72
+ 1. **Aggregation Pipeline**: Complex queries use MongoDB aggregation with dynamic stages
73
+ 2. **Caching Strategy**: Results cached with tags for selective invalidation
74
+ 3. **Access Control**: Uses ABAC with policies defined in `organizations.policies.js`
75
+ 4. **Lookup Configurations**: Modular lookup configs for related data
76
+ 5. **Query Processing**: Utility functions for building dynamic queries
77
+
78
+ ## Model Structures
79
+
80
+ ### Organization Model
81
+ ```javascript
82
+ {
83
+ owner: ObjectId (ref: 'User', required),
84
+ official: Boolean (default: false),
85
+ types: Array (required),
86
+ profile: {
87
+ photo: String,
88
+ name: String (required),
89
+ description: String,
90
+ tags: [String]
91
+ },
92
+ contacts: {
93
+ email: String,
94
+ website: String,
95
+ phone: String,
96
+ address: String
97
+ },
98
+ socials: {
99
+ telegram: String,
100
+ twitter: String,
101
+ facebook: String,
102
+ instagram: String,
103
+ youtube: String
104
+ },
105
+ rating: {
106
+ popularity: Number (0-1),
107
+ median: Number (0-5),
108
+ amount: Number
109
+ },
110
+ accesses: AccessesSchema,
111
+ views: Number (default: 0),
112
+ timestamps: true
113
+ }
114
+ ```
115
+
116
+ ### Department Model
117
+ ```javascript
118
+ {
119
+ owner: ObjectId (ref: 'User'),
120
+ organization: ObjectId (ref: 'Organization'),
121
+ hidden: Boolean (default: false),
122
+ profile: {
123
+ photo: String,
124
+ name: String (required),
125
+ description: String,
126
+ categories: [String]
127
+ },
128
+ worktime: [{
129
+ day: String,
130
+ time: { start: String, end: String }
131
+ }],
132
+ delivery: [String],
133
+ payment: [String],
134
+ members: [{
135
+ user: ObjectId (ref: 'User'),
136
+ position: String (default: 'Member')
137
+ }],
138
+ subdepartments: [ObjectId (ref: 'Department')],
139
+ accesses: AccessesSchema,
140
+ timestamps: true
141
+ }
142
+ ```
143
+
144
+ ### Membership Model
145
+ ```javascript
146
+ {
147
+ user: ObjectId (ref: 'User', required),
148
+ type: String (enum: ['organization', 'department', 'user'], required),
149
+ role: String (default: 'subscriber'),
150
+ label: String (default: 'subscriber'),
151
+ target: ObjectId (dynamic ref based on type),
152
+ timestamps: true
153
+ }
154
+ ```
155
+
156
+ ### Invite Model
157
+ ```javascript
158
+ {
159
+ code: String (required, unique),
160
+ status: String (enum: ['active', 'used', 'deactivated']),
161
+ role: String (default: 'member'),
162
+ // From credentials schema:
163
+ phone: String,
164
+ email: String,
165
+ apple_id: String,
166
+ // From ownership schema:
167
+ owner: { type: String, target: ObjectId },
168
+ creator: { type: String, target: ObjectId, hidden: Boolean },
169
+ timestamps: true
170
+ }
171
+ ```
172
+
173
+ ### Accesses Schema
174
+ Permission structure for modules:
175
+ ```javascript
176
+ {
177
+ categories: { create, read, edit, delete },
178
+ rents: { create, read, edit, delete },
179
+ spots: { create, read, edit, delete },
180
+ posts: { create, read, edit, delete },
181
+ events: { create, read, edit, delete },
182
+ tickets: { create, read, edit, delete },
183
+ gallery: { read, create, edit, delete },
184
+ members: { read, edit, delete },
185
+ inventory: { read, edit, delete },
186
+ products: { read, edit, delete },
187
+ departments: { read, edit, delete },
188
+ orders: { read, confirm, delete }
189
+ }
190
+ ```
191
+ All permissions are Boolean fields defaulting to false.
192
+
193
+ ## Key Interfaces
194
+
195
+ ### API Request/Response Formats
196
+
197
+ #### Organization Query Parameters
198
+ - `_id`: Single organization ID
199
+ - `types`: Filter by organization types
200
+ - `official`: Filter official organizations
201
+ - `search`: Text search in organization names
202
+ - `sortParam`, `sortOrder`: Sorting options
203
+ - `skip`, `limit`: Pagination
204
+ - `user`: User ID for membership filtering
205
+ - `postable`: Filter by postable status
206
+ - `contain`: Filter by contained elements
207
+ - `prices`: Price range filtering (when products included)
208
+
209
+ #### Lookup Options
210
+ Request related data using query parameters:
211
+ - `memberships`: Include membership data
212
+ - `products`: Include products
213
+ - `spots`: Include locations
214
+ - `members`: Include member details
215
+
216
+ ### Store Integration
217
+
218
+ All stores use the Store class from `@martyrs/src/modules/globals/views/classes/globals.store.js`:
219
+
220
+ ```javascript
221
+ import Store from '@martyrs/src/modules/globals/views/classes/globals.store.js';
222
+
223
+ const membershipsStore = new Store('/api/memberships');
224
+ const departmentsStore = new Store('/api/departments');
225
+ const invitesStore = new Store('/api/invites');
226
+ ```
227
+
228
+ #### membershipsStore.handleMembershipUpdate
229
+ Special method for updating user state when membership changes:
230
+ ```javascript
231
+ membershipsStore.handleMembershipUpdate(user, membership, status, target, statusName, statusNumber)
232
+ ```
233
+
234
+ ### Feed Component Integration
235
+ Use v-model:items pattern for reactive state:
236
+ ```vue
237
+ <Feed
238
+ v-model:items="membersList"
239
+ :store="{
240
+ read: (options) => membershipsStore.read(options)
241
+ }"
242
+ :options="{
243
+ target: route.params._id,
244
+ role: ['member','owner']
245
+ }"
246
+ >
247
+ ```
248
+
249
+ ### Controller Response Format
250
+ - **Read operations**: Return array of items directly
251
+ - **Delete operations**: Return the deleted object
252
+ - **Create/Update**: Return the created/updated object
253
+
254
+ ## Dependencies
255
+
256
+ - Mongoose for MongoDB ODM
257
+ - Express for routing
258
+ - Vue 3 with Composition API
259
+ - Custom modules from `@martyrs/src/modules/globals/`
@@ -3,28 +3,7 @@
3
3
 
4
4
  <div class="pd-medium w-100">
5
5
 
6
- <router-link
7
- :to="{
8
- name: 'Department Edit',
9
- params: {
10
- _id: props.organization,
11
- department: department._id
12
- }
13
- }"
14
- class="
15
- cursor-pointer
16
- pos-absolute pos-t-regular pos-r-regular
17
- radius-extra pd-thin bg-second
18
- "
19
- >
20
- <IconEdit
21
- class="i-regular"
22
- classes="fill-white"
23
- />
24
- </router-link>
25
-
26
6
  <h3
27
- @click="$router.push(`/organizations/${props.organization}/departments/${department._id}`)"
28
7
  class="mn-b-small w-100"
29
8
  v-html="department.profile.name"
30
9
  />
@@ -39,7 +18,7 @@
39
18
  :photo="member.user.profile.photo"
40
19
  :name="member.user.profile.name || member.user.phone || member.user.email || member.user._id"
41
20
  :position="member.position"
42
- @click="$router.push(`/app/profile/${member.user._id}`)"
21
+ @click="$router.push({ name: 'User Profile', params: { _id: member.user._id } })"
43
22
  />
44
23
  </ul>
45
24
  </div>
@@ -7,7 +7,7 @@
7
7
  target="_blank"
8
8
  class="i-big bg-second t-white flex-nowrap flex-center flex radius-extra"
9
9
  >
10
- <component :is="resolveSocialIcon(social.name)" class="i-medium"></component>
10
+ <component :is="resolveSocialIcon(social.name)" :fill="'rgb(var(--white))'" class="i-medium"></component>
11
11
  </a>
12
12
  </div>
13
13
  </template>
@@ -13,7 +13,7 @@
13
13
 
14
14
  import { ref } from 'vue'
15
15
  import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'
16
- import * as memberships from '@martyrs/src/modules/organizations/store/memberships.js'
16
+ import membershipsStore from '@martyrs/src/modules/organizations/store/memberships.store.js'
17
17
 
18
18
  const emits = defineEmits(['updateMembership'])
19
19
 
@@ -64,7 +64,7 @@
64
64
  target: props.target
65
65
  };
66
66
 
67
- const response = await memberships.actions.create(membershipData);
67
+ const response = await membershipsStore.create(membershipData);
68
68
 
69
69
  emits('updateMembership', {
70
70
  membership: response,
@@ -86,7 +86,7 @@
86
86
  };
87
87
 
88
88
  try {
89
- const response = await memberships.actions.delete(membershipData);
89
+ const response = await membershipsStore.delete(membershipData);
90
90
 
91
91
  emits('updateMembership', {
92
92
  membership: response,