@open-mercato/core 0.10.1-develop.7717.1.2befe9c634 → 0.10.1-develop.7721.1.b5c4a00a68

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 (384) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/generated/entities/staff_support_routing_rule/index.js +21 -0
  3. package/dist/generated/entities/staff_support_routing_rule/index.js.map +7 -0
  4. package/dist/generated/entities/staff_support_ticket/index.js +37 -0
  5. package/dist/generated/entities/staff_support_ticket/index.js.map +7 -0
  6. package/dist/generated/entities/staff_time_project/index.js +2 -0
  7. package/dist/generated/entities/staff_time_project/index.js.map +2 -2
  8. package/dist/generated/entities/staff_time_project_member/index.js +2 -0
  9. package/dist/generated/entities/staff_time_project_member/index.js.map +2 -2
  10. package/dist/generated/entities/staff_time_task/index.js +4 -0
  11. package/dist/generated/entities/staff_time_task/index.js.map +2 -2
  12. package/dist/generated/entities/staff_time_task_comment/index.js +9 -1
  13. package/dist/generated/entities/staff_time_task_comment/index.js.map +2 -2
  14. package/dist/generated/entities.ids.generated.js +2 -0
  15. package/dist/generated/entities.ids.generated.js.map +2 -2
  16. package/dist/generated/entity-fields-registry.js +38 -0
  17. package/dist/generated/entity-fields-registry.js.map +2 -2
  18. package/dist/helpers/integration/auth.js +1 -0
  19. package/dist/helpers/integration/auth.js.map +2 -2
  20. package/dist/helpers/integration/communicationChannelsFixtures.js +20 -0
  21. package/dist/helpers/integration/communicationChannelsFixtures.js.map +2 -2
  22. package/dist/modules/catalog/api/bulk-delete/route.js +12 -2
  23. package/dist/modules/catalog/api/bulk-delete/route.js.map +2 -2
  24. package/dist/modules/communication_channels/api/post/test-seed/route.js +17 -3
  25. package/dist/modules/communication_channels/api/post/test-seed/route.js.map +2 -2
  26. package/dist/modules/communication_channels/lib/test-seed.js +38 -5
  27. package/dist/modules/communication_channels/lib/test-seed.js.map +2 -2
  28. package/dist/modules/messages/commands/messages.js +2 -3
  29. package/dist/modules/messages/commands/messages.js.map +2 -2
  30. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js +2 -2
  31. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js.map +2 -2
  32. package/dist/modules/staff/api/portal/support-tickets/[id]/attachments/route.js +299 -0
  33. package/dist/modules/staff/api/portal/support-tickets/[id]/attachments/route.js.map +7 -0
  34. package/dist/modules/staff/api/portal/support-tickets/[id]/messages/route.js +91 -0
  35. package/dist/modules/staff/api/portal/support-tickets/[id]/messages/route.js.map +7 -0
  36. package/dist/modules/staff/api/portal/support-tickets/[id]/route.js +146 -0
  37. package/dist/modules/staff/api/portal/support-tickets/[id]/route.js.map +7 -0
  38. package/dist/modules/staff/api/portal/support-tickets/options/route.js +60 -0
  39. package/dist/modules/staff/api/portal/support-tickets/options/route.js.map +7 -0
  40. package/dist/modules/staff/api/portal/support-tickets/route.js +220 -0
  41. package/dist/modules/staff/api/portal/support-tickets/route.js.map +7 -0
  42. package/dist/modules/staff/api/timesheets/settings/route.js +7 -1
  43. package/dist/modules/staff/api/timesheets/settings/route.js.map +2 -2
  44. package/dist/modules/staff/api/timesheets/support-routing-rules/fallback-project/route.js +122 -0
  45. package/dist/modules/staff/api/timesheets/support-routing-rules/fallback-project/route.js.map +7 -0
  46. package/dist/modules/staff/api/timesheets/support-routing-rules/preview/route.js +180 -0
  47. package/dist/modules/staff/api/timesheets/support-routing-rules/preview/route.js.map +7 -0
  48. package/dist/modules/staff/api/timesheets/support-routing-rules/route.js +147 -0
  49. package/dist/modules/staff/api/timesheets/support-routing-rules/route.js.map +7 -0
  50. package/dist/modules/staff/api/timesheets/support-tickets/options/route.js +133 -0
  51. package/dist/modules/staff/api/timesheets/support-tickets/options/route.js.map +7 -0
  52. package/dist/modules/staff/api/timesheets/tasks/[id]/claim/route.js +33 -0
  53. package/dist/modules/staff/api/timesheets/tasks/[id]/claim/route.js.map +7 -0
  54. package/dist/modules/staff/api/timesheets/tasks/[id]/comments/route.js +25 -7
  55. package/dist/modules/staff/api/timesheets/tasks/[id]/comments/route.js.map +2 -2
  56. package/dist/modules/staff/api/timesheets/tasks/[id]/release/route.js +32 -0
  57. package/dist/modules/staff/api/timesheets/tasks/[id]/release/route.js.map +7 -0
  58. package/dist/modules/staff/api/timesheets/tasks/route.js +94 -47
  59. package/dist/modules/staff/api/timesheets/tasks/route.js.map +2 -2
  60. package/dist/modules/staff/api/timesheets/time-projects/[id]/employees/route.js +3 -0
  61. package/dist/modules/staff/api/timesheets/time-projects/[id]/employees/route.js.map +2 -2
  62. package/dist/modules/staff/api/timesheets/time-projects/route.js +3 -0
  63. package/dist/modules/staff/api/timesheets/time-projects/route.js.map +2 -2
  64. package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.js +1 -0
  65. package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.js.map +2 -2
  66. package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/page.js +54 -4
  67. package/dist/modules/staff/backend/staff/time-tracking/projects/[id]/page.js.map +2 -2
  68. package/dist/modules/staff/backend/staff/time-tracking/projects/projectFormConfig.js +21 -5
  69. package/dist/modules/staff/backend/staff/time-tracking/projects/projectFormConfig.js.map +2 -2
  70. package/dist/modules/staff/backend/staff/time-tracking/settings/page.js +319 -254
  71. package/dist/modules/staff/backend/staff/time-tracking/settings/page.js.map +2 -2
  72. package/dist/modules/staff/backend/staff/time-tracking/support/page.js +363 -0
  73. package/dist/modules/staff/backend/staff/time-tracking/support/page.js.map +7 -0
  74. package/dist/modules/staff/backend/staff/time-tracking/support/page.meta.js +18 -0
  75. package/dist/modules/staff/backend/staff/time-tracking/support/page.meta.js.map +7 -0
  76. package/dist/modules/staff/cli.js +27 -0
  77. package/dist/modules/staff/cli.js.map +2 -2
  78. package/dist/modules/staff/commands/index.js +3 -0
  79. package/dist/modules/staff/commands/index.js.map +2 -2
  80. package/dist/modules/staff/commands/shared.js +10 -1
  81. package/dist/modules/staff/commands/shared.js.map +2 -2
  82. package/dist/modules/staff/commands/support-routing-rules.js +505 -0
  83. package/dist/modules/staff/commands/support-routing-rules.js.map +7 -0
  84. package/dist/modules/staff/commands/support-tickets.js +513 -0
  85. package/dist/modules/staff/commands/support-tickets.js.map +7 -0
  86. package/dist/modules/staff/commands/timesheets-projects.js +72 -14
  87. package/dist/modules/staff/commands/timesheets-projects.js.map +2 -2
  88. package/dist/modules/staff/commands/timesheets-task-assignment.js +270 -0
  89. package/dist/modules/staff/commands/timesheets-task-assignment.js.map +7 -0
  90. package/dist/modules/staff/commands/timesheets-task-comments.js +58 -12
  91. package/dist/modules/staff/commands/timesheets-task-comments.js.map +2 -2
  92. package/dist/modules/staff/commands/timesheets-tasks.js +91 -9
  93. package/dist/modules/staff/commands/timesheets-tasks.js.map +3 -3
  94. package/dist/modules/staff/data/enrichers.js +141 -0
  95. package/dist/modules/staff/data/enrichers.js.map +2 -2
  96. package/dist/modules/staff/data/entities.js +143 -2
  97. package/dist/modules/staff/data/entities.js.map +2 -2
  98. package/dist/modules/staff/data/extensions.js +8 -0
  99. package/dist/modules/staff/data/extensions.js.map +2 -2
  100. package/dist/modules/staff/data/validators.js +34 -5
  101. package/dist/modules/staff/data/validators.js.map +2 -2
  102. package/dist/modules/staff/encryption.js +6 -0
  103. package/dist/modules/staff/encryption.js.map +2 -2
  104. package/dist/modules/staff/events.js +25 -0
  105. package/dist/modules/staff/events.js.map +2 -2
  106. package/dist/modules/staff/events.payloads.js +54 -0
  107. package/dist/modules/staff/events.payloads.js.map +2 -2
  108. package/dist/modules/staff/extension-points.js +1 -0
  109. package/dist/modules/staff/extension-points.js.map +2 -2
  110. package/dist/modules/staff/frontend/[orgSlug]/portal/support/[id]/page.js +468 -0
  111. package/dist/modules/staff/frontend/[orgSlug]/portal/support/[id]/page.js.map +7 -0
  112. package/dist/modules/staff/frontend/[orgSlug]/portal/support/[id]/page.meta.js +12 -0
  113. package/dist/modules/staff/frontend/[orgSlug]/portal/support/[id]/page.meta.js.map +7 -0
  114. package/dist/modules/staff/frontend/[orgSlug]/portal/support/new/page.js +316 -0
  115. package/dist/modules/staff/frontend/[orgSlug]/portal/support/new/page.js.map +7 -0
  116. package/dist/modules/staff/frontend/[orgSlug]/portal/support/new/page.meta.js +12 -0
  117. package/dist/modules/staff/frontend/[orgSlug]/portal/support/new/page.meta.js.map +7 -0
  118. package/dist/modules/staff/frontend/[orgSlug]/portal/support/page.js +190 -0
  119. package/dist/modules/staff/frontend/[orgSlug]/portal/support/page.js.map +7 -0
  120. package/dist/modules/staff/frontend/[orgSlug]/portal/support/page.meta.js +19 -0
  121. package/dist/modules/staff/frontend/[orgSlug]/portal/support/page.meta.js.map +7 -0
  122. package/dist/modules/staff/index.js +1 -1
  123. package/dist/modules/staff/index.js.map +2 -2
  124. package/dist/modules/staff/lib/crud.js +2 -0
  125. package/dist/modules/staff/lib/crud.js.map +2 -2
  126. package/dist/modules/staff/lib/support/attachments.js +36 -0
  127. package/dist/modules/staff/lib/support/attachments.js.map +7 -0
  128. package/dist/modules/staff/lib/support/dictionaries.js +87 -0
  129. package/dist/modules/staff/lib/support/dictionaries.js.map +7 -0
  130. package/dist/modules/staff/lib/support/notifications.js +111 -0
  131. package/dist/modules/staff/lib/support/notifications.js.map +7 -0
  132. package/dist/modules/staff/lib/support/portalAttachments.js +100 -0
  133. package/dist/modules/staff/lib/support/portalAttachments.js.map +7 -0
  134. package/dist/modules/staff/lib/support/portalBroadcast.js +117 -0
  135. package/dist/modules/staff/lib/support/portalBroadcast.js.map +7 -0
  136. package/dist/modules/staff/lib/support/portalRoute.js +99 -0
  137. package/dist/modules/staff/lib/support/portalRoute.js.map +7 -0
  138. package/dist/modules/staff/lib/support/portalStatus.js +12 -0
  139. package/dist/modules/staff/lib/support/portalStatus.js.map +7 -0
  140. package/dist/modules/staff/lib/support/portalTickets.js +148 -0
  141. package/dist/modules/staff/lib/support/portalTickets.js.map +7 -0
  142. package/dist/modules/staff/lib/support/routing.js +81 -0
  143. package/dist/modules/staff/lib/support/routing.js.map +7 -0
  144. package/dist/modules/staff/lib/support/routingRuleDraft.js +25 -0
  145. package/dist/modules/staff/lib/support/routingRuleDraft.js.map +7 -0
  146. package/dist/modules/staff/lib/support/seedDefaults.js +114 -0
  147. package/dist/modules/staff/lib/support/seedDefaults.js.map +7 -0
  148. package/dist/modules/staff/lib/support/supportActivity.js +26 -0
  149. package/dist/modules/staff/lib/support/supportActivity.js.map +7 -0
  150. package/dist/modules/staff/lib/support-ui/PortalSupportNotLinked.js +23 -0
  151. package/dist/modules/staff/lib/support-ui/PortalSupportNotLinked.js.map +7 -0
  152. package/dist/modules/staff/lib/support-ui/portalAttachmentValidation.js +112 -0
  153. package/dist/modules/staff/lib/support-ui/portalAttachmentValidation.js.map +7 -0
  154. package/dist/modules/staff/lib/support-ui/portalPendingUploads.js +45 -0
  155. package/dist/modules/staff/lib/support-ui/portalPendingUploads.js.map +7 -0
  156. package/dist/modules/staff/lib/support-ui/portalSupport.js +51 -0
  157. package/dist/modules/staff/lib/support-ui/portalSupport.js.map +7 -0
  158. package/dist/modules/staff/lib/time-tracking/access.js +3 -39
  159. package/dist/modules/staff/lib/time-tracking/access.js.map +2 -2
  160. package/dist/modules/staff/lib/time-tracking/listProjectAccess.js +54 -0
  161. package/dist/modules/staff/lib/time-tracking/listProjectAccess.js.map +7 -0
  162. package/dist/modules/staff/lib/time-tracking/portalRecipients.js +92 -2
  163. package/dist/modules/staff/lib/time-tracking/portalRecipients.js.map +2 -2
  164. package/dist/modules/staff/lib/time-tracking/projectAssignment.js +112 -0
  165. package/dist/modules/staff/lib/time-tracking/projectAssignment.js.map +7 -0
  166. package/dist/modules/staff/lib/time-tracking/settingKeys.js +14 -0
  167. package/dist/modules/staff/lib/time-tracking/settingKeys.js.map +2 -2
  168. package/dist/modules/staff/lib/time-tracking/settings.js +28 -1
  169. package/dist/modules/staff/lib/time-tracking/settings.js.map +2 -2
  170. package/dist/modules/staff/lib/time-tracking/taskAssignmentRoute.js +143 -0
  171. package/dist/modules/staff/lib/time-tracking/taskAssignmentRoute.js.map +7 -0
  172. package/dist/modules/staff/lib/time-tracking/workRecipients.js +92 -0
  173. package/dist/modules/staff/lib/time-tracking/workRecipients.js.map +7 -0
  174. package/dist/modules/staff/lib/time-tracking-ui/BoardFilterChips.js +32 -3
  175. package/dist/modules/staff/lib/time-tracking-ui/BoardFilterChips.js.map +2 -2
  176. package/dist/modules/staff/lib/time-tracking-ui/KanbanBoard.js +29 -0
  177. package/dist/modules/staff/lib/time-tracking-ui/KanbanBoard.js.map +2 -2
  178. package/dist/modules/staff/lib/time-tracking-ui/KanbanCard.js +4 -0
  179. package/dist/modules/staff/lib/time-tracking-ui/KanbanCard.js.map +2 -2
  180. package/dist/modules/staff/lib/time-tracking-ui/ProjectFormSections.js +141 -1
  181. package/dist/modules/staff/lib/time-tracking-ui/ProjectFormSections.js.map +2 -2
  182. package/dist/modules/staff/lib/time-tracking-ui/SupportAttachmentsSection.js +153 -0
  183. package/dist/modules/staff/lib/time-tracking-ui/SupportAttachmentsSection.js.map +7 -0
  184. package/dist/modules/staff/lib/time-tracking-ui/SupportRequestPanel.js +67 -0
  185. package/dist/modules/staff/lib/time-tracking-ui/SupportRequestPanel.js.map +7 -0
  186. package/dist/modules/staff/lib/time-tracking-ui/TaskBoardScreen.js +3 -1
  187. package/dist/modules/staff/lib/time-tracking-ui/TaskBoardScreen.js.map +2 -2
  188. package/dist/modules/staff/lib/time-tracking-ui/TaskCommentThread.js +80 -17
  189. package/dist/modules/staff/lib/time-tracking-ui/TaskCommentThread.js.map +2 -2
  190. package/dist/modules/staff/lib/time-tracking-ui/TaskDrawer.js +230 -41
  191. package/dist/modules/staff/lib/time-tracking-ui/TaskDrawer.js.map +2 -2
  192. package/dist/modules/staff/lib/time-tracking-ui/boardDirectory.js +21 -1
  193. package/dist/modules/staff/lib/time-tracking-ui/boardDirectory.js.map +2 -2
  194. package/dist/modules/staff/lib/time-tracking-ui/boardFilters.js +16 -4
  195. package/dist/modules/staff/lib/time-tracking-ui/boardFilters.js.map +2 -2
  196. package/dist/modules/staff/lib/time-tracking-ui/kanbanBoardData.js +3 -1
  197. package/dist/modules/staff/lib/time-tracking-ui/kanbanBoardData.js.map +2 -2
  198. package/dist/modules/staff/lib/time-tracking-ui/projectDefaultAssignee.js +68 -0
  199. package/dist/modules/staff/lib/time-tracking-ui/projectDefaultAssignee.js.map +7 -0
  200. package/dist/modules/staff/lib/time-tracking-ui/settingsTabs.js +7 -0
  201. package/dist/modules/staff/lib/time-tracking-ui/settingsTabs.js.map +7 -0
  202. package/dist/modules/staff/lib/time-tracking-ui/supportTicketData.js +50 -0
  203. package/dist/modules/staff/lib/time-tracking-ui/supportTicketData.js.map +7 -0
  204. package/dist/modules/staff/lib/time-tracking-ui/taskDrawerData.js +13 -1
  205. package/dist/modules/staff/lib/time-tracking-ui/taskDrawerData.js.map +2 -2
  206. package/dist/modules/staff/lib/time-tracking-ui/timeTrackingSettingsForm.js +36 -2
  207. package/dist/modules/staff/lib/time-tracking-ui/timeTrackingSettingsForm.js.map +2 -2
  208. package/dist/modules/staff/migrations/Migration20261009180543_staff.js +42 -0
  209. package/dist/modules/staff/migrations/Migration20261009180543_staff.js.map +7 -0
  210. package/dist/modules/staff/notifications.js +92 -0
  211. package/dist/modules/staff/notifications.js.map +2 -2
  212. package/dist/modules/staff/setup.js +6 -2
  213. package/dist/modules/staff/setup.js.map +2 -2
  214. package/dist/modules/staff/subscribers/support-portal-comment-created.js +26 -0
  215. package/dist/modules/staff/subscribers/support-portal-comment-created.js.map +7 -0
  216. package/dist/modules/staff/subscribers/support-portal-comment-deleted.js +26 -0
  217. package/dist/modules/staff/subscribers/support-portal-comment-deleted.js.map +7 -0
  218. package/dist/modules/staff/subscribers/support-portal-comment-updated.js +26 -0
  219. package/dist/modules/staff/subscribers/support-portal-comment-updated.js.map +7 -0
  220. package/dist/modules/staff/subscribers/support-portal-status-column-updated.js +24 -0
  221. package/dist/modules/staff/subscribers/support-portal-status-column-updated.js.map +7 -0
  222. package/dist/modules/staff/subscribers/support-portal-task-status-changed.js +25 -0
  223. package/dist/modules/staff/subscribers/support-portal-task-status-changed.js.map +7 -0
  224. package/dist/modules/staff/subscribers/support-portal-task-updated.js +25 -0
  225. package/dist/modules/staff/subscribers/support-portal-task-updated.js.map +7 -0
  226. package/dist/modules/staff/subscribers/support-ticket-created-notification.js +25 -0
  227. package/dist/modules/staff/subscribers/support-ticket-created-notification.js.map +7 -0
  228. package/dist/modules/staff/subscribers/support-ticket-customer-replied-notification.js +25 -0
  229. package/dist/modules/staff/subscribers/support-ticket-customer-replied-notification.js.map +7 -0
  230. package/dist/modules/staff/subscribers/support-ticket-unnotified-clear.js +26 -0
  231. package/dist/modules/staff/subscribers/support-ticket-unnotified-clear.js.map +7 -0
  232. package/dist/modules/staff/subscribers/time-task-assignee-notification.js +83 -0
  233. package/dist/modules/staff/subscribers/time-task-assignee-notification.js.map +7 -0
  234. package/dist/modules/staff/widgets/injection/portal-support-tickets/widget.client.js +112 -0
  235. package/dist/modules/staff/widgets/injection/portal-support-tickets/widget.client.js.map +7 -0
  236. package/dist/modules/staff/widgets/injection/portal-support-tickets/widget.js +17 -0
  237. package/dist/modules/staff/widgets/injection/portal-support-tickets/widget.js.map +7 -0
  238. package/dist/modules/staff/widgets/injection/time-tracking-settings-support/widget.client.js +870 -0
  239. package/dist/modules/staff/widgets/injection/time-tracking-settings-support/widget.client.js.map +7 -0
  240. package/dist/modules/staff/widgets/injection/time-tracking-settings-support/widget.js +17 -0
  241. package/dist/modules/staff/widgets/injection/time-tracking-settings-support/widget.js.map +7 -0
  242. package/dist/modules/staff/widgets/injection-table.js +16 -1
  243. package/dist/modules/staff/widgets/injection-table.js.map +2 -2
  244. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +4 -18
  245. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
  246. package/dist/modules/wms/components/backend/WmsLotDetailPage.js +4 -18
  247. package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
  248. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +4 -18
  249. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
  250. package/dist/modules/wms/lib/inventoryCsvExport.js +19 -0
  251. package/dist/modules/wms/lib/inventoryCsvExport.js.map +7 -0
  252. package/generated/entities/staff_support_routing_rule/index.ts +9 -0
  253. package/generated/entities/staff_support_ticket/index.ts +17 -0
  254. package/generated/entities/staff_time_project/index.ts +1 -0
  255. package/generated/entities/staff_time_project_member/index.ts +1 -0
  256. package/generated/entities/staff_time_task/index.ts +2 -0
  257. package/generated/entities/staff_time_task_comment/index.ts +4 -0
  258. package/generated/entities.ids.generated.ts +2 -0
  259. package/generated/entity-fields-registry.ts +38 -0
  260. package/package.json +8 -8
  261. package/src/helpers/integration/auth.ts +1 -1
  262. package/src/helpers/integration/communicationChannelsFixtures.ts +60 -2
  263. package/src/modules/catalog/api/bulk-delete/route.ts +12 -2
  264. package/src/modules/communication_channels/api/post/test-seed/route.ts +29 -12
  265. package/src/modules/communication_channels/lib/test-seed.ts +49 -10
  266. package/src/modules/messages/commands/messages.ts +8 -10
  267. package/src/modules/portal/frontend/[orgSlug]/portal/dashboard/page.tsx +2 -2
  268. package/src/modules/staff/AGENTS.md +22 -6
  269. package/src/modules/staff/api/portal/support-tickets/[id]/attachments/route.ts +327 -0
  270. package/src/modules/staff/api/portal/support-tickets/[id]/messages/route.ts +94 -0
  271. package/src/modules/staff/api/portal/support-tickets/[id]/route.ts +160 -0
  272. package/src/modules/staff/api/portal/support-tickets/options/route.ts +60 -0
  273. package/src/modules/staff/api/portal/support-tickets/route.ts +253 -0
  274. package/src/modules/staff/api/timesheets/settings/route.ts +7 -1
  275. package/src/modules/staff/api/timesheets/support-routing-rules/fallback-project/route.ts +131 -0
  276. package/src/modules/staff/api/timesheets/support-routing-rules/preview/route.ts +248 -0
  277. package/src/modules/staff/api/timesheets/support-routing-rules/route.ts +150 -0
  278. package/src/modules/staff/api/timesheets/support-tickets/options/route.ts +181 -0
  279. package/src/modules/staff/api/timesheets/tasks/[id]/claim/route.ts +31 -0
  280. package/src/modules/staff/api/timesheets/tasks/[id]/comments/route.ts +25 -7
  281. package/src/modules/staff/api/timesheets/tasks/[id]/release/route.ts +30 -0
  282. package/src/modules/staff/api/timesheets/tasks/route.ts +119 -67
  283. package/src/modules/staff/api/timesheets/time-projects/[id]/employees/route.ts +3 -0
  284. package/src/modules/staff/api/timesheets/time-projects/route.ts +3 -0
  285. package/src/modules/staff/backend/staff/time-tracking/projects/[id]/edit/page.tsx +1 -0
  286. package/src/modules/staff/backend/staff/time-tracking/projects/[id]/page.tsx +67 -2
  287. package/src/modules/staff/backend/staff/time-tracking/projects/projectFormConfig.ts +22 -3
  288. package/src/modules/staff/backend/staff/time-tracking/settings/page.tsx +405 -308
  289. package/src/modules/staff/backend/staff/time-tracking/support/page.meta.ts +14 -0
  290. package/src/modules/staff/backend/staff/time-tracking/support/page.tsx +428 -0
  291. package/src/modules/staff/cli.ts +28 -0
  292. package/src/modules/staff/commands/index.ts +3 -0
  293. package/src/modules/staff/commands/shared.ts +22 -1
  294. package/src/modules/staff/commands/support-routing-rules.ts +595 -0
  295. package/src/modules/staff/commands/support-tickets.ts +580 -0
  296. package/src/modules/staff/commands/timesheets-projects.ts +84 -13
  297. package/src/modules/staff/commands/timesheets-task-assignment.ts +319 -0
  298. package/src/modules/staff/commands/timesheets-task-comments.ts +70 -15
  299. package/src/modules/staff/commands/timesheets-tasks.ts +106 -15
  300. package/src/modules/staff/data/enrichers.ts +203 -0
  301. package/src/modules/staff/data/entities.ts +133 -2
  302. package/src/modules/staff/data/extensions.ts +9 -1
  303. package/src/modules/staff/data/validators.ts +36 -0
  304. package/src/modules/staff/encryption.ts +6 -0
  305. package/src/modules/staff/events.payloads.ts +87 -1
  306. package/src/modules/staff/events.ts +26 -0
  307. package/src/modules/staff/extension-points.ts +1 -0
  308. package/src/modules/staff/frontend/[orgSlug]/portal/support/[id]/page.meta.ts +10 -0
  309. package/src/modules/staff/frontend/[orgSlug]/portal/support/[id]/page.tsx +553 -0
  310. package/src/modules/staff/frontend/[orgSlug]/portal/support/new/page.meta.ts +10 -0
  311. package/src/modules/staff/frontend/[orgSlug]/portal/support/new/page.tsx +346 -0
  312. package/src/modules/staff/frontend/[orgSlug]/portal/support/page.meta.ts +17 -0
  313. package/src/modules/staff/frontend/[orgSlug]/portal/support/page.tsx +253 -0
  314. package/src/modules/staff/i18n/de.json +291 -0
  315. package/src/modules/staff/i18n/en.json +291 -0
  316. package/src/modules/staff/i18n/es.json +291 -0
  317. package/src/modules/staff/i18n/ko.json +291 -0
  318. package/src/modules/staff/i18n/pl.json +291 -0
  319. package/src/modules/staff/index.ts +1 -1
  320. package/src/modules/staff/lib/crud.ts +2 -1
  321. package/src/modules/staff/lib/support/attachments.ts +43 -0
  322. package/src/modules/staff/lib/support/dictionaries.ts +120 -0
  323. package/src/modules/staff/lib/support/notifications.ts +138 -0
  324. package/src/modules/staff/lib/support/portalAttachments.ts +140 -0
  325. package/src/modules/staff/lib/support/portalBroadcast.ts +161 -0
  326. package/src/modules/staff/lib/support/portalRoute.ts +108 -0
  327. package/src/modules/staff/lib/support/portalStatus.ts +15 -0
  328. package/src/modules/staff/lib/support/portalTickets.ts +233 -0
  329. package/src/modules/staff/lib/support/routing.ts +117 -0
  330. package/src/modules/staff/lib/support/routingRuleDraft.ts +45 -0
  331. package/src/modules/staff/lib/support/seedDefaults.ts +151 -0
  332. package/src/modules/staff/lib/support/supportActivity.ts +39 -0
  333. package/src/modules/staff/lib/support-ui/PortalSupportNotLinked.tsx +20 -0
  334. package/src/modules/staff/lib/support-ui/portalAttachmentValidation.ts +125 -0
  335. package/src/modules/staff/lib/support-ui/portalPendingUploads.ts +49 -0
  336. package/src/modules/staff/lib/support-ui/portalSupport.ts +116 -0
  337. package/src/modules/staff/lib/time-tracking/access.ts +2 -62
  338. package/src/modules/staff/lib/time-tracking/listProjectAccess.ts +78 -0
  339. package/src/modules/staff/lib/time-tracking/portalRecipients.ts +173 -5
  340. package/src/modules/staff/lib/time-tracking/projectAssignment.ts +172 -0
  341. package/src/modules/staff/lib/time-tracking/settingKeys.ts +11 -0
  342. package/src/modules/staff/lib/time-tracking/settings.ts +46 -1
  343. package/src/modules/staff/lib/time-tracking/taskAssignmentRoute.ts +165 -0
  344. package/src/modules/staff/lib/time-tracking/workRecipients.ts +183 -0
  345. package/src/modules/staff/lib/time-tracking-ui/BoardFilterChips.tsx +36 -1
  346. package/src/modules/staff/lib/time-tracking-ui/KanbanBoard.tsx +30 -0
  347. package/src/modules/staff/lib/time-tracking-ui/KanbanCard.tsx +9 -0
  348. package/src/modules/staff/lib/time-tracking-ui/ProjectFormSections.tsx +185 -6
  349. package/src/modules/staff/lib/time-tracking-ui/SupportAttachmentsSection.tsx +188 -0
  350. package/src/modules/staff/lib/time-tracking-ui/SupportRequestPanel.tsx +102 -0
  351. package/src/modules/staff/lib/time-tracking-ui/TaskBoardScreen.tsx +2 -0
  352. package/src/modules/staff/lib/time-tracking-ui/TaskCommentThread.tsx +105 -22
  353. package/src/modules/staff/lib/time-tracking-ui/TaskDrawer.tsx +278 -43
  354. package/src/modules/staff/lib/time-tracking-ui/boardDirectory.ts +21 -0
  355. package/src/modules/staff/lib/time-tracking-ui/boardFilters.ts +16 -2
  356. package/src/modules/staff/lib/time-tracking-ui/kanbanBoardData.ts +4 -0
  357. package/src/modules/staff/lib/time-tracking-ui/projectDefaultAssignee.ts +117 -0
  358. package/src/modules/staff/lib/time-tracking-ui/settingsTabs.ts +17 -0
  359. package/src/modules/staff/lib/time-tracking-ui/supportTicketData.ts +71 -0
  360. package/src/modules/staff/lib/time-tracking-ui/taskDrawerData.ts +15 -0
  361. package/src/modules/staff/lib/time-tracking-ui/timeTrackingSettingsForm.ts +48 -1
  362. package/src/modules/staff/migrations/.snapshot-open-mercato.json +714 -0
  363. package/src/modules/staff/migrations/Migration20261009180543_staff.ts +50 -0
  364. package/src/modules/staff/notifications.ts +92 -0
  365. package/src/modules/staff/setup.ts +6 -2
  366. package/src/modules/staff/subscribers/support-portal-comment-created.ts +35 -0
  367. package/src/modules/staff/subscribers/support-portal-comment-deleted.ts +35 -0
  368. package/src/modules/staff/subscribers/support-portal-comment-updated.ts +35 -0
  369. package/src/modules/staff/subscribers/support-portal-status-column-updated.ts +36 -0
  370. package/src/modules/staff/subscribers/support-portal-task-status-changed.ts +34 -0
  371. package/src/modules/staff/subscribers/support-portal-task-updated.ts +34 -0
  372. package/src/modules/staff/subscribers/support-ticket-created-notification.ts +27 -0
  373. package/src/modules/staff/subscribers/support-ticket-customer-replied-notification.ts +27 -0
  374. package/src/modules/staff/subscribers/support-ticket-unnotified-clear.ts +29 -0
  375. package/src/modules/staff/subscribers/time-task-assignee-notification.ts +102 -0
  376. package/src/modules/staff/widgets/injection/portal-support-tickets/widget.client.tsx +151 -0
  377. package/src/modules/staff/widgets/injection/portal-support-tickets/widget.ts +16 -0
  378. package/src/modules/staff/widgets/injection/time-tracking-settings-support/widget.client.tsx +1058 -0
  379. package/src/modules/staff/widgets/injection/time-tracking-settings-support/widget.ts +17 -0
  380. package/src/modules/staff/widgets/injection-table.ts +15 -0
  381. package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +4 -20
  382. package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +4 -20
  383. package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +4 -19
  384. package/src/modules/wms/lib/inventoryCsvExport.ts +18 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/staff/data/entities.ts"],
4
- "sourcesContent": ["import { OptionalProps } from '@mikro-orm/core'\nimport { Entity, Enum, Index, ManyToOne, PrimaryKey, Property } from '@mikro-orm/decorators/legacy'\nimport type { TimeEntrySource } from '../lib/time-tracking/timeEntrySources'\nimport type { ReportGrouping } from '../lib/timesheets-reports/reportGroupings'\n\nexport type StaffLeaveRequestStatus = 'pending' | 'approved' | 'rejected'\n\n@Entity({ tableName: 'staff_teams' })\n@Index({ name: 'staff_teams_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeam {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_team_roles' })\n@Index({ name: 'staff_team_roles_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamRole {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'team_id', type: 'uuid', nullable: true })\n teamId?: string | null\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_team_members' })\n@Index({ name: 'staff_team_members_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamMember {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'team_id', type: 'uuid', nullable: true })\n teamId?: string | null\n\n @Property({ name: 'display_name', type: 'text' })\n displayName!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'user_id', type: 'uuid', nullable: true })\n userId?: string | null\n\n @Property({ name: 'role_ids', type: 'jsonb', default: [] })\n roleIds: string[] = []\n\n @Property({ type: 'jsonb', default: [] })\n tags: string[] = []\n\n @Property({ name: 'availability_rule_set_id', type: 'uuid', nullable: true })\n availabilityRuleSetId?: string | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_leave_requests' })\n@Index({ name: 'staff_leave_requests_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_leave_requests_member_idx', properties: ['member'] })\n@Index({ name: 'staff_leave_requests_status_idx', properties: ['status', 'tenantId', 'organizationId'] })\nexport class StaffLeaveRequest {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n\n @Property({ name: 'start_date', type: Date })\n startDate!: Date\n\n @Property({ name: 'end_date', type: Date })\n endDate!: Date\n\n @Property({ type: 'text' })\n timezone!: string\n\n @Enum({ items: ['pending', 'approved', 'rejected'], type: 'text', name: 'status' })\n status: StaffLeaveRequestStatus = 'pending'\n\n @Property({ name: 'unavailability_reason_entry_id', type: 'uuid', nullable: true })\n unavailabilityReasonEntryId?: string | null\n\n @Property({ name: 'unavailability_reason_value', type: 'text', nullable: true })\n unavailabilityReasonValue?: string | null\n\n @Property({ type: 'text', nullable: true })\n note?: string | null\n\n @Property({ name: 'decision_comment', type: 'text', nullable: true })\n decisionComment?: string | null\n\n @Property({ name: 'submitted_by_user_id', type: 'uuid', nullable: true })\n submittedByUserId?: string | null\n\n @Property({ name: 'decided_by_user_id', type: 'uuid', nullable: true })\n decidedByUserId?: string | null\n\n @Property({ name: 'decided_at', type: Date, nullable: true })\n decidedAt?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_team_member_comments' })\n@Index({ name: 'staff_team_member_comments_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_comments_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamMemberComment {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'body', type: 'text' })\n body!: string\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n@Entity({ tableName: 'staff_team_member_activities' })\n@Index({ name: 'staff_team_member_activities_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_activities_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_team_member_activities_member_occurred_created_idx', properties: ['member', 'occurredAt', 'createdAt'] })\nexport class StaffTeamMemberActivity {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'activity_type', type: 'text' })\n activityType!: string\n\n @Property({ name: 'subject', type: 'text', nullable: true })\n subject?: string | null\n\n @Property({ name: 'body', type: 'text', nullable: true })\n body?: string | null\n\n @Property({ name: 'occurred_at', type: Date, nullable: true })\n occurredAt?: Date | null\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n@Entity({ tableName: 'staff_team_member_job_histories' })\n@Index({ name: 'staff_team_member_job_histories_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_job_histories_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_team_member_job_histories_member_start_idx', properties: ['member', 'startDate'] })\nexport class StaffTeamMemberJobHistory {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'company_name', type: 'text', nullable: true })\n companyName?: string | null\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'start_date', type: Date })\n startDate!: Date\n\n @Property({ name: 'end_date', type: Date, nullable: true })\n endDate?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n@Entity({ tableName: 'staff_team_member_addresses' })\n@Index({ name: 'staff_team_member_addresses_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_addresses_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamMemberAddress {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'name', type: 'text', nullable: true })\n name?: string | null\n\n @Property({ name: 'purpose', type: 'text', nullable: true })\n purpose?: string | null\n\n @Property({ name: 'company_name', type: 'text', nullable: true })\n companyName?: string | null\n\n @Property({ name: 'address_line1', type: 'text' })\n addressLine1!: string\n\n @Property({ name: 'address_line2', type: 'text', nullable: true })\n addressLine2?: string | null\n\n @Property({ name: 'city', type: 'text', nullable: true })\n city?: string | null\n\n @Property({ name: 'region', type: 'text', nullable: true })\n region?: string | null\n\n @Property({ name: 'postal_code', type: 'text', nullable: true })\n postalCode?: string | null\n\n @Property({ name: 'country', type: 'text', nullable: true })\n country?: string | null\n\n @Property({ name: 'building_number', type: 'text', nullable: true })\n buildingNumber?: string | null\n\n @Property({ name: 'flat_number', type: 'text', nullable: true })\n flatNumber?: string | null\n\n @Property({ name: 'latitude', type: 'float', nullable: true })\n latitude?: number | null\n\n @Property({ name: 'longitude', type: 'float', nullable: true })\n longitude?: number | null\n\n @Property({ name: 'is_primary', type: 'boolean', default: false })\n isPrimary: boolean = false\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n// --- Timesheets entities (Phase 1) ---\n\n/**\n * EP-37: the accepted values are the time-entry source registry, not a database\n * enum, so an import integration can ship its own source. Re-exported from the\n * registry so the entity and the registry cannot drift.\n */\nexport type StaffTimeEntrySource = TimeEntrySource\nexport type StaffTimeProjectStatus = 'active' | 'on_hold' | 'completed'\nexport type StaffTimeProjectMemberStatus = 'active' | 'inactive'\nexport type StaffTimeEntrySegmentType = 'work' | 'break'\nexport type StaffTimeProjectBudgetKind = 'none' | 'hours' | 'amount'\nexport type StaffTimeReportPeriodKind = 'week' | 'month' | 'year' | 'custom'\n/** EP-36: the accepted values are the report grouping registry, not a DB enum. */\nexport type StaffTimeReportGrouping = ReportGrouping\nexport type StaffTimeReportNonBillableMode = 'separate' | 'exclude'\nexport type StaffTimeReportStatus = 'draft' | 'closed'\nexport type StaffTimeReportEventType = 'closed' | 'unlocked' | 'exported'\n\n@Entity({ tableName: 'staff_time_entries' })\n@Index({ name: 'staff_time_entries_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_entries_member_date_idx', properties: ['organizationId', 'staffMemberId', 'date'] })\n@Index({ name: 'staff_time_entries_project_date_idx', properties: ['organizationId', 'timeProjectId', 'date'] })\n@Index({ name: 'staff_time_entries_task_idx', properties: ['organizationId', 'taskId'] })\n@Index({ name: 'staff_time_entries_member_overlap_idx', properties: ['organizationId', 'staffMemberId', 'date', 'startedAt'] })\n@Index({ name: 'staff_time_entries_locked_report_idx', properties: ['organizationId', 'lockedReportId'] })\nexport class StaffTimeEntry {\n [OptionalProps]?: 'durationMinutes' | 'isBillable' | 'source' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'staff_member_id', type: 'uuid' })\n staffMemberId!: string\n\n @Property({ name: 'date', type: 'date' })\n date!: Date\n\n @Property({ name: 'duration_minutes', type: 'integer', default: 0 })\n durationMinutes: number = 0\n\n @Property({ name: 'started_at', type: Date, nullable: true })\n startedAt?: Date | null\n\n @Property({ name: 'ended_at', type: Date, nullable: true })\n endedAt?: Date | null\n\n @Property({ type: 'text', nullable: true })\n notes?: string | null\n\n @Property({ name: 'time_project_id', type: 'uuid', nullable: true })\n timeProjectId?: string | null\n\n @Property({ name: 'task_id', type: 'uuid', nullable: true })\n taskId?: string | null\n\n @Property({ name: 'customer_id', type: 'uuid', nullable: true })\n customerId?: string | null\n\n @Property({ name: 'deal_id', type: 'uuid', nullable: true })\n dealId?: string | null\n\n @Property({ name: 'order_id', type: 'uuid', nullable: true })\n orderId?: string | null\n\n @Property({ name: 'is_billable', type: 'boolean', default: true })\n isBillable: boolean = true\n\n @Property({ name: 'rounded_minutes', type: 'integer', nullable: true })\n roundedMinutes?: number | null\n\n @Property({ name: 'rate_override_amount', type: 'numeric', precision: 14, scale: 4, nullable: true })\n rateOverrideAmount?: string | null\n\n @Property({ name: 'rate_currency_code', type: 'text', nullable: true })\n rateCurrencyCode?: string | null\n\n @Property({ name: 'locked_report_id', type: 'uuid', nullable: true })\n lockedReportId?: string | null\n\n @Property({ name: 'locked_at', type: Date, nullable: true })\n lockedAt?: Date | null\n\n @Property({ name: 'source', type: 'text', default: 'manual' })\n source: StaffTimeEntrySource = 'manual'\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_entry_segments' })\n@Index({ name: 'staff_time_entry_segments_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_entry_segments_entry_idx', properties: ['timeEntryId'] })\nexport class StaffTimeEntrySegment {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_entry_id', type: 'uuid' })\n timeEntryId!: string\n\n @Property({ name: 'started_at', type: Date })\n startedAt!: Date\n\n @Property({ name: 'ended_at', type: Date, nullable: true })\n endedAt?: Date | null\n\n @Enum({ items: ['work', 'break'], type: 'text', name: 'segment_type', default: 'work' })\n segmentType: StaffTimeEntrySegmentType = 'work'\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_projects' })\n@Index({ name: 'staff_time_projects_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_projects_code_unique_idx', properties: ['organizationId', 'tenantId', 'code'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeProject {\n [OptionalProps]?: 'status' | 'billableByDefault' | 'budgetKind' | 'budgetWarnAtPercent' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'customer_id', type: 'uuid', nullable: true })\n customerId?: string | null\n\n @Property({ name: 'customer_snapshot', type: 'jsonb', nullable: true })\n customerSnapshot?: Record<string, unknown> | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'project_type', type: 'text', nullable: true })\n projectType?: string | null\n\n @Property({ type: 'varchar', length: 20, nullable: true })\n color?: string | null\n\n @Enum({ items: ['active', 'on_hold', 'completed'], type: 'text', name: 'status', default: 'active' })\n status: StaffTimeProjectStatus = 'active'\n\n @Property({ name: 'owner_user_id', type: 'uuid', nullable: true })\n ownerUserId?: string | null\n\n @Property({ name: 'cost_center', type: 'text', nullable: true })\n costCenter?: string | null\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'hourly_rate', type: 'numeric', precision: 14, scale: 4, nullable: true })\n hourlyRate?: string | null\n\n @Property({ name: 'currency_code', type: 'text', nullable: true })\n currencyCode?: string | null\n\n @Property({ name: 'billable_by_default', type: 'boolean', default: true })\n billableByDefault: boolean = true\n\n @Enum({ items: ['none', 'hours', 'amount'], type: 'text', name: 'budget_kind', default: 'none' })\n budgetKind: StaffTimeProjectBudgetKind = 'none'\n\n @Property({ name: 'budget_value', type: 'numeric', precision: 14, scale: 4, nullable: true })\n budgetValue?: string | null\n\n @Property({ name: 'budget_warn_at_percent', type: 'integer', default: 80 })\n budgetWarnAtPercent: number = 80\n\n @Property({ name: 'budget_alerted_at_percent', type: 'integer', nullable: true })\n budgetAlertedAtPercent?: number | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_project_members' })\n@Index({ name: 'staff_time_project_members_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_project_members_project_idx', properties: ['organizationId', 'timeProjectId'] })\n@Index({ name: 'staff_time_project_members_member_idx', properties: ['organizationId', 'staffMemberId'] })\n@Index({ name: 'staff_time_project_members_unique_idx', properties: ['organizationId', 'tenantId', 'timeProjectId', 'staffMemberId'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeProjectMember {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ name: 'staff_member_id', type: 'uuid' })\n staffMemberId!: string\n\n @Property({ type: 'text', nullable: true })\n role?: string | null\n\n @Enum({ items: ['active', 'inactive'], type: 'text', name: 'status', default: 'active' })\n status: StaffTimeProjectMemberStatus = 'active'\n\n @Property({ name: 'show_in_grid', type: 'boolean', default: false })\n showInGrid: boolean = false\n\n @Property({ name: 'assigned_start_date', type: 'date' })\n assignedStartDate!: Date\n\n @Property({ name: 'assigned_end_date', type: 'date', nullable: true })\n assignedEndDate?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// --- Time tracking consulting suite entities ---\n\n@Entity({ tableName: 'staff_time_task_statuses' })\n@Index({ name: 'staff_time_task_statuses_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_task_statuses_project_idx', properties: ['organizationId', 'timeProjectId', 'position'] })\n@Index({ name: 'staff_time_task_statuses_slug_unique_idx', properties: ['organizationId', 'tenantId', 'timeProjectId', 'slug'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeTaskStatus {\n [OptionalProps]?: 'position' | 'isDefault' | 'isDone' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text' })\n slug!: string\n\n @Property({ type: 'text', nullable: true })\n color?: string | null\n\n @Property({ type: 'integer', default: 0 })\n position: number = 0\n\n @Property({ name: 'is_default', type: 'boolean', default: false })\n isDefault: boolean = false\n\n @Property({ name: 'is_done', type: 'boolean', default: false })\n isDone: boolean = false\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_tasks' })\n@Index({ name: 'staff_time_tasks_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_tasks_board_idx', properties: ['organizationId', 'timeProjectId', 'taskStatusId', 'position'] })\n@Index({ name: 'staff_time_tasks_parent_idx', properties: ['organizationId', 'parentTaskId'] })\n@Index({ name: 'staff_time_tasks_assignee_idx', properties: ['organizationId', 'assigneeStaffMemberId'] })\n@Index({ name: 'staff_time_tasks_sequence_unique_idx', properties: ['organizationId', 'tenantId', 'timeProjectId', 'sequenceNumber'], options: { unique: true, where: 'deleted_at IS NULL' } })\n@Index({ name: 'staff_time_tasks_reference_unique_idx', properties: ['organizationId', 'tenantId', 'reference'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeTask {\n [OptionalProps]?: 'sequenceNumber' | 'position' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ name: 'parent_task_id', type: 'uuid', nullable: true })\n parentTaskId?: string | null\n\n @Property({ name: 'task_status_id', type: 'uuid' })\n taskStatusId!: string\n\n @Property({ name: 'sequence_number', type: 'integer', default: 0 })\n sequenceNumber: number = 0\n\n @Property({ type: 'text' })\n reference!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'assignee_staff_member_id', type: 'uuid', nullable: true })\n assigneeStaffMemberId?: string | null\n\n @Property({ type: 'integer', default: 0 })\n position: number = 0\n\n @Property({ name: 'created_by_user_id', type: 'uuid', nullable: true })\n createdByUserId?: string | null\n\n @Property({ name: 'closed_at', type: Date, nullable: true })\n closedAt?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_task_comments' })\n@Index({ name: 'staff_time_task_comments_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_task_comments_task_idx', properties: ['organizationId', 'taskId', 'createdAt'] })\nexport class StaffTimeTaskComment {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'task_id', type: 'uuid' })\n taskId!: string\n\n @Property({ type: 'text' })\n body!: string\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_tags' })\n@Index({ name: 'staff_time_tags_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_tags_slug_unique_idx', properties: ['organizationId', 'tenantId', 'slug'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeTag {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n slug!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ type: 'text', nullable: true })\n color?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_task_tags' })\n@Index({ name: 'staff_time_task_tags_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_task_tags_task_idx', properties: ['organizationId', 'taskId'] })\n@Index({ name: 'staff_time_task_tags_unique_idx', properties: ['tagId', 'taskId'], options: { unique: true } })\nexport class StaffTimeTaskTag {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tag_id', type: 'uuid' })\n tagId!: string\n\n @Property({ name: 'task_id', type: 'uuid' })\n taskId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_entry_tags' })\n@Index({ name: 'staff_time_entry_tags_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_entry_tags_entry_idx', properties: ['organizationId', 'timeEntryId'] })\n@Index({ name: 'staff_time_entry_tags_unique_idx', properties: ['tagId', 'timeEntryId'], options: { unique: true } })\nexport class StaffTimeEntryTag {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tag_id', type: 'uuid' })\n tagId!: string\n\n @Property({ name: 'time_entry_id', type: 'uuid' })\n timeEntryId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_reports' })\n@Index({ name: 'staff_time_reports_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_reports_customer_idx', properties: ['organizationId', 'customerId'] })\n@Index({ name: 'staff_time_reports_status_idx', properties: ['organizationId', 'status', 'periodFrom'] })\n@Index({ name: 'staff_time_reports_reference_unique_idx', properties: ['organizationId', 'tenantId', 'reference'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeReport {\n [OptionalProps]?: 'periodKind' | 'grouping' | 'nonbillableMode' | 'includeAlreadyReported' | 'showRates' | 'roundingUnitMinutes' | 'roundingDirection' | 'status' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'customer_snapshot', type: 'jsonb', nullable: true })\n customerSnapshot?: Record<string, unknown> | null\n\n @Property({ type: 'text' })\n reference!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Enum({ items: ['week', 'month', 'year', 'custom'], type: 'text', name: 'period_kind', default: 'month' })\n periodKind: StaffTimeReportPeriodKind = 'month'\n\n @Property({ name: 'period_from', type: 'date' })\n periodFrom!: Date\n\n @Property({ name: 'period_to', type: 'date' })\n periodTo!: Date\n\n @Property({ name: 'currency_code', type: 'text' })\n currencyCode!: string\n\n @Property({ name: 'grouping', type: 'text', default: 'project_task' })\n grouping: StaffTimeReportGrouping = 'project_task'\n\n @Enum({ items: ['separate', 'exclude'], type: 'text', name: 'nonbillable_mode', default: 'separate' })\n nonbillableMode: StaffTimeReportNonBillableMode = 'separate'\n\n @Property({ name: 'include_already_reported', type: 'boolean', default: false })\n includeAlreadyReported: boolean = false\n\n @Property({ name: 'show_rates', type: 'boolean', default: true })\n showRates: boolean = true\n\n @Property({ name: 'rounding_unit_minutes', type: 'integer', default: 0 })\n roundingUnitMinutes: number = 0\n\n @Property({ name: 'rounding_direction', type: 'text', default: 'up' })\n roundingDirection: string = 'up'\n\n @Enum({ items: ['draft', 'closed'], type: 'text', name: 'status', default: 'draft' })\n status: StaffTimeReportStatus = 'draft'\n\n @Property({ name: 'total_billable_minutes', type: 'integer', nullable: true })\n totalBillableMinutes?: number | null\n\n @Property({ name: 'total_nonbillable_minutes', type: 'integer', nullable: true })\n totalNonbillableMinutes?: number | null\n\n @Property({ name: 'total_amount', type: 'numeric', precision: 14, scale: 2, nullable: true })\n totalAmount?: string | null\n\n @Property({ name: 'closed_at', type: Date, nullable: true })\n closedAt?: Date | null\n\n @Property({ name: 'closed_by_user_id', type: 'uuid', nullable: true })\n closedByUserId?: string | null\n\n @Property({ name: 'created_by_user_id', type: 'uuid', nullable: true })\n createdByUserId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_report_projects' })\n@Index({ name: 'staff_time_report_projects_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_report_projects_project_idx', properties: ['organizationId', 'timeProjectId'] })\n@Index({ name: 'staff_time_report_projects_unique_idx', properties: ['reportId', 'timeProjectId'], options: { unique: true } })\nexport class StaffTimeReportProject {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'report_id', type: 'uuid' })\n reportId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_report_entries' })\n@Index({ name: 'staff_time_report_entries_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_report_entries_entry_idx', properties: ['organizationId', 'timeEntryId'] })\n@Index({ name: 'staff_time_report_entries_unique_idx', properties: ['reportId', 'timeEntryId'], options: { unique: true } })\nexport class StaffTimeReportEntry {\n [OptionalProps]?: 'frozenRawMinutes' | 'frozenRoundedMinutes' | 'frozenIsBillable' | 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'report_id', type: 'uuid' })\n reportId!: string\n\n @Property({ name: 'time_entry_id', type: 'uuid' })\n timeEntryId!: string\n\n @Property({ name: 'frozen_raw_minutes', type: 'integer', default: 0 })\n frozenRawMinutes: number = 0\n\n @Property({ name: 'frozen_rounded_minutes', type: 'integer', default: 0 })\n frozenRoundedMinutes: number = 0\n\n @Property({ name: 'frozen_rate_amount', type: 'numeric', precision: 14, scale: 4, nullable: true })\n frozenRateAmount?: string | null\n\n @Property({ name: 'frozen_currency_code', type: 'text' })\n frozenCurrencyCode!: string\n\n @Property({ name: 'frozen_amount', type: 'numeric', precision: 14, scale: 2, nullable: true })\n frozenAmount?: string | null\n\n @Property({ name: 'frozen_is_billable', type: 'boolean', default: true })\n frozenIsBillable: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_report_events' })\n@Index({ name: 'staff_time_report_events_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_report_events_report_idx', properties: ['organizationId', 'reportId', 'createdAt'] })\nexport class StaffTimeReportEvent {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'report_id', type: 'uuid' })\n reportId!: string\n\n @Enum({ items: ['closed', 'unlocked', 'exported'], type: 'text', name: 'event_type' })\n eventType!: StaffTimeReportEventType\n\n @Property({ type: 'text', nullable: true })\n reason?: string | null\n\n @Property({ name: 'actor_user_id', type: 'uuid', nullable: true })\n actorUserId?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { OptionalProps } from '@mikro-orm/core'\nimport { Entity, Enum, Index, ManyToOne, PrimaryKey, Property } from '@mikro-orm/decorators/legacy'\nimport type { TimeEntrySource } from '../lib/time-tracking/timeEntrySources'\nimport type { ReportGrouping } from '../lib/timesheets-reports/reportGroupings'\n\nexport type StaffLeaveRequestStatus = 'pending' | 'approved' | 'rejected'\n\n@Entity({ tableName: 'staff_teams' })\n@Index({ name: 'staff_teams_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeam {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_team_roles' })\n@Index({ name: 'staff_team_roles_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamRole {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'team_id', type: 'uuid', nullable: true })\n teamId?: string | null\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_team_members' })\n@Index({ name: 'staff_team_members_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamMember {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'team_id', type: 'uuid', nullable: true })\n teamId?: string | null\n\n @Property({ name: 'display_name', type: 'text' })\n displayName!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'user_id', type: 'uuid', nullable: true })\n userId?: string | null\n\n @Property({ name: 'role_ids', type: 'jsonb', default: [] })\n roleIds: string[] = []\n\n @Property({ type: 'jsonb', default: [] })\n tags: string[] = []\n\n @Property({ name: 'availability_rule_set_id', type: 'uuid', nullable: true })\n availabilityRuleSetId?: string | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_leave_requests' })\n@Index({ name: 'staff_leave_requests_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_leave_requests_member_idx', properties: ['member'] })\n@Index({ name: 'staff_leave_requests_status_idx', properties: ['status', 'tenantId', 'organizationId'] })\nexport class StaffLeaveRequest {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n\n @Property({ name: 'start_date', type: Date })\n startDate!: Date\n\n @Property({ name: 'end_date', type: Date })\n endDate!: Date\n\n @Property({ type: 'text' })\n timezone!: string\n\n @Enum({ items: ['pending', 'approved', 'rejected'], type: 'text', name: 'status' })\n status: StaffLeaveRequestStatus = 'pending'\n\n @Property({ name: 'unavailability_reason_entry_id', type: 'uuid', nullable: true })\n unavailabilityReasonEntryId?: string | null\n\n @Property({ name: 'unavailability_reason_value', type: 'text', nullable: true })\n unavailabilityReasonValue?: string | null\n\n @Property({ type: 'text', nullable: true })\n note?: string | null\n\n @Property({ name: 'decision_comment', type: 'text', nullable: true })\n decisionComment?: string | null\n\n @Property({ name: 'submitted_by_user_id', type: 'uuid', nullable: true })\n submittedByUserId?: string | null\n\n @Property({ name: 'decided_by_user_id', type: 'uuid', nullable: true })\n decidedByUserId?: string | null\n\n @Property({ name: 'decided_at', type: Date, nullable: true })\n decidedAt?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_team_member_comments' })\n@Index({ name: 'staff_team_member_comments_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_comments_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamMemberComment {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'body', type: 'text' })\n body!: string\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n@Entity({ tableName: 'staff_team_member_activities' })\n@Index({ name: 'staff_team_member_activities_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_activities_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_team_member_activities_member_occurred_created_idx', properties: ['member', 'occurredAt', 'createdAt'] })\nexport class StaffTeamMemberActivity {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'activity_type', type: 'text' })\n activityType!: string\n\n @Property({ name: 'subject', type: 'text', nullable: true })\n subject?: string | null\n\n @Property({ name: 'body', type: 'text', nullable: true })\n body?: string | null\n\n @Property({ name: 'occurred_at', type: Date, nullable: true })\n occurredAt?: Date | null\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ name: 'appearance_icon', type: 'text', nullable: true })\n appearanceIcon?: string | null\n\n @Property({ name: 'appearance_color', type: 'text', nullable: true })\n appearanceColor?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n@Entity({ tableName: 'staff_team_member_job_histories' })\n@Index({ name: 'staff_team_member_job_histories_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_job_histories_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_team_member_job_histories_member_start_idx', properties: ['member', 'startDate'] })\nexport class StaffTeamMemberJobHistory {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'company_name', type: 'text', nullable: true })\n companyName?: string | null\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'start_date', type: Date })\n startDate!: Date\n\n @Property({ name: 'end_date', type: Date, nullable: true })\n endDate?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n@Entity({ tableName: 'staff_team_member_addresses' })\n@Index({ name: 'staff_team_member_addresses_member_idx', properties: ['member'] })\n@Index({ name: 'staff_team_member_addresses_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\nexport class StaffTeamMemberAddress {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'name', type: 'text', nullable: true })\n name?: string | null\n\n @Property({ name: 'purpose', type: 'text', nullable: true })\n purpose?: string | null\n\n @Property({ name: 'company_name', type: 'text', nullable: true })\n companyName?: string | null\n\n @Property({ name: 'address_line1', type: 'text' })\n addressLine1!: string\n\n @Property({ name: 'address_line2', type: 'text', nullable: true })\n addressLine2?: string | null\n\n @Property({ name: 'city', type: 'text', nullable: true })\n city?: string | null\n\n @Property({ name: 'region', type: 'text', nullable: true })\n region?: string | null\n\n @Property({ name: 'postal_code', type: 'text', nullable: true })\n postalCode?: string | null\n\n @Property({ name: 'country', type: 'text', nullable: true })\n country?: string | null\n\n @Property({ name: 'building_number', type: 'text', nullable: true })\n buildingNumber?: string | null\n\n @Property({ name: 'flat_number', type: 'text', nullable: true })\n flatNumber?: string | null\n\n @Property({ name: 'latitude', type: 'float', nullable: true })\n latitude?: number | null\n\n @Property({ name: 'longitude', type: 'float', nullable: true })\n longitude?: number | null\n\n @Property({ name: 'is_primary', type: 'boolean', default: false })\n isPrimary: boolean = false\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @ManyToOne(() => StaffTeamMember, { fieldName: 'member_id' })\n member!: StaffTeamMember\n}\n\n// --- Timesheets entities (Phase 1) ---\n\n/**\n * EP-37: the accepted values are the time-entry source registry, not a database\n * enum, so an import integration can ship its own source. Re-exported from the\n * registry so the entity and the registry cannot drift.\n */\nexport type StaffTimeEntrySource = TimeEntrySource\nexport type StaffTimeProjectStatus = 'active' | 'on_hold' | 'completed'\nexport type StaffTimeProjectMemberStatus = 'active' | 'inactive'\nexport type StaffTimeTaskSource = 'internal' | 'portal'\nexport type StaffTimeTaskCommentVisibility = 'internal' | 'customer'\nexport type StaffTimeTaskCommentAuthorKind = 'staff' | 'customer'\nexport type StaffSupportRoutedVia = 'category' | 'fallback'\nexport type StaffSupportPortalStatus = 'received' | 'in_progress' | 'resolved'\nexport type StaffTimeEntrySegmentType = 'work' | 'break'\nexport type StaffTimeProjectBudgetKind = 'none' | 'hours' | 'amount'\nexport type StaffTimeReportPeriodKind = 'week' | 'month' | 'year' | 'custom'\n/** EP-36: the accepted values are the report grouping registry, not a DB enum. */\nexport type StaffTimeReportGrouping = ReportGrouping\nexport type StaffTimeReportNonBillableMode = 'separate' | 'exclude'\nexport type StaffTimeReportStatus = 'draft' | 'closed'\nexport type StaffTimeReportEventType = 'closed' | 'unlocked' | 'exported'\n\n@Entity({ tableName: 'staff_time_entries' })\n@Index({ name: 'staff_time_entries_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_entries_member_date_idx', properties: ['organizationId', 'staffMemberId', 'date'] })\n@Index({ name: 'staff_time_entries_project_date_idx', properties: ['organizationId', 'timeProjectId', 'date'] })\n@Index({ name: 'staff_time_entries_task_idx', properties: ['organizationId', 'taskId'] })\n@Index({ name: 'staff_time_entries_member_overlap_idx', properties: ['organizationId', 'staffMemberId', 'date', 'startedAt'] })\n@Index({ name: 'staff_time_entries_locked_report_idx', properties: ['organizationId', 'lockedReportId'] })\nexport class StaffTimeEntry {\n [OptionalProps]?: 'durationMinutes' | 'isBillable' | 'source' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'staff_member_id', type: 'uuid' })\n staffMemberId!: string\n\n @Property({ name: 'date', type: 'date' })\n date!: Date\n\n @Property({ name: 'duration_minutes', type: 'integer', default: 0 })\n durationMinutes: number = 0\n\n @Property({ name: 'started_at', type: Date, nullable: true })\n startedAt?: Date | null\n\n @Property({ name: 'ended_at', type: Date, nullable: true })\n endedAt?: Date | null\n\n @Property({ type: 'text', nullable: true })\n notes?: string | null\n\n @Property({ name: 'time_project_id', type: 'uuid', nullable: true })\n timeProjectId?: string | null\n\n @Property({ name: 'task_id', type: 'uuid', nullable: true })\n taskId?: string | null\n\n @Property({ name: 'customer_id', type: 'uuid', nullable: true })\n customerId?: string | null\n\n @Property({ name: 'deal_id', type: 'uuid', nullable: true })\n dealId?: string | null\n\n @Property({ name: 'order_id', type: 'uuid', nullable: true })\n orderId?: string | null\n\n @Property({ name: 'is_billable', type: 'boolean', default: true })\n isBillable: boolean = true\n\n @Property({ name: 'rounded_minutes', type: 'integer', nullable: true })\n roundedMinutes?: number | null\n\n @Property({ name: 'rate_override_amount', type: 'numeric', precision: 14, scale: 4, nullable: true })\n rateOverrideAmount?: string | null\n\n @Property({ name: 'rate_currency_code', type: 'text', nullable: true })\n rateCurrencyCode?: string | null\n\n @Property({ name: 'locked_report_id', type: 'uuid', nullable: true })\n lockedReportId?: string | null\n\n @Property({ name: 'locked_at', type: Date, nullable: true })\n lockedAt?: Date | null\n\n @Property({ name: 'source', type: 'text', default: 'manual' })\n source: StaffTimeEntrySource = 'manual'\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_entry_segments' })\n@Index({ name: 'staff_time_entry_segments_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_entry_segments_entry_idx', properties: ['timeEntryId'] })\nexport class StaffTimeEntrySegment {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_entry_id', type: 'uuid' })\n timeEntryId!: string\n\n @Property({ name: 'started_at', type: Date })\n startedAt!: Date\n\n @Property({ name: 'ended_at', type: Date, nullable: true })\n endedAt?: Date | null\n\n @Enum({ items: ['work', 'break'], type: 'text', name: 'segment_type', default: 'work' })\n segmentType: StaffTimeEntrySegmentType = 'work'\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_projects' })\n@Index({ name: 'staff_time_projects_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_projects_code_unique_idx', properties: ['organizationId', 'tenantId', 'code'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeProject {\n [OptionalProps]?: 'status' | 'billableByDefault' | 'budgetKind' | 'budgetWarnAtPercent' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'customer_id', type: 'uuid', nullable: true })\n customerId?: string | null\n\n @Property({ name: 'customer_snapshot', type: 'jsonb', nullable: true })\n customerSnapshot?: Record<string, unknown> | null\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'project_type', type: 'text', nullable: true })\n projectType?: string | null\n\n @Property({ type: 'varchar', length: 20, nullable: true })\n color?: string | null\n\n @Enum({ items: ['active', 'on_hold', 'completed'], type: 'text', name: 'status', default: 'active' })\n status: StaffTimeProjectStatus = 'active'\n\n @Property({ name: 'owner_user_id', type: 'uuid', nullable: true })\n ownerUserId?: string | null\n\n @Property({ name: 'cost_center', type: 'text', nullable: true })\n costCenter?: string | null\n\n @Property({ name: 'start_date', type: 'date', nullable: true })\n startDate?: Date | null\n\n @Property({ name: 'hourly_rate', type: 'numeric', precision: 14, scale: 4, nullable: true })\n hourlyRate?: string | null\n\n @Property({ name: 'currency_code', type: 'text', nullable: true })\n currencyCode?: string | null\n\n @Property({ name: 'billable_by_default', type: 'boolean', default: true })\n billableByDefault: boolean = true\n\n @Enum({ items: ['none', 'hours', 'amount'], type: 'text', name: 'budget_kind', default: 'none' })\n budgetKind: StaffTimeProjectBudgetKind = 'none'\n\n @Property({ name: 'budget_value', type: 'numeric', precision: 14, scale: 4, nullable: true })\n budgetValue?: string | null\n\n @Property({ name: 'budget_warn_at_percent', type: 'integer', default: 80 })\n budgetWarnAtPercent: number = 80\n\n @Property({ name: 'budget_alerted_at_percent', type: 'integer', nullable: true })\n budgetAlertedAtPercent?: number | null\n\n @Property({ name: 'default_assignee_staff_member_id', type: 'uuid', nullable: true })\n defaultAssigneeStaffMemberId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_project_members' })\n@Index({ name: 'staff_time_project_members_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_project_members_project_idx', properties: ['organizationId', 'timeProjectId'] })\n@Index({ name: 'staff_time_project_members_member_idx', properties: ['organizationId', 'staffMemberId'] })\n@Index({ name: 'staff_time_project_members_unique_idx', properties: ['organizationId', 'tenantId', 'timeProjectId', 'staffMemberId'], options: { unique: true, where: 'deleted_at IS NULL' } })\n@Index({ name: 'staff_time_project_members_assigner_idx', properties: ['tenantId', 'organizationId', 'timeProjectId'], options: { where: \"is_assigner = true AND status = 'active' AND deleted_at IS NULL\" } })\nexport class StaffTimeProjectMember {\n [OptionalProps]?: 'status' | 'showInGrid' | 'isAssigner' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ name: 'staff_member_id', type: 'uuid' })\n staffMemberId!: string\n\n @Property({ type: 'text', nullable: true })\n role?: string | null\n\n @Enum({ items: ['active', 'inactive'], type: 'text', name: 'status', default: 'active' })\n status: StaffTimeProjectMemberStatus = 'active'\n\n @Property({ name: 'show_in_grid', type: 'boolean', default: false })\n showInGrid: boolean = false\n\n @Property({ name: 'is_assigner', type: 'boolean', default: false })\n isAssigner: boolean = false\n\n @Property({ name: 'assigned_start_date', type: 'date' })\n assignedStartDate!: Date\n\n @Property({ name: 'assigned_end_date', type: 'date', nullable: true })\n assignedEndDate?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n// --- Time tracking consulting suite entities ---\n\n@Entity({ tableName: 'staff_time_task_statuses' })\n@Index({ name: 'staff_time_task_statuses_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_task_statuses_project_idx', properties: ['organizationId', 'timeProjectId', 'position'] })\n@Index({ name: 'staff_time_task_statuses_slug_unique_idx', properties: ['organizationId', 'tenantId', 'timeProjectId', 'slug'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeTaskStatus {\n [OptionalProps]?: 'position' | 'isDefault' | 'isDone' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text' })\n slug!: string\n\n @Property({ type: 'text', nullable: true })\n color?: string | null\n\n @Property({ type: 'integer', default: 0 })\n position: number = 0\n\n @Property({ name: 'is_default', type: 'boolean', default: false })\n isDefault: boolean = false\n\n @Property({ name: 'is_done', type: 'boolean', default: false })\n isDone: boolean = false\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_tasks' })\n@Index({ name: 'staff_time_tasks_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_tasks_board_idx', properties: ['organizationId', 'timeProjectId', 'taskStatusId', 'position'] })\n@Index({ name: 'staff_time_tasks_parent_idx', properties: ['organizationId', 'parentTaskId'] })\n@Index({ name: 'staff_time_tasks_assignee_idx', properties: ['organizationId', 'assigneeStaffMemberId'] })\n@Index({ name: 'staff_time_tasks_sequence_unique_idx', properties: ['organizationId', 'tenantId', 'timeProjectId', 'sequenceNumber'], options: { unique: true, where: 'deleted_at IS NULL' } })\n@Index({ name: 'staff_time_tasks_reference_unique_idx', properties: ['organizationId', 'tenantId', 'reference'], options: { unique: true, where: 'deleted_at IS NULL' } })\n@Index({ name: 'staff_time_tasks_portal_customer_idx', properties: ['tenantId', 'organizationId', 'customerId', 'updatedAt'], options: { where: \"source = 'portal' AND deleted_at IS NULL\" } })\nexport class StaffTimeTask {\n [OptionalProps]?: 'sequenceNumber' | 'position' | 'source' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ name: 'parent_task_id', type: 'uuid', nullable: true })\n parentTaskId?: string | null\n\n @Property({ name: 'task_status_id', type: 'uuid' })\n taskStatusId!: string\n\n @Property({ name: 'sequence_number', type: 'integer', default: 0 })\n sequenceNumber: number = 0\n\n @Property({ type: 'text' })\n reference!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'assignee_staff_member_id', type: 'uuid', nullable: true })\n assigneeStaffMemberId?: string | null\n\n @Property({ type: 'integer', default: 0 })\n position: number = 0\n\n @Property({ name: 'created_by_user_id', type: 'uuid', nullable: true })\n createdByUserId?: string | null\n\n @Property({ name: 'closed_at', type: Date, nullable: true })\n closedAt?: Date | null\n\n @Property({ type: 'text', default: 'internal' })\n source: StaffTimeTaskSource = 'internal'\n\n @Property({ name: 'customer_id', type: 'uuid', nullable: true })\n customerId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_support_tickets' })\n@Index({ name: 'staff_support_tickets_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_support_tickets_task_unique_idx', properties: ['tenantId', 'organizationId', 'taskId'], options: { unique: true, where: 'deleted_at IS NULL' } })\n@Index({ name: 'staff_support_tickets_reference_unique_idx', properties: ['tenantId', 'organizationId', 'supportReference'], options: { unique: true, where: 'deleted_at IS NULL' } })\n@Index({ name: 'staff_support_tickets_sequence_idx', properties: ['tenantId', 'organizationId', 'supportSequenceNumber'] })\nexport class StaffSupportTicket {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'task_id', type: 'uuid' })\n taskId!: string\n\n @Property({ name: 'customer_snapshot', type: 'jsonb', nullable: true })\n customerSnapshot?: Record<string, unknown> | null\n\n @Property({ name: 'reported_by_customer_user_id', type: 'uuid', nullable: true })\n reportedByCustomerUserId?: string | null\n\n @Property({ name: 'support_reference', type: 'text' })\n supportReference!: string\n\n @Property({ name: 'support_sequence_number', type: 'integer' })\n supportSequenceNumber!: number\n\n @Property({ name: 'category_value', type: 'text' })\n categoryValue!: string\n\n @Property({ name: 'category_snapshot', type: 'jsonb' })\n categorySnapshot!: { value: string; label: string }\n\n @Property({ name: 'routed_via', type: 'text' })\n routedVia!: StaffSupportRoutedVia\n\n @Property({ name: 'customer_request_snapshot', type: 'jsonb' })\n customerRequestSnapshot!: { subject: string; body: string }\n\n @Property({ name: 'unnotified_at', type: Date, nullable: true })\n unnotifiedAt?: Date | null\n\n @Property({ name: 'portal_status_published', type: 'text', nullable: true })\n portalStatusPublished?: StaffSupportPortalStatus | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_support_routing_rules' })\n@Index({ name: 'staff_support_routing_rules_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({\n name: 'staff_support_routing_rules_category_unique_idx',\n expression:\n 'create unique index \"staff_support_routing_rules_category_unique_idx\" on \"staff_support_routing_rules\" (\"tenant_id\", \"organization_id\", coalesce(\"category_value\", \\'\\')) where \"deleted_at\" is null',\n})\nexport class StaffSupportRoutingRule {\n [OptionalProps]?: 'isActive' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'category_value', type: 'text', nullable: true })\n categoryValue?: string | null\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_task_comments' })\n@Index({ name: 'staff_time_task_comments_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_task_comments_task_idx', properties: ['organizationId', 'taskId', 'createdAt'] })\nexport class StaffTimeTaskComment {\n [OptionalProps]?: 'visibility' | 'authorKind' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'task_id', type: 'uuid' })\n taskId!: string\n\n @Property({ type: 'text' })\n body!: string\n\n @Property({ name: 'author_user_id', type: 'uuid', nullable: true })\n authorUserId?: string | null\n\n @Property({ type: 'text', default: 'internal' })\n visibility: StaffTimeTaskCommentVisibility = 'internal'\n\n @Property({ name: 'author_kind', type: 'text', default: 'staff' })\n authorKind: StaffTimeTaskCommentAuthorKind = 'staff'\n\n @Property({ name: 'author_customer_user_id', type: 'uuid', nullable: true })\n authorCustomerUserId?: string | null\n\n @Property({ name: 'author_display_snapshot', type: 'jsonb', nullable: true })\n authorDisplaySnapshot?: { displayName: string } | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_tags' })\n@Index({ name: 'staff_time_tags_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_tags_slug_unique_idx', properties: ['organizationId', 'tenantId', 'slug'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeTag {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ type: 'text' })\n slug!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ type: 'text', nullable: true })\n color?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_task_tags' })\n@Index({ name: 'staff_time_task_tags_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_task_tags_task_idx', properties: ['organizationId', 'taskId'] })\n@Index({ name: 'staff_time_task_tags_unique_idx', properties: ['tagId', 'taskId'], options: { unique: true } })\nexport class StaffTimeTaskTag {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tag_id', type: 'uuid' })\n tagId!: string\n\n @Property({ name: 'task_id', type: 'uuid' })\n taskId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_entry_tags' })\n@Index({ name: 'staff_time_entry_tags_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_entry_tags_entry_idx', properties: ['organizationId', 'timeEntryId'] })\n@Index({ name: 'staff_time_entry_tags_unique_idx', properties: ['tagId', 'timeEntryId'], options: { unique: true } })\nexport class StaffTimeEntryTag {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tag_id', type: 'uuid' })\n tagId!: string\n\n @Property({ name: 'time_entry_id', type: 'uuid' })\n timeEntryId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_reports' })\n@Index({ name: 'staff_time_reports_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_reports_customer_idx', properties: ['organizationId', 'customerId'] })\n@Index({ name: 'staff_time_reports_status_idx', properties: ['organizationId', 'status', 'periodFrom'] })\n@Index({ name: 'staff_time_reports_reference_unique_idx', properties: ['organizationId', 'tenantId', 'reference'], options: { unique: true, where: 'deleted_at IS NULL' } })\nexport class StaffTimeReport {\n [OptionalProps]?: 'periodKind' | 'grouping' | 'nonbillableMode' | 'includeAlreadyReported' | 'showRates' | 'roundingUnitMinutes' | 'roundingDirection' | 'status' | 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'customer_id', type: 'uuid' })\n customerId!: string\n\n @Property({ name: 'customer_snapshot', type: 'jsonb', nullable: true })\n customerSnapshot?: Record<string, unknown> | null\n\n @Property({ type: 'text' })\n reference!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Enum({ items: ['week', 'month', 'year', 'custom'], type: 'text', name: 'period_kind', default: 'month' })\n periodKind: StaffTimeReportPeriodKind = 'month'\n\n @Property({ name: 'period_from', type: 'date' })\n periodFrom!: Date\n\n @Property({ name: 'period_to', type: 'date' })\n periodTo!: Date\n\n @Property({ name: 'currency_code', type: 'text' })\n currencyCode!: string\n\n @Property({ name: 'grouping', type: 'text', default: 'project_task' })\n grouping: StaffTimeReportGrouping = 'project_task'\n\n @Enum({ items: ['separate', 'exclude'], type: 'text', name: 'nonbillable_mode', default: 'separate' })\n nonbillableMode: StaffTimeReportNonBillableMode = 'separate'\n\n @Property({ name: 'include_already_reported', type: 'boolean', default: false })\n includeAlreadyReported: boolean = false\n\n @Property({ name: 'show_rates', type: 'boolean', default: true })\n showRates: boolean = true\n\n @Property({ name: 'rounding_unit_minutes', type: 'integer', default: 0 })\n roundingUnitMinutes: number = 0\n\n @Property({ name: 'rounding_direction', type: 'text', default: 'up' })\n roundingDirection: string = 'up'\n\n @Enum({ items: ['draft', 'closed'], type: 'text', name: 'status', default: 'draft' })\n status: StaffTimeReportStatus = 'draft'\n\n @Property({ name: 'total_billable_minutes', type: 'integer', nullable: true })\n totalBillableMinutes?: number | null\n\n @Property({ name: 'total_nonbillable_minutes', type: 'integer', nullable: true })\n totalNonbillableMinutes?: number | null\n\n @Property({ name: 'total_amount', type: 'numeric', precision: 14, scale: 2, nullable: true })\n totalAmount?: string | null\n\n @Property({ name: 'closed_at', type: Date, nullable: true })\n closedAt?: Date | null\n\n @Property({ name: 'closed_by_user_id', type: 'uuid', nullable: true })\n closedByUserId?: string | null\n\n @Property({ name: 'created_by_user_id', type: 'uuid', nullable: true })\n createdByUserId?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'staff_time_report_projects' })\n@Index({ name: 'staff_time_report_projects_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_report_projects_project_idx', properties: ['organizationId', 'timeProjectId'] })\n@Index({ name: 'staff_time_report_projects_unique_idx', properties: ['reportId', 'timeProjectId'], options: { unique: true } })\nexport class StaffTimeReportProject {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'report_id', type: 'uuid' })\n reportId!: string\n\n @Property({ name: 'time_project_id', type: 'uuid' })\n timeProjectId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_report_entries' })\n@Index({ name: 'staff_time_report_entries_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_report_entries_entry_idx', properties: ['organizationId', 'timeEntryId'] })\n@Index({ name: 'staff_time_report_entries_unique_idx', properties: ['reportId', 'timeEntryId'], options: { unique: true } })\nexport class StaffTimeReportEntry {\n [OptionalProps]?: 'frozenRawMinutes' | 'frozenRoundedMinutes' | 'frozenIsBillable' | 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'report_id', type: 'uuid' })\n reportId!: string\n\n @Property({ name: 'time_entry_id', type: 'uuid' })\n timeEntryId!: string\n\n @Property({ name: 'frozen_raw_minutes', type: 'integer', default: 0 })\n frozenRawMinutes: number = 0\n\n @Property({ name: 'frozen_rounded_minutes', type: 'integer', default: 0 })\n frozenRoundedMinutes: number = 0\n\n @Property({ name: 'frozen_rate_amount', type: 'numeric', precision: 14, scale: 4, nullable: true })\n frozenRateAmount?: string | null\n\n @Property({ name: 'frozen_currency_code', type: 'text' })\n frozenCurrencyCode!: string\n\n @Property({ name: 'frozen_amount', type: 'numeric', precision: 14, scale: 2, nullable: true })\n frozenAmount?: string | null\n\n @Property({ name: 'frozen_is_billable', type: 'boolean', default: true })\n frozenIsBillable: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n\n@Entity({ tableName: 'staff_time_report_events' })\n@Index({ name: 'staff_time_report_events_tenant_org_idx', properties: ['tenantId', 'organizationId'] })\n@Index({ name: 'staff_time_report_events_report_idx', properties: ['organizationId', 'reportId', 'createdAt'] })\nexport class StaffTimeReportEvent {\n [OptionalProps]?: 'createdAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'report_id', type: 'uuid' })\n reportId!: string\n\n @Enum({ items: ['closed', 'unlocked', 'exported'], type: 'text', name: 'event_type' })\n eventType!: StaffTimeReportEventType\n\n @Property({ type: 'text', nullable: true })\n reason?: string | null\n\n @Property({ name: 'actor_user_id', type: 'uuid', nullable: true })\n actorUserId?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -30,6 +30,14 @@ const entityExtensions = [
30
30
  table: "staff_time_projects",
31
31
  cardinality: "one-to-many",
32
32
  description: "Time projects owned by a customer record (D-9: the customers supertype)"
33
+ },
34
+ {
35
+ base: "customers:customer_entity",
36
+ extension: "staff:staff_time_task",
37
+ join: { baseKey: "id", extensionKey: "customer_id" },
38
+ table: "staff_time_tasks",
39
+ cardinality: "one-to-many",
40
+ description: "Tasks filed for a customer record, such as customer portal support tickets"
33
41
  }
34
42
  ];
35
43
  const extensions = entityExtensions;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/staff/data/extensions.ts"],
4
- "sourcesContent": ["import type { EntityExtension } from '@open-mercato/shared/modules/entities'\n\n/**\n * EP-44 \u2014 cross-module entity links declared by the staff module.\n *\n * Per root `AGENTS.md`, modules do NOT form direct ORM relationships across boundaries.\n * `staff_time_entries.customer_id` / `.deal_id` / `.order_id` and\n * `staff_time_projects.customer_id` are plain uuid columns; the declarations below are\n * the traversal contract over them and nothing more. They contain **string ids only** \u2014\n * no import of a customers or sales symbol \u2014 so they add no load-time dependency and\n * staff's `requires: ['planner', 'resources']` in `index.ts` does not grow. That matters:\n * staff is slated for extraction into a standalone package, and a link that pulled in\n * `@open-mercato/core/modules/customers` would break the extraction.\n *\n * `base` is the OTHER module's entity and `extension` is the staff entity that carries\n * the foreign key, matching every other `data/extensions.ts` in the repo \u2014 the query\n * engine only ever looks a link up by `base` (`shared/lib/query/engine.ts`,\n * `opts.includeExtensions`), joining the extension table onto the base entity's query.\n *\n * NOTE \u2014 declaration-only extension point, exactly as in\n * `apps/mercato/src/modules/example/data/extensions.ts`. Nothing in the platform passes\n * `includeExtensions` to a query today, the basic engine's extension join adds no\n * projection and exposes no filterable or sortable alias, and the hybrid engine DI\n * registers ignores the flag outside its basic-engine fallback. The declaration is still\n * the live contract: it is what `yarn generate` emits into the module registry as\n * `entityExtensions`, and it is what a reverse-navigation or join feature will read.\n *\n * `table` is declared rather than derived. The engine would reach the same names with\n * its regular pluralizer (`staff_time_entry` \u2192 `staff_time_entries`), but the explicit\n * form is pinned against the physical schema by `__tests__/entityExtensions.test.ts`.\n */\nconst entityExtensions: EntityExtension[] = [\n {\n base: 'customers:customer_entity',\n extension: 'staff:staff_time_entry',\n join: { baseKey: 'id', extensionKey: 'customer_id' },\n table: 'staff_time_entries',\n cardinality: 'one-to-many',\n description: 'Time logged directly against a customer record',\n },\n {\n base: 'customers:customer_deal',\n extension: 'staff:staff_time_entry',\n join: { baseKey: 'id', extensionKey: 'deal_id' },\n table: 'staff_time_entries',\n cardinality: 'one-to-many',\n description: 'Time logged against a CRM deal',\n },\n {\n base: 'sales:sales_order',\n extension: 'staff:staff_time_entry',\n join: { baseKey: 'id', extensionKey: 'order_id' },\n table: 'staff_time_entries',\n cardinality: 'one-to-many',\n description: 'Time logged against a sales order',\n },\n {\n base: 'customers:customer_entity',\n extension: 'staff:staff_time_project',\n join: { baseKey: 'id', extensionKey: 'customer_id' },\n table: 'staff_time_projects',\n cardinality: 'one-to-many',\n description: 'Time projects owned by a customer record (D-9: the customers supertype)',\n },\n]\n\nexport const extensions = entityExtensions\nexport default entityExtensions\n"],
5
- "mappings": "AA+BA,MAAM,mBAAsC;AAAA,EAC1C;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,cAAc;AAAA,IACnD,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,UAAU;AAAA,IAC/C,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,WAAW;AAAA,IAChD,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,cAAc;AAAA,IACnD,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AACF;AAEO,MAAM,aAAa;AAC1B,IAAO,qBAAQ;",
4
+ "sourcesContent": ["import type { EntityExtension } from '@open-mercato/shared/modules/entities'\n\n/**\n * EP-44 \u2014 cross-module entity links declared by the staff module.\n *\n * Per root `AGENTS.md`, modules do NOT form direct ORM relationships across boundaries.\n * `staff_time_entries.customer_id` / `.deal_id` / `.order_id` and\n * `staff_time_projects.customer_id` are plain uuid columns; the declarations below are\n * the traversal contract over them and nothing more. They contain **string ids only** \u2014\n * no import of a customers or sales symbol \u2014 so they add no load-time dependency and\n * staff's `requires` in `index.ts` never gains `customers` or `sales`. That matters:\n * staff is slated for extraction into a standalone package, and a link that pulled in\n * `@open-mercato/core/modules/customers` would break the extraction.\n *\n * `base` is the OTHER module's entity and `extension` is the staff entity that carries\n * the foreign key, matching every other `data/extensions.ts` in the repo \u2014 the query\n * engine only ever looks a link up by `base` (`shared/lib/query/engine.ts`,\n * `opts.includeExtensions`), joining the extension table onto the base entity's query.\n *\n * NOTE \u2014 declaration-only extension point, exactly as in\n * `apps/mercato/src/modules/example/data/extensions.ts`. Nothing in the platform passes\n * `includeExtensions` to a query today, the basic engine's extension join adds no\n * projection and exposes no filterable or sortable alias, and the hybrid engine DI\n * registers ignores the flag outside its basic-engine fallback. The declaration is still\n * the live contract: it is what `yarn generate` emits into the module registry as\n * `entityExtensions`, and it is what a reverse-navigation or join feature will read.\n *\n * `table` is declared rather than derived. The engine would reach the same names with\n * its regular pluralizer (`staff_time_entry` \u2192 `staff_time_entries`), but the explicit\n * form is pinned against the physical schema by `__tests__/entityExtensions.test.ts`.\n */\nconst entityExtensions: EntityExtension[] = [\n {\n base: 'customers:customer_entity',\n extension: 'staff:staff_time_entry',\n join: { baseKey: 'id', extensionKey: 'customer_id' },\n table: 'staff_time_entries',\n cardinality: 'one-to-many',\n description: 'Time logged directly against a customer record',\n },\n {\n base: 'customers:customer_deal',\n extension: 'staff:staff_time_entry',\n join: { baseKey: 'id', extensionKey: 'deal_id' },\n table: 'staff_time_entries',\n cardinality: 'one-to-many',\n description: 'Time logged against a CRM deal',\n },\n {\n base: 'sales:sales_order',\n extension: 'staff:staff_time_entry',\n join: { baseKey: 'id', extensionKey: 'order_id' },\n table: 'staff_time_entries',\n cardinality: 'one-to-many',\n description: 'Time logged against a sales order',\n },\n {\n base: 'customers:customer_entity',\n extension: 'staff:staff_time_project',\n join: { baseKey: 'id', extensionKey: 'customer_id' },\n table: 'staff_time_projects',\n cardinality: 'one-to-many',\n description: 'Time projects owned by a customer record (D-9: the customers supertype)',\n },\n {\n base: 'customers:customer_entity',\n extension: 'staff:staff_time_task',\n join: { baseKey: 'id', extensionKey: 'customer_id' },\n table: 'staff_time_tasks',\n cardinality: 'one-to-many',\n description: 'Tasks filed for a customer record, such as customer portal support tickets',\n },\n]\n\nexport const extensions = entityExtensions\nexport default entityExtensions\n"],
5
+ "mappings": "AA+BA,MAAM,mBAAsC;AAAA,EAC1C;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,cAAc;AAAA,IACnD,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,UAAU;AAAA,IAC/C,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,WAAW;AAAA,IAChD,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,cAAc;AAAA,IACnD,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM,EAAE,SAAS,MAAM,cAAc,cAAc;AAAA,IACnD,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AACF;AAEO,MAAM,aAAa;AAC1B,IAAO,qBAAQ;",
6
6
  "names": []
7
7
  }
@@ -332,7 +332,8 @@ const staffTimeProjectUpdateSchema = z.object({
332
332
  billableByDefault: z.boolean().optional(),
333
333
  budgetKind: timeProjectBudgetKindSchema.optional(),
334
334
  budgetValue: numericAmountSchema.optional().nullable(),
335
- budgetWarnAtPercent: z.number().int().min(1).max(100).optional()
335
+ budgetWarnAtPercent: z.number().int().min(1).max(100).optional(),
336
+ defaultAssigneeStaffMemberId: z.string().uuid().optional().nullable()
336
337
  });
337
338
  const staffTimeProjectMemberAssignSchema = z.object({
338
339
  ...scopedCreateFields,
@@ -341,13 +342,15 @@ const staffTimeProjectMemberAssignSchema = z.object({
341
342
  role: z.string().max(100).optional().nullable(),
342
343
  status: timeProjectMemberStatusSchema.optional().default("active"),
343
344
  assignedStartDate: z.coerce.date(),
344
- assignedEndDate: z.coerce.date().optional().nullable()
345
+ assignedEndDate: z.coerce.date().optional().nullable(),
346
+ isAssigner: z.boolean().optional()
345
347
  });
346
348
  const staffTimeProjectMemberUpdateSchema = z.object({
347
349
  ...scopedUpdateFields,
348
350
  role: z.string().max(100).optional().nullable(),
349
351
  status: timeProjectMemberStatusSchema.optional(),
350
- assignedEndDate: z.coerce.date().optional().nullable()
352
+ assignedEndDate: z.coerce.date().optional().nullable(),
353
+ isAssigner: z.boolean().optional()
351
354
  });
352
355
  const staffMyProjectVisibilityUpdateSchema = z.object({
353
356
  showInGrid: z.boolean()
@@ -421,11 +424,19 @@ const staffTimeTaskCommentCreateSchema = z.object({
421
424
  ...scopedCreateFields,
422
425
  taskId: z.string().uuid(),
423
426
  body: z.string().trim().min(1).max(5e3),
424
- authorUserId: z.string().uuid().optional().nullable()
427
+ authorUserId: z.string().uuid().optional().nullable(),
428
+ visibility: z.enum(["internal", "customer"]).optional()
425
429
  });
426
430
  const staffTimeTaskCommentUpdateSchema = z.object({
427
431
  ...scopedUpdateFields,
428
- body: z.string().trim().min(1).max(5e3)
432
+ body: z.string().trim().min(1).max(5e3),
433
+ visibility: z.enum(["internal", "customer"]).optional()
434
+ });
435
+ const staffTimeTaskCommentUpdateRequestSchema = staffTimeTaskCommentUpdateSchema.extend({
436
+ body: z.string().trim().min(1).max(5e3).optional()
437
+ }).refine((value) => value.body !== void 0 || value.visibility !== void 0, {
438
+ message: "body or visibility is required",
439
+ path: ["body"]
429
440
  });
430
441
  const staffTimeTagCreateSchema = z.object({
431
442
  ...scopedCreateFields,
@@ -502,12 +513,29 @@ const staffTimeProjectChangeCurrencySchema = z.object({
502
513
  acknowledged: z.literal(true)
503
514
  });
504
515
  const staffTimeTrackingSettingsSchema = buildTimeTrackingSettingsSchema();
516
+ const staffSupportRoutingRuleCreateSchema = z.object({
517
+ ...scopedCreateFields,
518
+ categoryValue: z.string().trim().min(1).max(150).optional().nullable(),
519
+ timeProjectId: z.string().uuid(),
520
+ isActive: z.boolean().optional().default(true)
521
+ });
522
+ const staffSupportRoutingRuleUpdateSchema = z.object({
523
+ ...scopedUpdateFields,
524
+ timeProjectId: z.string().uuid().optional(),
525
+ isActive: z.boolean().optional()
526
+ });
527
+ const staffSupportFallbackProjectCreateSchema = z.object({
528
+ ...scopedCreateFields
529
+ });
505
530
  export {
506
531
  optimisticUpdatedAtSchema,
507
532
  staffLeaveRequestCreateSchema,
508
533
  staffLeaveRequestDecisionSchema,
509
534
  staffLeaveRequestUpdateSchema,
510
535
  staffMyProjectVisibilityUpdateSchema,
536
+ staffSupportFallbackProjectCreateSchema,
537
+ staffSupportRoutingRuleCreateSchema,
538
+ staffSupportRoutingRuleUpdateSchema,
511
539
  staffTeamCreateSchema,
512
540
  staffTeamMemberActivityCreateSchema,
513
541
  staffTeamMemberActivityUpdateSchema,
@@ -544,6 +572,7 @@ export {
544
572
  staffTimeReportUpdateSchema,
545
573
  staffTimeTagCreateSchema,
546
574
  staffTimeTaskCommentCreateSchema,
575
+ staffTimeTaskCommentUpdateRequestSchema,
547
576
  staffTimeTaskCommentUpdateSchema,
548
577
  staffTimeTaskCreateSchema,
549
578
  staffTimeTaskStatusChangeSchema,