gymmonk-schema 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/README.md +27 -626
  2. package/dist/common.d.ts +27 -0
  3. package/dist/common.d.ts.map +1 -0
  4. package/dist/common.js +35 -0
  5. package/dist/common.js.map +1 -0
  6. package/dist/index.d.ts +10 -13
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +11 -17
  9. package/dist/index.js.map +1 -1
  10. package/package.json +9 -11
  11. package/dist/audit/audit-log.schema.d.ts +0 -78
  12. package/dist/audit/audit-log.schema.d.ts.map +0 -1
  13. package/dist/audit/audit-log.schema.js +0 -78
  14. package/dist/audit/audit-log.schema.js.map +0 -1
  15. package/dist/audit/index.d.ts +0 -2
  16. package/dist/audit/index.d.ts.map +0 -1
  17. package/dist/audit/index.js +0 -2
  18. package/dist/audit/index.js.map +0 -1
  19. package/dist/auth/device/device.schema.d.ts +0 -10
  20. package/dist/auth/device/device.schema.d.ts.map +0 -1
  21. package/dist/auth/device/device.schema.js +0 -10
  22. package/dist/auth/device/device.schema.js.map +0 -1
  23. package/dist/auth/device/index.d.ts +0 -2
  24. package/dist/auth/device/index.d.ts.map +0 -1
  25. package/dist/auth/device/index.js +0 -2
  26. package/dist/auth/device/index.js.map +0 -1
  27. package/dist/auth/index.d.ts +0 -10
  28. package/dist/auth/index.d.ts.map +0 -1
  29. package/dist/auth/index.js +0 -10
  30. package/dist/auth/index.js.map +0 -1
  31. package/dist/auth/otp/index.d.ts +0 -2
  32. package/dist/auth/otp/index.d.ts.map +0 -1
  33. package/dist/auth/otp/index.js +0 -2
  34. package/dist/auth/otp/index.js.map +0 -1
  35. package/dist/auth/otp/otp.schema.d.ts +0 -8
  36. package/dist/auth/otp/otp.schema.d.ts.map +0 -1
  37. package/dist/auth/otp/otp.schema.js +0 -9
  38. package/dist/auth/otp/otp.schema.js.map +0 -1
  39. package/dist/auth/password-history/index.d.ts +0 -2
  40. package/dist/auth/password-history/index.d.ts.map +0 -1
  41. package/dist/auth/password-history/index.js +0 -2
  42. package/dist/auth/password-history/index.js.map +0 -1
  43. package/dist/auth/password-history/password-history.schema.d.ts +0 -8
  44. package/dist/auth/password-history/password-history.schema.d.ts.map +0 -1
  45. package/dist/auth/password-history/password-history.schema.js +0 -8
  46. package/dist/auth/password-history/password-history.schema.js.map +0 -1
  47. package/dist/auth/permission/index.d.ts +0 -3
  48. package/dist/auth/permission/index.d.ts.map +0 -1
  49. package/dist/auth/permission/index.js +0 -3
  50. package/dist/auth/permission/index.js.map +0 -1
  51. package/dist/auth/permission/permission.dto.d.ts +0 -7
  52. package/dist/auth/permission/permission.dto.d.ts.map +0 -1
  53. package/dist/auth/permission/permission.dto.js +0 -6
  54. package/dist/auth/permission/permission.dto.js.map +0 -1
  55. package/dist/auth/permission/permission.schema.d.ts +0 -7
  56. package/dist/auth/permission/permission.schema.d.ts.map +0 -1
  57. package/dist/auth/permission/permission.schema.js +0 -7
  58. package/dist/auth/permission/permission.schema.js.map +0 -1
  59. package/dist/auth/resource/index.d.ts +0 -2
  60. package/dist/auth/resource/index.d.ts.map +0 -1
  61. package/dist/auth/resource/index.js +0 -2
  62. package/dist/auth/resource/index.js.map +0 -1
  63. package/dist/auth/resource/resource.schema.d.ts +0 -7
  64. package/dist/auth/resource/resource.schema.d.ts.map +0 -1
  65. package/dist/auth/resource/resource.schema.js +0 -7
  66. package/dist/auth/resource/resource.schema.js.map +0 -1
  67. package/dist/auth/role/index.d.ts +0 -3
  68. package/dist/auth/role/index.d.ts.map +0 -1
  69. package/dist/auth/role/index.js +0 -3
  70. package/dist/auth/role/index.js.map +0 -1
  71. package/dist/auth/role/role.dto.d.ts +0 -8
  72. package/dist/auth/role/role.dto.d.ts.map +0 -1
  73. package/dist/auth/role/role.dto.js +0 -7
  74. package/dist/auth/role/role.dto.js.map +0 -1
  75. package/dist/auth/role/role.schema.d.ts +0 -8
  76. package/dist/auth/role/role.schema.d.ts.map +0 -1
  77. package/dist/auth/role/role.schema.js +0 -8
  78. package/dist/auth/role/role.schema.js.map +0 -1
  79. package/dist/auth/token/index.d.ts +0 -2
  80. package/dist/auth/token/index.d.ts.map +0 -1
  81. package/dist/auth/token/index.js +0 -2
  82. package/dist/auth/token/index.js.map +0 -1
  83. package/dist/auth/token/token.schema.d.ts +0 -7
  84. package/dist/auth/token/token.schema.d.ts.map +0 -1
  85. package/dist/auth/token/token.schema.js +0 -6
  86. package/dist/auth/token/token.schema.js.map +0 -1
  87. package/dist/auth/user/index.d.ts +0 -5
  88. package/dist/auth/user/index.d.ts.map +0 -1
  89. package/dist/auth/user/index.js +0 -5
  90. package/dist/auth/user/index.js.map +0 -1
  91. package/dist/auth/user/user.dto.d.ts +0 -21
  92. package/dist/auth/user/user.dto.d.ts.map +0 -1
  93. package/dist/auth/user/user.dto.js +0 -22
  94. package/dist/auth/user/user.dto.js.map +0 -1
  95. package/dist/auth/user/user.public.d.ts +0 -29
  96. package/dist/auth/user/user.public.d.ts.map +0 -1
  97. package/dist/auth/user/user.public.js +0 -19
  98. package/dist/auth/user/user.public.js.map +0 -1
  99. package/dist/auth/user/user.schema.d.ts +0 -34
  100. package/dist/auth/user/user.schema.d.ts.map +0 -1
  101. package/dist/auth/user/user.schema.js +0 -27
  102. package/dist/auth/user/user.schema.js.map +0 -1
  103. package/dist/auth/user/user.types.d.ts +0 -4
  104. package/dist/auth/user/user.types.d.ts.map +0 -1
  105. package/dist/auth/user/user.types.js +0 -2
  106. package/dist/auth/user/user.types.js.map +0 -1
  107. package/dist/auth/user-activity/index.d.ts +0 -2
  108. package/dist/auth/user-activity/index.d.ts.map +0 -1
  109. package/dist/auth/user-activity/index.js +0 -2
  110. package/dist/auth/user-activity/index.js.map +0 -1
  111. package/dist/auth/user-activity/user-activity.schema.d.ts +0 -10
  112. package/dist/auth/user-activity/user-activity.schema.d.ts.map +0 -1
  113. package/dist/auth/user-activity/user-activity.schema.js +0 -11
  114. package/dist/auth/user-activity/user-activity.schema.js.map +0 -1
  115. package/dist/common/enums/gender.enum.d.ts +0 -9
  116. package/dist/common/enums/gender.enum.d.ts.map +0 -1
  117. package/dist/common/enums/gender.enum.js +0 -4
  118. package/dist/common/enums/gender.enum.js.map +0 -1
  119. package/dist/common/enums/index.d.ts +0 -4
  120. package/dist/common/enums/index.d.ts.map +0 -1
  121. package/dist/common/enums/index.js +0 -4
  122. package/dist/common/enums/index.js.map +0 -1
  123. package/dist/common/enums/notification-type.enum.d.ts +0 -11
  124. package/dist/common/enums/notification-type.enum.d.ts.map +0 -1
  125. package/dist/common/enums/notification-type.enum.js +0 -10
  126. package/dist/common/enums/notification-type.enum.js.map +0 -1
  127. package/dist/common/enums/status.enum.d.ts +0 -10
  128. package/dist/common/enums/status.enum.d.ts.map +0 -1
  129. package/dist/common/enums/status.enum.js +0 -4
  130. package/dist/common/enums/status.enum.js.map +0 -1
  131. package/dist/common/index.d.ts +0 -5
  132. package/dist/common/index.d.ts.map +0 -1
  133. package/dist/common/index.js +0 -5
  134. package/dist/common/index.js.map +0 -1
  135. package/dist/common/pagination/index.d.ts +0 -2
  136. package/dist/common/pagination/index.d.ts.map +0 -1
  137. package/dist/common/pagination/index.js +0 -2
  138. package/dist/common/pagination/index.js.map +0 -1
  139. package/dist/common/pagination/pagination.schema.d.ts +0 -19
  140. package/dist/common/pagination/pagination.schema.d.ts.map +0 -1
  141. package/dist/common/pagination/pagination.schema.js +0 -22
  142. package/dist/common/pagination/pagination.schema.js.map +0 -1
  143. package/dist/common/primitives/date.schema.d.ts +0 -14
  144. package/dist/common/primitives/date.schema.d.ts.map +0 -1
  145. package/dist/common/primitives/date.schema.js +0 -17
  146. package/dist/common/primitives/date.schema.js.map +0 -1
  147. package/dist/common/primitives/index.d.ts +0 -4
  148. package/dist/common/primitives/index.d.ts.map +0 -1
  149. package/dist/common/primitives/index.js +0 -4
  150. package/dist/common/primitives/index.js.map +0 -1
  151. package/dist/common/primitives/object-id.schema.d.ts +0 -8
  152. package/dist/common/primitives/object-id.schema.d.ts.map +0 -1
  153. package/dist/common/primitives/object-id.schema.js +0 -9
  154. package/dist/common/primitives/object-id.schema.js.map +0 -1
  155. package/dist/common/primitives/string.schema.d.ts +0 -13
  156. package/dist/common/primitives/string.schema.d.ts.map +0 -1
  157. package/dist/common/primitives/string.schema.js +0 -16
  158. package/dist/common/primitives/string.schema.js.map +0 -1
  159. package/dist/common/value-objects/address.schema.d.ts +0 -11
  160. package/dist/common/value-objects/address.schema.d.ts.map +0 -1
  161. package/dist/common/value-objects/address.schema.js +0 -15
  162. package/dist/common/value-objects/address.schema.js.map +0 -1
  163. package/dist/common/value-objects/email.schema.d.ts +0 -4
  164. package/dist/common/value-objects/email.schema.d.ts.map +0 -1
  165. package/dist/common/value-objects/email.schema.js +0 -3
  166. package/dist/common/value-objects/email.schema.js.map +0 -1
  167. package/dist/common/value-objects/index.d.ts +0 -8
  168. package/dist/common/value-objects/index.d.ts.map +0 -1
  169. package/dist/common/value-objects/index.js +0 -8
  170. package/dist/common/value-objects/index.js.map +0 -1
  171. package/dist/common/value-objects/mfa.schema.d.ts +0 -19
  172. package/dist/common/value-objects/mfa.schema.d.ts.map +0 -1
  173. package/dist/common/value-objects/mfa.schema.js +0 -12
  174. package/dist/common/value-objects/mfa.schema.js.map +0 -1
  175. package/dist/common/value-objects/nutritional-values.schema.d.ts +0 -10
  176. package/dist/common/value-objects/nutritional-values.schema.d.ts.map +0 -1
  177. package/dist/common/value-objects/nutritional-values.schema.js +0 -9
  178. package/dist/common/value-objects/nutritional-values.schema.js.map +0 -1
  179. package/dist/common/value-objects/phone.schema.d.ts +0 -8
  180. package/dist/common/value-objects/phone.schema.d.ts.map +0 -1
  181. package/dist/common/value-objects/phone.schema.js +0 -11
  182. package/dist/common/value-objects/phone.schema.js.map +0 -1
  183. package/dist/common/value-objects/plan-variant.schema.d.ts +0 -24
  184. package/dist/common/value-objects/plan-variant.schema.d.ts.map +0 -1
  185. package/dist/common/value-objects/plan-variant.schema.js +0 -19
  186. package/dist/common/value-objects/plan-variant.schema.js.map +0 -1
  187. package/dist/common/value-objects/social-login.schema.d.ts +0 -20
  188. package/dist/common/value-objects/social-login.schema.d.ts.map +0 -1
  189. package/dist/common/value-objects/social-login.schema.js +0 -10
  190. package/dist/common/value-objects/social-login.schema.js.map +0 -1
  191. package/dist/community/conversation/conversation.schema.d.ts +0 -11
  192. package/dist/community/conversation/conversation.schema.d.ts.map +0 -1
  193. package/dist/community/conversation/conversation.schema.js +0 -29
  194. package/dist/community/conversation/conversation.schema.js.map +0 -1
  195. package/dist/community/conversation/index.d.ts +0 -2
  196. package/dist/community/conversation/index.d.ts.map +0 -1
  197. package/dist/community/conversation/index.js +0 -2
  198. package/dist/community/conversation/index.js.map +0 -1
  199. package/dist/community/index.d.ts +0 -4
  200. package/dist/community/index.d.ts.map +0 -1
  201. package/dist/community/index.js +0 -4
  202. package/dist/community/index.js.map +0 -1
  203. package/dist/community/message/index.d.ts +0 -2
  204. package/dist/community/message/index.d.ts.map +0 -1
  205. package/dist/community/message/index.js +0 -2
  206. package/dist/community/message/index.js.map +0 -1
  207. package/dist/community/message/message.schema.d.ts +0 -29
  208. package/dist/community/message/message.schema.d.ts.map +0 -1
  209. package/dist/community/message/message.schema.js +0 -28
  210. package/dist/community/message/message.schema.js.map +0 -1
  211. package/dist/community/post/index.d.ts +0 -2
  212. package/dist/community/post/index.d.ts.map +0 -1
  213. package/dist/community/post/index.js +0 -2
  214. package/dist/community/post/index.js.map +0 -1
  215. package/dist/community/post/post.schema.d.ts +0 -27
  216. package/dist/community/post/post.schema.d.ts.map +0 -1
  217. package/dist/community/post/post.schema.js +0 -32
  218. package/dist/community/post/post.schema.js.map +0 -1
  219. package/dist/feedback/feedback.schema.d.ts +0 -35
  220. package/dist/feedback/feedback.schema.d.ts.map +0 -1
  221. package/dist/feedback/feedback.schema.js +0 -41
  222. package/dist/feedback/feedback.schema.js.map +0 -1
  223. package/dist/feedback/index.d.ts +0 -2
  224. package/dist/feedback/index.d.ts.map +0 -1
  225. package/dist/feedback/index.js +0 -2
  226. package/dist/feedback/index.js.map +0 -1
  227. package/dist/gym/achievement-badge/achievement-badge.schema.d.ts +0 -11
  228. package/dist/gym/achievement-badge/achievement-badge.schema.d.ts.map +0 -1
  229. package/dist/gym/achievement-badge/achievement-badge.schema.js +0 -13
  230. package/dist/gym/achievement-badge/achievement-badge.schema.js.map +0 -1
  231. package/dist/gym/achievement-badge/index.d.ts +0 -2
  232. package/dist/gym/achievement-badge/index.d.ts.map +0 -1
  233. package/dist/gym/achievement-badge/index.js +0 -2
  234. package/dist/gym/achievement-badge/index.js.map +0 -1
  235. package/dist/gym/attendance/attendance.schema.d.ts +0 -25
  236. package/dist/gym/attendance/attendance.schema.d.ts.map +0 -1
  237. package/dist/gym/attendance/attendance.schema.js +0 -15
  238. package/dist/gym/attendance/attendance.schema.js.map +0 -1
  239. package/dist/gym/attendance/index.d.ts +0 -2
  240. package/dist/gym/attendance/index.d.ts.map +0 -1
  241. package/dist/gym/attendance/index.js +0 -2
  242. package/dist/gym/attendance/index.js.map +0 -1
  243. package/dist/gym/center/center.dto.d.ts +0 -2
  244. package/dist/gym/center/center.dto.d.ts.map +0 -1
  245. package/dist/gym/center/center.dto.js +0 -2
  246. package/dist/gym/center/center.dto.js.map +0 -1
  247. package/dist/gym/center/center.schema.d.ts +0 -28
  248. package/dist/gym/center/center.schema.d.ts.map +0 -1
  249. package/dist/gym/center/center.schema.js +0 -22
  250. package/dist/gym/center/center.schema.js.map +0 -1
  251. package/dist/gym/center/index.d.ts +0 -2
  252. package/dist/gym/center/index.d.ts.map +0 -1
  253. package/dist/gym/center/index.js +0 -2
  254. package/dist/gym/center/index.js.map +0 -1
  255. package/dist/gym/center-facility/center-facility.schema.d.ts +0 -15
  256. package/dist/gym/center-facility/center-facility.schema.d.ts.map +0 -1
  257. package/dist/gym/center-facility/center-facility.schema.js +0 -12
  258. package/dist/gym/center-facility/center-facility.schema.js.map +0 -1
  259. package/dist/gym/center-facility/index.d.ts +0 -2
  260. package/dist/gym/center-facility/index.d.ts.map +0 -1
  261. package/dist/gym/center-facility/index.js +0 -2
  262. package/dist/gym/center-facility/index.js.map +0 -1
  263. package/dist/gym/center-service/center-service.schema.d.ts +0 -27
  264. package/dist/gym/center-service/center-service.schema.d.ts.map +0 -1
  265. package/dist/gym/center-service/center-service.schema.js +0 -16
  266. package/dist/gym/center-service/center-service.schema.js.map +0 -1
  267. package/dist/gym/center-service/index.d.ts +0 -2
  268. package/dist/gym/center-service/index.d.ts.map +0 -1
  269. package/dist/gym/center-service/index.js +0 -2
  270. package/dist/gym/center-service/index.js.map +0 -1
  271. package/dist/gym/class-schedule/class-schedule.schema.d.ts +0 -15
  272. package/dist/gym/class-schedule/class-schedule.schema.d.ts.map +0 -1
  273. package/dist/gym/class-schedule/class-schedule.schema.js +0 -24
  274. package/dist/gym/class-schedule/class-schedule.schema.js.map +0 -1
  275. package/dist/gym/class-schedule/index.d.ts +0 -2
  276. package/dist/gym/class-schedule/index.d.ts.map +0 -1
  277. package/dist/gym/class-schedule/index.js +0 -2
  278. package/dist/gym/class-schedule/index.js.map +0 -1
  279. package/dist/gym/equipment-catalog/equipment-catalog.schema.d.ts +0 -11
  280. package/dist/gym/equipment-catalog/equipment-catalog.schema.d.ts.map +0 -1
  281. package/dist/gym/equipment-catalog/equipment-catalog.schema.js +0 -12
  282. package/dist/gym/equipment-catalog/equipment-catalog.schema.js.map +0 -1
  283. package/dist/gym/equipment-catalog/index.d.ts +0 -2
  284. package/dist/gym/equipment-catalog/index.d.ts.map +0 -1
  285. package/dist/gym/equipment-catalog/index.js +0 -2
  286. package/dist/gym/equipment-catalog/index.js.map +0 -1
  287. package/dist/gym/equipment-inventory/equipment-inventory.schema.d.ts +0 -24
  288. package/dist/gym/equipment-inventory/equipment-inventory.schema.d.ts.map +0 -1
  289. package/dist/gym/equipment-inventory/equipment-inventory.schema.js +0 -19
  290. package/dist/gym/equipment-inventory/equipment-inventory.schema.js.map +0 -1
  291. package/dist/gym/equipment-inventory/index.d.ts +0 -2
  292. package/dist/gym/equipment-inventory/index.d.ts.map +0 -1
  293. package/dist/gym/equipment-inventory/index.js +0 -2
  294. package/dist/gym/equipment-inventory/index.js.map +0 -1
  295. package/dist/gym/facility-catalog/facility-catalog.schema.d.ts +0 -8
  296. package/dist/gym/facility-catalog/facility-catalog.schema.d.ts.map +0 -1
  297. package/dist/gym/facility-catalog/facility-catalog.schema.js +0 -9
  298. package/dist/gym/facility-catalog/facility-catalog.schema.js.map +0 -1
  299. package/dist/gym/facility-catalog/index.d.ts +0 -2
  300. package/dist/gym/facility-catalog/index.d.ts.map +0 -1
  301. package/dist/gym/facility-catalog/index.js +0 -2
  302. package/dist/gym/facility-catalog/index.js.map +0 -1
  303. package/dist/gym/goal/goal.schema.d.ts +0 -26
  304. package/dist/gym/goal/goal.schema.d.ts.map +0 -1
  305. package/dist/gym/goal/goal.schema.js +0 -17
  306. package/dist/gym/goal/goal.schema.js.map +0 -1
  307. package/dist/gym/goal/index.d.ts +0 -2
  308. package/dist/gym/goal/index.d.ts.map +0 -1
  309. package/dist/gym/goal/index.js +0 -2
  310. package/dist/gym/goal/index.js.map +0 -1
  311. package/dist/gym/gym-layout/gym-layout.schema.d.ts +0 -22
  312. package/dist/gym/gym-layout/gym-layout.schema.d.ts.map +0 -1
  313. package/dist/gym/gym-layout/gym-layout.schema.js +0 -20
  314. package/dist/gym/gym-layout/gym-layout.schema.js.map +0 -1
  315. package/dist/gym/gym-layout/index.d.ts +0 -2
  316. package/dist/gym/gym-layout/index.d.ts.map +0 -1
  317. package/dist/gym/gym-layout/index.js +0 -2
  318. package/dist/gym/gym-layout/index.js.map +0 -1
  319. package/dist/gym/index.d.ts +0 -15
  320. package/dist/gym/index.d.ts.map +0 -1
  321. package/dist/gym/index.js +0 -15
  322. package/dist/gym/index.js.map +0 -1
  323. package/dist/gym/organisation/index.d.ts +0 -2
  324. package/dist/gym/organisation/index.d.ts.map +0 -1
  325. package/dist/gym/organisation/index.js +0 -2
  326. package/dist/gym/organisation/index.js.map +0 -1
  327. package/dist/gym/organisation/organisation.dto.d.ts +0 -2
  328. package/dist/gym/organisation/organisation.dto.d.ts.map +0 -1
  329. package/dist/gym/organisation/organisation.dto.js +0 -2
  330. package/dist/gym/organisation/organisation.dto.js.map +0 -1
  331. package/dist/gym/organisation/organisation.schema.d.ts +0 -28
  332. package/dist/gym/organisation/organisation.schema.d.ts.map +0 -1
  333. package/dist/gym/organisation/organisation.schema.js +0 -28
  334. package/dist/gym/organisation/organisation.schema.js.map +0 -1
  335. package/dist/gym/service-catalog/index.d.ts +0 -2
  336. package/dist/gym/service-catalog/index.d.ts.map +0 -1
  337. package/dist/gym/service-catalog/index.js +0 -2
  338. package/dist/gym/service-catalog/index.js.map +0 -1
  339. package/dist/gym/service-catalog/service-catalog.schema.d.ts +0 -11
  340. package/dist/gym/service-catalog/service-catalog.schema.d.ts.map +0 -1
  341. package/dist/gym/service-catalog/service-catalog.schema.js +0 -15
  342. package/dist/gym/service-catalog/service-catalog.schema.js.map +0 -1
  343. package/dist/gym/session-booking/index.d.ts +0 -2
  344. package/dist/gym/session-booking/index.d.ts.map +0 -1
  345. package/dist/gym/session-booking/index.js +0 -2
  346. package/dist/gym/session-booking/index.js.map +0 -1
  347. package/dist/gym/session-booking/session-booking.schema.d.ts +0 -29
  348. package/dist/gym/session-booking/session-booking.schema.d.ts.map +0 -1
  349. package/dist/gym/session-booking/session-booking.schema.js +0 -20
  350. package/dist/gym/session-booking/session-booking.schema.js.map +0 -1
  351. package/dist/internal/scaffolding.d.ts +0 -2
  352. package/dist/internal/scaffolding.d.ts.map +0 -1
  353. package/dist/internal/scaffolding.js +0 -2
  354. package/dist/internal/scaffolding.js.map +0 -1
  355. package/dist/landing/contact-request/contact-request.schema.d.ts +0 -13
  356. package/dist/landing/contact-request/contact-request.schema.d.ts.map +0 -1
  357. package/dist/landing/contact-request/contact-request.schema.js +0 -22
  358. package/dist/landing/contact-request/contact-request.schema.js.map +0 -1
  359. package/dist/landing/contact-request/index.d.ts +0 -2
  360. package/dist/landing/contact-request/index.d.ts.map +0 -1
  361. package/dist/landing/contact-request/index.js +0 -2
  362. package/dist/landing/contact-request/index.js.map +0 -1
  363. package/dist/landing/index.d.ts +0 -2
  364. package/dist/landing/index.d.ts.map +0 -1
  365. package/dist/landing/index.js +0 -2
  366. package/dist/landing/index.js.map +0 -1
  367. package/dist/marketing/advertisement/advertisement.schema.d.ts +0 -33
  368. package/dist/marketing/advertisement/advertisement.schema.d.ts.map +0 -1
  369. package/dist/marketing/advertisement/advertisement.schema.js +0 -37
  370. package/dist/marketing/advertisement/advertisement.schema.js.map +0 -1
  371. package/dist/marketing/advertisement/index.d.ts +0 -2
  372. package/dist/marketing/advertisement/index.d.ts.map +0 -1
  373. package/dist/marketing/advertisement/index.js +0 -2
  374. package/dist/marketing/advertisement/index.js.map +0 -1
  375. package/dist/marketing/brand/brand.schema.d.ts +0 -18
  376. package/dist/marketing/brand/brand.schema.d.ts.map +0 -1
  377. package/dist/marketing/brand/brand.schema.js +0 -26
  378. package/dist/marketing/brand/brand.schema.js.map +0 -1
  379. package/dist/marketing/brand/index.d.ts +0 -2
  380. package/dist/marketing/brand/index.d.ts.map +0 -1
  381. package/dist/marketing/brand/index.js +0 -2
  382. package/dist/marketing/brand/index.js.map +0 -1
  383. package/dist/marketing/index.d.ts +0 -5
  384. package/dist/marketing/index.d.ts.map +0 -1
  385. package/dist/marketing/index.js +0 -5
  386. package/dist/marketing/index.js.map +0 -1
  387. package/dist/marketing/marketing-campaign/index.d.ts +0 -2
  388. package/dist/marketing/marketing-campaign/index.d.ts.map +0 -1
  389. package/dist/marketing/marketing-campaign/index.js +0 -2
  390. package/dist/marketing/marketing-campaign/index.js.map +0 -1
  391. package/dist/marketing/marketing-campaign/marketing-campaign.schema.d.ts +0 -54
  392. package/dist/marketing/marketing-campaign/marketing-campaign.schema.d.ts.map +0 -1
  393. package/dist/marketing/marketing-campaign/marketing-campaign.schema.js +0 -41
  394. package/dist/marketing/marketing-campaign/marketing-campaign.schema.js.map +0 -1
  395. package/dist/marketing/referral/index.d.ts +0 -2
  396. package/dist/marketing/referral/index.d.ts.map +0 -1
  397. package/dist/marketing/referral/index.js +0 -2
  398. package/dist/marketing/referral/index.js.map +0 -1
  399. package/dist/marketing/referral/referral.schema.d.ts +0 -28
  400. package/dist/marketing/referral/referral.schema.d.ts.map +0 -1
  401. package/dist/marketing/referral/referral.schema.js +0 -25
  402. package/dist/marketing/referral/referral.schema.js.map +0 -1
  403. package/dist/notification/index.d.ts +0 -3
  404. package/dist/notification/index.d.ts.map +0 -1
  405. package/dist/notification/index.js +0 -3
  406. package/dist/notification/index.js.map +0 -1
  407. package/dist/notification/notification/index.d.ts +0 -2
  408. package/dist/notification/notification/index.d.ts.map +0 -1
  409. package/dist/notification/notification/index.js +0 -2
  410. package/dist/notification/notification/index.js.map +0 -1
  411. package/dist/notification/notification/notification.schema.d.ts +0 -59
  412. package/dist/notification/notification/notification.schema.d.ts.map +0 -1
  413. package/dist/notification/notification/notification.schema.js +0 -35
  414. package/dist/notification/notification/notification.schema.js.map +0 -1
  415. package/dist/notification/notification-template/index.d.ts +0 -2
  416. package/dist/notification/notification-template/index.d.ts.map +0 -1
  417. package/dist/notification/notification-template/index.js +0 -2
  418. package/dist/notification/notification-template/index.js.map +0 -1
  419. package/dist/notification/notification-template/notification-template.schema.d.ts +0 -43
  420. package/dist/notification/notification-template/notification-template.schema.d.ts.map +0 -1
  421. package/dist/notification/notification-template/notification-template.schema.js +0 -36
  422. package/dist/notification/notification-template/notification-template.schema.js.map +0 -1
  423. package/dist/nutrition/diet-plan/diet-plan.schema.d.ts +0 -95
  424. package/dist/nutrition/diet-plan/diet-plan.schema.d.ts.map +0 -1
  425. package/dist/nutrition/diet-plan/diet-plan.schema.js +0 -46
  426. package/dist/nutrition/diet-plan/diet-plan.schema.js.map +0 -1
  427. package/dist/nutrition/diet-plan/index.d.ts +0 -2
  428. package/dist/nutrition/diet-plan/index.d.ts.map +0 -1
  429. package/dist/nutrition/diet-plan/index.js +0 -2
  430. package/dist/nutrition/diet-plan/index.js.map +0 -1
  431. package/dist/nutrition/diet-tracking/diet-tracking.schema.d.ts +0 -24
  432. package/dist/nutrition/diet-tracking/diet-tracking.schema.d.ts.map +0 -1
  433. package/dist/nutrition/diet-tracking/diet-tracking.schema.js +0 -22
  434. package/dist/nutrition/diet-tracking/diet-tracking.schema.js.map +0 -1
  435. package/dist/nutrition/diet-tracking/index.d.ts +0 -2
  436. package/dist/nutrition/diet-tracking/index.d.ts.map +0 -1
  437. package/dist/nutrition/diet-tracking/index.js +0 -2
  438. package/dist/nutrition/diet-tracking/index.js.map +0 -1
  439. package/dist/nutrition/hydration-tracking/hydration-tracking.schema.d.ts +0 -27
  440. package/dist/nutrition/hydration-tracking/hydration-tracking.schema.d.ts.map +0 -1
  441. package/dist/nutrition/hydration-tracking/hydration-tracking.schema.js +0 -16
  442. package/dist/nutrition/hydration-tracking/hydration-tracking.schema.js.map +0 -1
  443. package/dist/nutrition/hydration-tracking/index.d.ts +0 -2
  444. package/dist/nutrition/hydration-tracking/index.d.ts.map +0 -1
  445. package/dist/nutrition/hydration-tracking/index.js +0 -2
  446. package/dist/nutrition/hydration-tracking/index.js.map +0 -1
  447. package/dist/nutrition/index.d.ts +0 -6
  448. package/dist/nutrition/index.d.ts.map +0 -1
  449. package/dist/nutrition/index.js +0 -6
  450. package/dist/nutrition/index.js.map +0 -1
  451. package/dist/nutrition/ingredient/index.d.ts +0 -2
  452. package/dist/nutrition/ingredient/index.d.ts.map +0 -1
  453. package/dist/nutrition/ingredient/index.js +0 -2
  454. package/dist/nutrition/ingredient/index.js.map +0 -1
  455. package/dist/nutrition/ingredient/ingredient.schema.d.ts +0 -38
  456. package/dist/nutrition/ingredient/ingredient.schema.d.ts.map +0 -1
  457. package/dist/nutrition/ingredient/ingredient.schema.js +0 -38
  458. package/dist/nutrition/ingredient/ingredient.schema.js.map +0 -1
  459. package/dist/nutrition/recipe/index.d.ts +0 -2
  460. package/dist/nutrition/recipe/index.d.ts.map +0 -1
  461. package/dist/nutrition/recipe/index.js +0 -2
  462. package/dist/nutrition/recipe/index.js.map +0 -1
  463. package/dist/nutrition/recipe/recipe.schema.d.ts +0 -46
  464. package/dist/nutrition/recipe/recipe.schema.d.ts.map +0 -1
  465. package/dist/nutrition/recipe/recipe.schema.js +0 -34
  466. package/dist/nutrition/recipe/recipe.schema.js.map +0 -1
  467. package/dist/subscription/coupon/coupon.schema.d.ts +0 -25
  468. package/dist/subscription/coupon/coupon.schema.d.ts.map +0 -1
  469. package/dist/subscription/coupon/coupon.schema.js +0 -20
  470. package/dist/subscription/coupon/coupon.schema.js.map +0 -1
  471. package/dist/subscription/coupon/index.d.ts +0 -2
  472. package/dist/subscription/coupon/index.d.ts.map +0 -1
  473. package/dist/subscription/coupon/index.js +0 -3
  474. package/dist/subscription/coupon/index.js.map +0 -1
  475. package/dist/subscription/index.d.ts +0 -7
  476. package/dist/subscription/index.d.ts.map +0 -1
  477. package/dist/subscription/index.js +0 -8
  478. package/dist/subscription/index.js.map +0 -1
  479. package/dist/subscription/membership/index.d.ts +0 -2
  480. package/dist/subscription/membership/index.d.ts.map +0 -1
  481. package/dist/subscription/membership/index.js +0 -2
  482. package/dist/subscription/membership/index.js.map +0 -1
  483. package/dist/subscription/membership/membership.schema.d.ts +0 -28
  484. package/dist/subscription/membership/membership.schema.d.ts.map +0 -1
  485. package/dist/subscription/membership/membership.schema.js +0 -18
  486. package/dist/subscription/membership/membership.schema.js.map +0 -1
  487. package/dist/subscription/membership-plan/index.d.ts +0 -2
  488. package/dist/subscription/membership-plan/index.d.ts.map +0 -1
  489. package/dist/subscription/membership-plan/index.js +0 -2
  490. package/dist/subscription/membership-plan/index.js.map +0 -1
  491. package/dist/subscription/membership-plan/membership-plan.schema.d.ts +0 -23
  492. package/dist/subscription/membership-plan/membership-plan.schema.d.ts.map +0 -1
  493. package/dist/subscription/membership-plan/membership-plan.schema.js +0 -19
  494. package/dist/subscription/membership-plan/membership-plan.schema.js.map +0 -1
  495. package/dist/subscription/payment-transaction/index.d.ts +0 -2
  496. package/dist/subscription/payment-transaction/index.d.ts.map +0 -1
  497. package/dist/subscription/payment-transaction/index.js +0 -2
  498. package/dist/subscription/payment-transaction/index.js.map +0 -1
  499. package/dist/subscription/payment-transaction/payment-transaction.schema.d.ts +0 -47
  500. package/dist/subscription/payment-transaction/payment-transaction.schema.d.ts.map +0 -1
  501. package/dist/subscription/payment-transaction/payment-transaction.schema.js +0 -24
  502. package/dist/subscription/payment-transaction/payment-transaction.schema.js.map +0 -1
  503. package/dist/subscription/subscription/index.d.ts +0 -2
  504. package/dist/subscription/subscription/index.d.ts.map +0 -1
  505. package/dist/subscription/subscription/index.js +0 -2
  506. package/dist/subscription/subscription/index.js.map +0 -1
  507. package/dist/subscription/subscription/subscription.schema.d.ts +0 -29
  508. package/dist/subscription/subscription/subscription.schema.d.ts.map +0 -1
  509. package/dist/subscription/subscription/subscription.schema.js +0 -21
  510. package/dist/subscription/subscription/subscription.schema.js.map +0 -1
  511. package/dist/subscription/subscription-plan/index.d.ts +0 -2
  512. package/dist/subscription/subscription-plan/index.d.ts.map +0 -1
  513. package/dist/subscription/subscription-plan/index.js +0 -3
  514. package/dist/subscription/subscription-plan/index.js.map +0 -1
  515. package/dist/subscription/subscription-plan/subscription-plan.schema.d.ts +0 -24
  516. package/dist/subscription/subscription-plan/subscription-plan.schema.d.ts.map +0 -1
  517. package/dist/subscription/subscription-plan/subscription-plan.schema.js +0 -18
  518. package/dist/subscription/subscription-plan/subscription-plan.schema.js.map +0 -1
  519. package/dist/support/index.d.ts +0 -2
  520. package/dist/support/index.d.ts.map +0 -1
  521. package/dist/support/index.js +0 -2
  522. package/dist/support/index.js.map +0 -1
  523. package/dist/support/support-ticket/index.d.ts +0 -2
  524. package/dist/support/support-ticket/index.d.ts.map +0 -1
  525. package/dist/support/support-ticket/index.js +0 -2
  526. package/dist/support/support-ticket/index.js.map +0 -1
  527. package/dist/support/support-ticket/support-ticket.schema.d.ts +0 -79
  528. package/dist/support/support-ticket/support-ticket.schema.d.ts.map +0 -1
  529. package/dist/support/support-ticket/support-ticket.schema.js +0 -73
  530. package/dist/support/support-ticket/support-ticket.schema.js.map +0 -1
  531. package/dist/workout/exercise/exercise.schema.d.ts +0 -36
  532. package/dist/workout/exercise/exercise.schema.d.ts.map +0 -1
  533. package/dist/workout/exercise/exercise.schema.js +0 -34
  534. package/dist/workout/exercise/exercise.schema.js.map +0 -1
  535. package/dist/workout/exercise/index.d.ts +0 -2
  536. package/dist/workout/exercise/index.d.ts.map +0 -1
  537. package/dist/workout/exercise/index.js +0 -2
  538. package/dist/workout/exercise/index.js.map +0 -1
  539. package/dist/workout/index.d.ts +0 -4
  540. package/dist/workout/index.d.ts.map +0 -1
  541. package/dist/workout/index.js +0 -4
  542. package/dist/workout/index.js.map +0 -1
  543. package/dist/workout/workout-plan/index.d.ts +0 -2
  544. package/dist/workout/workout-plan/index.d.ts.map +0 -1
  545. package/dist/workout/workout-plan/index.js +0 -2
  546. package/dist/workout/workout-plan/index.js.map +0 -1
  547. package/dist/workout/workout-plan/workout-plan.schema.d.ts +0 -28
  548. package/dist/workout/workout-plan/workout-plan.schema.d.ts.map +0 -1
  549. package/dist/workout/workout-plan/workout-plan.schema.js +0 -32
  550. package/dist/workout/workout-plan/workout-plan.schema.js.map +0 -1
  551. package/dist/workout/workout-tracking/index.d.ts +0 -2
  552. package/dist/workout/workout-tracking/index.d.ts.map +0 -1
  553. package/dist/workout/workout-tracking/index.js +0 -2
  554. package/dist/workout/workout-tracking/index.js.map +0 -1
  555. package/dist/workout/workout-tracking/workout-tracking.schema.d.ts +0 -26
  556. package/dist/workout/workout-tracking/workout-tracking.schema.d.ts.map +0 -1
  557. package/dist/workout/workout-tracking/workout-tracking.schema.js +0 -22
  558. package/dist/workout/workout-tracking/workout-tracking.schema.js.map +0 -1
package/README.md CHANGED
@@ -1,642 +1,43 @@
1
- # 🏋️ gymmonk-schema
1
+ # gymmonk-schema
2
2
 
3
- > Central Zod v4 schema library for the GymMonk / Gym SaaS ecosystem.
3
+ Shared **Zod** schemas, enums and domain types for **GymMonk** (fitness SaaS).
4
+ Single source of truth (SSOT) consumed by both `gymmonk-backend` and
5
+ `gymmonk-web-client`, so validation, wire types and enums never drift between
6
+ the API and the app.
4
7
 
5
- [![npm version](https://img.shields.io/npm/v/gymmonk-schema.svg)](https://www.npmjs.com/package/gymmonk-schema)
6
- [![License](https://img.shields.io/npm/l/gymmonk-schema.svg)](https://github.com/yourorg/gymmonk-schema/blob/main/LICENSE)
8
+ ## What's inside
7
9
 
8
- ---
10
+ - **Common** (`common.ts`) — reusable primitives: `objectIdSchema`,
11
+ `paginationSchema`, `optionalTrimmedString`, `emptyStringToUndefined`.
12
+ - Domain modules (workouts, training library, membership, check-in, …) are
13
+ added here as they land, each re-exported through `src/index.ts`.
9
14
 
10
- ## 📋 Table of Contents
11
-
12
- - [Overview](#overview)
13
- - [Installation](#installation)
14
- - [Core Concepts](#core-concepts)
15
- - [Schemas vs Types](#schemas-vs-types)
16
- - [Naming Conventions](#naming-conventions)
17
- - [Library Structure](#library-structure)
18
- - [Common](#common)
19
- - [Auth](#auth)
20
- - [Gym](#gym)
21
- - [Workout](#workout)
22
- - [Nutrition](#nutrition)
23
- - [Subscription](#subscription)
24
- - [Marketing](#marketing)
25
- - [Notification](#notification)
26
- - [Community](#community)
27
- - [Feedback](#feedback)
28
- - [Support](#support)
29
- - [Landing](#landing)
30
- - [Audit](#audit)
31
- - [How to Import](#how-to-import)
32
- - [Usage Examples](#usage-examples)
33
- - [Backend (Express)](#backend-express)
34
- - [Frontend (Next.js)](#frontend-nextjs)
35
- - [Forms (React Hook Form + Zod)](#forms-react-hook-form--zod)
36
- - [API-doc / OpenAPI](#api-doc--openapi)
37
- - [Development & Publishing](#development--publishing)
38
- - [Versioning](#versioning)
39
-
40
- ---
41
-
42
- ## 🎯 Overview
43
-
44
- This package is the **single source of truth** for:
45
-
46
- - ✅ Domain models (`User`, `Organisation`, `Center`, `Membership`, `Workout`, etc.)
47
- - ✅ API DTOs (create/update payloads)
48
- - ✅ Public view models (safe objects to send to frontend)
49
- - ✅ Shared primitives (`ObjectId`, dates, pagination, etc.)
50
-
51
- ### 🚀 Designed for Multi-Platform Use
52
-
53
- It is designed to be used by:
54
-
55
- - **Backend** (Node.js / Express)
56
- - **Web frontend** (Next.js)
57
- - **Mobile app** (React Native)
58
- - **API-doc project** (OpenAPI/Swagger via zod-to-openapi)
59
-
60
- So all layers share the same contracts.
61
-
62
- ---
63
-
64
- ## 📦 Installation
65
-
66
- In any consumer project (backend, web, app, api-doc):
67
-
68
- ```bash
69
- npm install gymmonk-schema
70
- # or
71
- yarn add gymmonk-schema
72
- # or
73
- pnpm add gymmonk-schema
74
- ```
75
-
76
- ---
77
-
78
- ## 💡 Core Concepts
79
-
80
- ### Schemas vs Types
81
-
82
- Each entity is represented by a **Zod schema** and a corresponding **TypeScript type**:
83
-
84
- ```typescript
85
- import { z } from "zod";
86
-
87
- export const RoleSchema = z.object({
88
- name: z.string().min(1),
89
- description: z.string().trim().optional(),
90
- permissions: z.array(z.string()).default([]),
91
- });
92
-
93
- export type Role = z.infer<typeof RoleSchema>;
94
- ```
95
-
96
- #### Two Different Layers
97
-
98
- | Layer | Description |
99
- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
100
- | **Schema** (`RoleSchema`) | • Real runtime object<br>• Validates and parses data<br>• Used in controllers, services, forms, API-doc generation |
101
- | **Type** (`Role`) | • Compile-time only (erased at runtime)<br>• Used by TypeScript for static checking and autocomplete |
102
-
103
- You will see this pattern throughout the library.
104
-
105
- ### Naming Conventions
106
-
107
- Inside each domain:
108
-
109
- - **Schemas** are named: `XxxSchema`
110
- - **Types** are named: `Xxx` (via `z.infer<typeof XxxSchema>`)
111
- - **DTOs** (request/response payloads) are named: `XxxCreateDtoSchema`, `XxxUpdateDtoSchema`, etc.
112
- - **Public view models** (safe to send to frontend): `PublicXxxSchema`, `type PublicXxx`
113
-
114
- ---
115
-
116
- ## 🏗️ Library Structure
117
-
118
- At the top level, the package exposes namespaced domains:
119
-
120
- ```typescript
121
- import {
122
- Common,
123
- Auth,
124
- Gym,
125
- Workout,
126
- Nutrition,
127
- Subscription,
128
- Marketing,
129
- Notification,
130
- Community,
131
- Feedback,
132
- Support,
133
- Landing,
134
- Audit,
135
- } from "gymmonk-schema";
136
- ```
137
-
138
- Each domain has its own folder + barrel file and follows the same structure: schemas + types grouped by feature.
139
-
140
- Below is an overview of what each domain represents.
141
-
142
- ---
143
-
144
- ### 🔧 Common
145
-
146
- Building blocks used everywhere.
147
-
148
- #### Includes:
149
-
150
- **Primitives**
151
-
152
- - `ObjectIdSchema`
153
- - `IsoDateStringSchema`
154
- - `IsoDateTimeStringSchema`
155
- - `NonEmptyStringSchema`, `OptionalStringSchema`, etc.
156
-
157
- **Value Objects**
158
-
159
- - `EmailSchema`
160
- - `PhoneSchema`
161
- - `AddressSchema`
162
- - `NutritionalValuesSchema`
163
- - `PlanVariantSchema` (for flexible pricing options)
164
- - `MfaSchema`, `SocialLoginSchema`, etc.
165
-
166
- **Enums**
167
-
168
- - Gender enum
169
- - EntityStatus enum
170
- - NotificationType enum
171
-
172
- **Pagination**
173
-
174
- - `PaginationSchema` (common page, limit, etc.)
175
-
176
- #### Usage Example
177
-
178
- ```typescript
179
- const id = Common.Primitives.ObjectIdSchema.parse(someString);
180
- const pagination = Common.Pagination.PaginationSchema.parse(req.query);
181
- ```
182
-
183
- > ℹ️ _Exact nested names may vary slightly; check `src/common/index.ts` for the authoritative exports._
184
-
185
- ---
186
-
187
- ### 🔐 Auth
188
-
189
- Authentication & authorization related models.
190
-
191
- #### Includes (names representative):
192
-
193
- - `UserSchema`, `PublicUserSchema`, `UserRegisterDtoSchema` etc.
194
- - `RoleSchema` (RBAC roles)
195
- - `PermissionSchema` (fine-grained permissions)
196
- - `ResourceSchema` (RBAC resources)
197
- - `TokenSchema` (access/refresh tokens, device tokens)
198
- - `OtpSchema` (one-time passwords)
199
- - `DeviceSchema`
200
- - `PasswordHistorySchema`
201
- - `UserActivitySchema` (login, logout, etc.)
202
-
203
- #### Common Usage:
204
-
205
- - **Backend**: validate incoming auth requests (register, login, password reset)
206
- - **Frontend**: type-safe forms for login/register, and PublicUser types for UI
207
-
208
- ---
209
-
210
- ### 🏢 Gym
211
-
212
- All gym/organisation/center management models.
213
-
214
- #### Includes:
215
-
216
- **Organisation / Centers**
217
-
218
- - `OrganisationSchema`
219
- - `CenterSchema`
220
- - `CenterFacilitySchema`
221
- - `CenterServiceSchema`
222
-
223
- **Catalogs**
224
-
225
- - `EquipmentCatalogSchema`
226
- - `FacilityCatalogSchema`
227
- - `ServiceCatalogSchema`
228
-
229
- **Operational Models**
230
-
231
- - `AttendanceSchema`
232
- - `ClassScheduleSchema`
233
- - `EquipmentInventorySchema`
234
- - `GymLayoutSchema`
235
- - `SessionBookingSchema`
236
- - `GoalSchema`
237
- - `AchievementBadgeSchema`
238
-
239
- #### Used to Define and Validate:
240
-
241
- - How the gym, centers, facilities, services are modeled
242
- - Attendance tracking
243
- - Booking / layout / goals / badges
244
-
245
- ---
246
-
247
- ### 💪 Workout
248
-
249
- Exercise and workout planning & tracking.
250
-
251
- #### Includes:
252
-
253
- - `ExerciseSchema` (name, muscle groups, media, equipment)
254
- - `WorkoutPlanSchema` (list of exercises with sets/reps/duration)
255
- - `WorkoutTrackingEntrySchema` (what a member actually did, per set, per day)
256
-
257
- #### Used By:
258
-
259
- - **Backend**: workout CRUD, tracking endpoints
260
- - **Frontend/App**: typed workout UI, tracking screens
261
-
262
- ---
263
-
264
- ### 🥗 Nutrition
265
-
266
- Ingredient, recipes, diet plans, hydration.
267
-
268
- #### Includes:
269
-
270
- - `IngredientSchema`
271
- - `RecipeSchema`, `RecipeIngredientSchema`
272
- - `DietPlanSchema`, `DietPlanMealSchema`, `DietPlanItemSchema`
273
- - `DietTrackingEntrySchema`
274
- - `HydrationTrackingSchema`
275
-
276
- #### Use This For:
277
-
278
- - Building diet plans and logging diets
279
- - Aggregating nutrition
280
- - Hydration tracking
281
-
282
- ---
283
-
284
- ### 💳 Subscription
285
-
286
- Subscription, membership, coupons, payments.
287
-
288
- #### Includes:
289
-
290
- - `SubscriptionPlanSchema`
291
- - `SubscriptionSchema`
292
- - `MembershipPlanSchema`
293
- - `MembershipSchema`
294
- - `CouponSchema`
295
- - `PaymentTransactionSchema`
296
-
297
- #### Used For:
298
-
299
- - Defining product plans and membership plans
300
- - Linking members to plans (Membership, Subscription)
301
- - Applying coupons and tracking payments
302
-
303
- ---
304
-
305
- ### 📢 Marketing
306
-
307
- Branding, ads, campaigns, referrals.
308
-
309
- #### Includes:
310
-
311
- - `BrandSchema`
312
- - `AdvertisementSchema`
313
- - `MarketingCampaignSchema`
314
- - `ReferralSchema`
315
-
316
- #### Used For:
317
-
318
- - Dashboard banners, campaigns, referral systems
319
- - Representing marketing data in a unified way
320
-
321
- ---
322
-
323
- ### 🔔 Notification
324
-
325
- Notifications and templates.
326
-
327
- #### Includes:
328
-
329
- - `NotificationSchema` (delivered notification entries)
330
- - `NotificationTemplateSchema` (reusable templates per channel)
331
-
332
- **Supports channels like**: `in_app`, `push`, `email`, `sms`.
333
-
334
- ---
335
-
336
- ### 👥 Community
337
-
338
- Internal community / communication layer.
339
-
340
- #### Includes:
341
-
342
- - `ConversationSchema`
343
- - `MessageSchema`
344
- - `PostSchema`
345
-
346
- #### Used For:
347
-
348
- - Chats
349
- - Group conversations
350
- - Community posts
351
-
352
- ---
353
-
354
- ### 💬 Feedback
355
-
356
- User feedback, bug reports, ratings.
357
-
358
- #### Includes:
359
-
360
- - `FeedbackSchema` (type, message, metadata, rating)
361
-
362
- ---
363
-
364
- ### 🎫 Support
365
-
366
- Support tickets.
367
-
368
- #### Includes:
369
-
370
- - `SupportTicketSchema` (priority, status, category, assignments, metadata)
371
-
372
- ---
373
-
374
- ### 🌐 Landing
375
-
376
- Contact requests from marketing/landing pages.
377
-
378
- #### Includes:
379
-
380
- - `ContactRequestSchema` (name, email/phone, subject, message, metadata)
381
-
382
- ---
383
-
384
- ### 📝 Audit
385
-
386
- Audit logs.
387
-
388
- #### Includes:
389
-
390
- - `AuditLogSchema` (who, what, when, before/after, metadata)
391
-
392
- ---
393
-
394
- ## 📥 How to Import
395
-
396
- ### Top-Level Domains (Recommended)
397
-
398
- Prefer importing from the root in most cases:
399
-
400
- ```typescript
401
- import {
402
- Auth,
403
- Gym,
404
- Subscription,
405
- Workout,
406
- Nutrition,
407
- Common,
408
- } from "gymmonk-schema";
409
-
410
- // Auth
411
- const dto = Auth.UserRegisterDtoSchema.parse(body);
412
-
413
- // Gym
414
- const center = Gym.CenterSchema.parse(payload);
415
-
416
- // Subscription
417
- type Plan = Subscription.SubscriptionPlan;
418
- const planSchema = Subscription.SubscriptionPlanSchema;
419
- ```
420
-
421
- > 💡 If you want very fine-grained imports, you can also import directly from subpaths as long as your build/exports are configured for it (check your `package.json` "exports" if you add that later).
422
-
423
- ---
424
-
425
- ## 🎨 Usage Examples
426
-
427
- ### Backend (Express)
428
-
429
- #### Validate Request Body (DTO)
430
-
431
- ```typescript
432
- import { Auth } from "gymmonk-schema";
433
- import type { Request, Response } from "express";
434
-
435
- export async function registerHandler(req: Request, res: Response) {
436
- try {
437
- const dto = Auth.UserRegisterDtoSchema.parse(req.body);
438
-
439
- // dto is fully validated and typed
440
- const user = await createUser(dto);
441
-
442
- const publicUser = Auth.PublicUserSchema.parse(user);
443
- return res.status(201).json(publicUser);
444
- } catch (err: any) {
445
- return res.status(400).json({
446
- message: "Invalid request",
447
- errors: err.errors ?? err,
448
- });
449
- }
450
- }
451
- ```
452
-
453
- #### Validate Query Params
454
-
455
- ```typescript
456
- import { Common } from "gymmonk-schema";
457
-
458
- app.get("/centers", (req, res) => {
459
- const pagination = Common.Pagination.PaginationSchema.parse(req.query);
460
- // use pagination.page / pagination.limit
461
- });
462
- ```
463
-
464
- ---
465
-
466
- ### Frontend (Next.js)
467
-
468
- #### Validate Data Before Sending to Backend
469
-
470
- ```typescript
471
- "use client";
472
-
473
- import { Auth } from "gymmonk-schema";
474
-
475
- async function submit(formData: any) {
476
- const dto = Auth.UserRegisterDtoSchema.parse(formData);
477
-
478
- const res = await fetch("/api/auth/register", {
479
- method: "POST",
480
- body: JSON.stringify(dto),
481
- headers: { "Content-Type": "application/json" },
482
- });
483
-
484
- return res.json();
485
- }
486
- ```
487
-
488
- #### Strongly Typed UI Components
489
-
490
- ```typescript
491
- import { Gym } from "gymmonk-schema";
492
-
493
- type Center = Gym.Center;
494
-
495
- function CenterCard({ center }: { center: Center }) {
496
- return (
497
- <div>
498
- <h2>{center.name}</h2>
499
- <p>{center.address?.city}</p>
500
- </div>
501
- );
502
- }
503
- ```
504
-
505
- ---
506
-
507
- ### Forms (React Hook Form + Zod)
508
-
509
- ```typescript
510
- import { useForm } from "react-hook-form";
511
- import { zodResolver } from "@hookform/resolvers/zod";
512
- import { Subscription } from "gymmonk-schema";
513
-
514
- const schema = Subscription.SubscriptionPlanSchema;
515
- type PlanForm = Subscription.SubscriptionPlan;
516
-
517
- export function PlanFormComponent() {
518
- const form = useForm<PlanForm>({
519
- resolver: zodResolver(schema),
520
- });
521
-
522
- // form.register, form.handleSubmit, etc.
523
- }
524
- ```
525
-
526
- ---
527
-
528
- ### API-doc / OpenAPI
529
-
530
- In your API-doc project (contract-first design), you can introspect schemas and generate OpenAPI:
531
-
532
- ```typescript
533
- import {
534
- OpenAPIRegistry,
535
- generateOpenApiDocument,
536
- } from "@asteasolutions/zod-to-openapi";
537
- import { Auth, Gym } from "gymmonk-schema";
538
-
539
- const registry = new OpenAPIRegistry();
540
-
541
- // Register schemas
542
- registry.register("User", Auth.PublicUserSchema);
543
- registry.register("Center", Gym.CenterSchema);
544
-
545
- // Register routes and use the schemas in request/response definitions…
546
-
547
- const openapi = generateOpenApiDocument(registry.definitions, {
548
- openapi: "3.0.0",
549
- info: {
550
- title: "GymMonk API",
551
- version: "1.0.0",
552
- },
553
- });
554
-
555
- // Then write openapi.json and serve via swagger-ui-express
556
- ```
557
-
558
- This way API docs are always in sync with your code and frontend types.
559
-
560
- ---
561
-
562
- ## 🛠️ Development & Publishing
563
-
564
- In the `gymmonk-schema` repo:
565
-
566
- ### Build
15
+ ## Build & publish (npm-first)
567
16
 
568
17
  ```bash
569
- npm run build
570
- ```
571
-
572
- **Typical script:**
573
-
574
- ```json
575
- "build": "tsc"
576
- ```
577
-
578
- This compiles `src/**/*.ts` → `dist/**/*.js` + `.d.ts`.
579
-
580
- ### Lint + Format
581
-
582
- Using Biome:
583
-
584
- ```bash
585
- npm run check # type-check + lint + format (depending on your script)
586
- npm run lint # if you have a separate lint script
587
- npm run format # if you have a separate format script
588
- ```
589
-
590
- ### Version Bump
591
-
592
- Use semantic versioning:
593
-
594
- ```bash
595
- npm version patch # 0.1.0 -> 0.1.1
596
- npm version minor # 0.1.0 -> 0.2.0
597
- npm version major # 0.1.0 -> 1.0.0
18
+ npm install
19
+ npm run build # tsc -> dist/
20
+ npm publish --access public
598
21
  ```
599
22
 
600
- This updates `package.json` and creates a git commit + tag (if configured).
23
+ `prepublishOnly` runs `build` + `check` (type-check + biome) as the publish gate.
24
+ `--access public` is a CLI flag, not a manifest field.
601
25
 
602
- ### Publish
26
+ ## Consume
603
27
 
604
- ```bash
605
- npm login
606
- npm run build
607
- npm publish --access public
608
- ```
609
-
610
- Then consumers can install:
28
+ In `gymmonk-backend` and `gymmonk-web-client`:
611
29
 
612
30
  ```bash
613
- npm install gymmonk-schema
31
+ npm install gymmonk-schema@<version>
32
+ # then delete any nested Zod dup so a single Zod instance is used:
33
+ rm -rf node_modules/gymmonk-schema/node_modules
614
34
  ```
615
35
 
616
- ---
617
-
618
- ## 📌 Versioning
619
-
620
- Follow standard **SemVer**:
621
-
622
- | Version Type | Pattern | Description |
623
- | ------------ | ------- | ---------------------------------------------------------------- |
624
- | **PATCH** | `x.y.Z` | Internal fixes, no breaking changes |
625
- | **MINOR** | `x.Y.z` | New schemas/fields added in a backwards-compatible way |
626
- | **MAJOR** | `X.y.z` | Breaking changes (removed fields, renamed, incompatible changes) |
627
-
628
- ### Guidelines:
629
-
630
- - ✅ **Adding optional fields**: minor
631
- - ⚠️ **Making a field required or changing its type**: major
632
- - ⚠️ **Removing schemas or renaming them**: major
633
-
634
- > 📝 Keep a simple `CHANGELOG.md` to track what changed between versions, especially when schemas or DTOs change in ways that affect consumers.
635
-
636
- ---
637
-
638
- <div align="center">
36
+ Bump the caret pin in each consumer's `package.json` on every publish (a `0.x`
37
+ caret locks to the same minor, so `npm install` won't auto-pick a new minor).
639
38
 
640
- **Built with ❤️ for the GymMonk ecosystem**
39
+ ## Convention
641
40
 
642
- </div>
41
+ Mirrors the jansathi schema family (`dating-schema`, `near-me-schema`) exactly:
42
+ pure ESM, `tsc`-only build, Zod is a **peer** dependency (`^4.4.0`), NodeNext
43
+ `.js` import specifiers, const-object enums fed to `z.enum(...)`.
@@ -0,0 +1,27 @@
1
+ /**
2
+ * gymmonk-schema — Shared helpers and primitives
3
+ * ==============================================
4
+ * The stable building blocks reused across every GymMonk domain schema.
5
+ * Mirrors the `dating-schema` / `near-me-schema` idiom: pure Zod, const-object
6
+ * enums fed to `z.enum(...)`, NodeNext `.js` import specifiers.
7
+ *
8
+ * @module gymmonk-schema/common
9
+ */
10
+ import { z } from 'zod';
11
+ /**
12
+ * Converts empty / whitespace-only strings to `undefined`
13
+ * so Zod `.optional()` treats them as "not provided".
14
+ */
15
+ export declare const emptyStringToUndefined: (value: unknown) => unknown;
16
+ /** Optional trimmed string. Empty strings are coerced to `undefined`. */
17
+ export declare const optionalTrimmedString: (maxLength?: number) => z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
18
+ /** A 24-character hex MongoDB ObjectId string. */
19
+ export declare const objectIdSchema: z.ZodString;
20
+ export type ObjectIdString = z.infer<typeof objectIdSchema>;
21
+ /** Pagination query params shared across list endpoints. */
22
+ export declare const paginationSchema: z.ZodObject<{
23
+ page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
24
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
25
+ }, z.core.$strip>;
26
+ export type Pagination = z.infer<typeof paginationSchema>;
27
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,OAGvD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,GAAI,kBAAe,gDAC8B,CAAC;AAIpF,kDAAkD;AAClD,eAAO,MAAM,cAAc,aAGgB,CAAC;AAC5C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAI5D,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}