@react-pakistan/util-functions 1.25.90 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/README.md +74 -315
  2. package/constants/api-methods.d.ts +3 -1
  3. package/constants/api-methods.js +1 -15
  4. package/constants/cache-time.d.ts +7 -5
  5. package/constants/cache-time.js +1 -8
  6. package/constants/countries-timezones.d.ts +4 -2
  7. package/constants/countries-timezones.js +1 -1411
  8. package/constants/currencies.d.ts +4 -2
  9. package/constants/currencies.js +1 -1076
  10. package/constants/dial-codes.d.ts +5 -3
  11. package/constants/dial-codes.js +1 -1216
  12. package/constants/layout-direction.d.ts +3 -1
  13. package/constants/layout-direction.js +1 -8
  14. package/constants/react-pakistan-meta.d.ts +4 -2
  15. package/constants/react-pakistan-meta.js +1 -35
  16. package/constants/react-pakistan.d.ts +5 -3
  17. package/constants/react-pakistan.js +12 -104
  18. package/constants/select-value-delimiter.d.ts +3 -1
  19. package/constants/select-value-delimiter.js +1 -13
  20. package/constants/social-media-colors.d.ts +3 -1
  21. package/constants/social-media-colors.js +1 -42
  22. package/constants/social-media-sizes.d.ts +6 -4
  23. package/constants/social-media-sizes.js +1 -327
  24. package/constants/user-roles.d.ts +3 -1
  25. package/constants/user-roles.js +1 -9
  26. package/edu-pilot-pro/types/academics.d.ts +2 -266
  27. package/edu-pilot-pro/types/academics.js +1 -9
  28. package/edu-pilot-pro/types/admission.d.ts +803 -10
  29. package/edu-pilot-pro/types/admission.js +1 -7
  30. package/edu-pilot-pro/types/communication.d.ts +2 -165
  31. package/edu-pilot-pro/types/communication.js +1 -8
  32. package/edu-pilot-pro/types/enums.d.ts +30 -28
  33. package/edu-pilot-pro/types/enums.js +1 -445
  34. package/edu-pilot-pro/types/finance.d.ts +2 -128
  35. package/edu-pilot-pro/types/finance.js +1 -8
  36. package/edu-pilot-pro/types/index.d.ts +2 -12
  37. package/edu-pilot-pro/types/index.js +1 -28
  38. package/edu-pilot-pro/types/user-management.d.ts +2 -236
  39. package/edu-pilot-pro/types/user-management.js +1 -8
  40. package/factory/generic-component-factory.d.ts +12 -9
  41. package/factory/generic-component-factory.js +1 -131
  42. package/factory/generic-module-factory.d.ts +14 -10
  43. package/factory/generic-module-factory.js +1 -190
  44. package/general/basic-get.d.ts +8 -1
  45. package/general/basic-get.js +1 -83
  46. package/general/basic-post.d.ts +8 -1
  47. package/general/basic-post.js +1 -70
  48. package/general/calculate-pages.d.ts +9 -1
  49. package/general/calculate-pages.js +1 -7
  50. package/general/camel-to-sentence-case.d.ts +3 -1
  51. package/general/camel-to-sentence-case.js +1 -20
  52. package/general/check-even-odd-length.d.ts +3 -1
  53. package/general/check-even-odd-length.js +1 -17
  54. package/general/clear-cache.d.ts +7 -2
  55. package/general/clear-cache.js +1 -12
  56. package/general/cnic-formatter.d.ts +16 -3
  57. package/general/cnic-formatter.js +1 -53
  58. package/general/convert-url-to-base64.d.ts +8 -6
  59. package/general/convert-url-to-base64.js +1 -231
  60. package/general/countries.d.ts +5 -3
  61. package/general/countries.js +1 -514
  62. package/general/create-date.d.ts +3 -1
  63. package/general/create-date.js +1 -22
  64. package/general/crypto.d.ts +4 -2
  65. package/general/crypto.js +1 -45
  66. package/general/currencies.d.ts +2 -0
  67. package/general/currencies.js +0 -1077
  68. package/general/delete-image-from-private-supabase.d.ts +10 -2
  69. package/general/delete-image-from-private-supabase.js +1 -66
  70. package/general/delete-image-from-public-supabase.d.ts +10 -2
  71. package/general/delete-image-from-public-supabase.js +1 -66
  72. package/general/download-from-url.d.ts +8 -1
  73. package/general/download-from-url.js +1 -82
  74. package/general/dynamic-page-limit.d.ts +9 -3
  75. package/general/dynamic-page-limit.js +1 -7
  76. package/general/enum-to-text.d.ts +8 -1
  77. package/general/enum-to-text.js +1 -11
  78. package/general/fetch-data.d.ts +16 -4
  79. package/general/fetch-data.js +1 -95
  80. package/general/fetch-supabase-image.d.ts +11 -2
  81. package/general/fetch-supabase-image.js +1 -67
  82. package/general/fetch-supabase-private-assets.d.ts +11 -2
  83. package/general/fetch-supabase-private-assets.js +1 -69
  84. package/general/format-date.d.ts +10 -2
  85. package/general/format-date.js +1 -49
  86. package/general/format-number.d.ts +12 -2
  87. package/general/format-number.js +1 -35
  88. package/general/format-phone-display.d.ts +9 -1
  89. package/general/format-phone-display.js +1 -32
  90. package/general/format-phone.d.ts +10 -2
  91. package/general/format-phone.js +1 -20
  92. package/general/format-pricing.d.ts +8 -1
  93. package/general/format-pricing.js +1 -23
  94. package/general/format-secs.d.ts +8 -1
  95. package/general/format-secs.js +1 -21
  96. package/general/format-time.d.ts +8 -2
  97. package/general/format-time.js +1 -38
  98. package/general/format-value.d.ts +8 -1
  99. package/general/format-value.js +1 -7
  100. package/general/full-month-range.d.ts +3 -2
  101. package/general/full-month-range.js +1 -24
  102. package/general/full-year-range.d.ts +3 -2
  103. package/general/full-year-range.js +1 -20
  104. package/general/generate-article-schema.d.ts +3 -2
  105. package/general/generate-article-schema.js +1 -100
  106. package/general/generate-blog-schema.d.ts +3 -2
  107. package/general/generate-blog-schema.js +1 -32
  108. package/general/generate-book-schema.d.ts +3 -2
  109. package/general/generate-book-schema.js +1 -109
  110. package/general/generate-breadcrumb-schema.d.ts +3 -2
  111. package/general/generate-breadcrumb-schema.js +1 -34
  112. package/general/generate-carousel-schema.d.ts +3 -2
  113. package/general/generate-carousel-schema.js +1 -172
  114. package/general/generate-course-schema.d.ts +3 -2
  115. package/general/generate-course-schema.js +1 -124
  116. package/general/generate-dataset-schema.d.ts +3 -2
  117. package/general/generate-dataset-schema.js +1 -156
  118. package/general/generate-discussion-forum-schema.d.ts +3 -2
  119. package/general/generate-discussion-forum-schema.js +1 -67
  120. package/general/generate-education-schema.d.ts +3 -2
  121. package/general/generate-education-schema.js +1 -137
  122. package/general/generate-employer-aggregate-rating-schema.d.ts +3 -2
  123. package/general/generate-employer-aggregate-rating-schema.js +1 -64
  124. package/general/generate-event-schema.d.ts +3 -2
  125. package/general/generate-event-schema.js +1 -214
  126. package/general/generate-faq-schema.d.ts +3 -2
  127. package/general/generate-faq-schema.js +1 -43
  128. package/general/generate-grid.d.ts +3 -2
  129. package/general/generate-grid.js +1 -55
  130. package/general/generate-image-metadata-schema.d.ts +3 -2
  131. package/general/generate-image-metadata-schema.js +1 -73
  132. package/general/generate-job-posting-schema.d.ts +3 -2
  133. package/general/generate-job-posting-schema.js +1 -120
  134. package/general/generate-local-business-schema.d.ts +3 -2
  135. package/general/generate-local-business-schema.js +1 -75
  136. package/general/generate-math-solver-schema.d.ts +3 -2
  137. package/general/generate-math-solver-schema.js +1 -83
  138. package/general/generate-movie-carousel-schema.d.ts +3 -2
  139. package/general/generate-movie-carousel-schema.js +1 -160
  140. package/general/generate-organization-schema.d.ts +3 -2
  141. package/general/generate-organization-schema.js +1 -39
  142. package/general/generate-profile-page-schema.d.ts +3 -2
  143. package/general/generate-profile-page-schema.js +1 -82
  144. package/general/generate-qa-page-schema.d.ts +3 -2
  145. package/general/generate-qa-page-schema.js +1 -67
  146. package/general/generate-recipe-schema.d.ts +3 -2
  147. package/general/generate-recipe-schema.js +1 -104
  148. package/general/generate-ref.d.ts +8 -2
  149. package/general/generate-ref.js +1 -12
  150. package/general/generate-review-snippet-schema.d.ts +3 -2
  151. package/general/generate-review-snippet-schema.js +1 -137
  152. package/general/generate-shopping-loyalty-program-schema.d.ts +3 -2
  153. package/general/generate-shopping-loyalty-program-schema.js +1 -59
  154. package/general/generate-shopping-merchant-listing-schema.d.ts +3 -2
  155. package/general/generate-shopping-merchant-listing-schema.js +1 -153
  156. package/general/generate-shopping-merchant-return-policy-schema.d.ts +3 -2
  157. package/general/generate-shopping-merchant-return-policy-schema.js +1 -68
  158. package/general/generate-shopping-merchant-shipping-policy-schema.d.ts +3 -2
  159. package/general/generate-shopping-merchant-shipping-policy-schema.js +1 -74
  160. package/general/generate-shopping-overview-schema.d.ts +3 -2
  161. package/general/generate-shopping-overview-schema.js +1 -157
  162. package/general/generate-shopping-product-snippet-schema.d.ts +3 -2
  163. package/general/generate-shopping-product-snippet-schema.js +1 -167
  164. package/general/generate-shopping-variants-schema.d.ts +3 -2
  165. package/general/generate-shopping-variants-schema.js +1 -143
  166. package/general/generate-software-app-schema.d.ts +3 -2
  167. package/general/generate-software-app-schema.js +1 -143
  168. package/general/generate-speakable-schema.d.ts +3 -2
  169. package/general/generate-speakable-schema.js +1 -139
  170. package/general/generate-subscription-schema.d.ts +3 -2
  171. package/general/generate-subscription-schema.js +1 -133
  172. package/general/generate-vacation-rental-schema.d.ts +3 -2
  173. package/general/generate-vacation-rental-schema.js +1 -135
  174. package/general/generate-video-schema.d.ts +3 -2
  175. package/general/generate-video-schema.js +1 -163
  176. package/general/generic-cache.d.ts +17 -15
  177. package/general/generic-cache.js +1 -659
  178. package/general/get-available-page-limit.d.ts +8 -2
  179. package/general/get-available-page-limit.js +1 -31
  180. package/general/get-calendar-current-month.d.ts +11 -3
  181. package/general/get-calendar-current-month.js +1 -31
  182. package/general/get-calendar-dates.d.ts +11 -3
  183. package/general/get-calendar-dates.js +1 -42
  184. package/general/get-calendar-next-month.d.ts +12 -3
  185. package/general/get-calendar-next-month.js +1 -32
  186. package/general/get-calendar-previous-month.d.ts +12 -3
  187. package/general/get-calendar-previous-month.js +1 -36
  188. package/general/get-current-year.d.ts +7 -1
  189. package/general/get-current-year.js +1 -5
  190. package/general/get-day-name.d.ts +5 -3
  191. package/general/get-day-name.js +1 -14
  192. package/general/get-dial-code.d.ts +8 -1
  193. package/general/get-dial-code.js +1 -8
  194. package/general/get-full-name.d.ts +9 -2
  195. package/general/get-full-name.js +1 -8
  196. package/general/get-href.d.ts +3 -1
  197. package/general/get-href.js +1 -13
  198. package/general/get-month-name.d.ts +5 -3
  199. package/general/get-month-name.js +1 -19
  200. package/general/get-month-number.d.ts +5 -3
  201. package/general/get-month-number.js +1 -29
  202. package/general/get-number-of-days-in-month.d.ts +9 -2
  203. package/general/get-number-of-days-in-month.js +1 -12
  204. package/general/get-pathname.d.ts +3 -1
  205. package/general/get-pathname.js +1 -16
  206. package/general/get-week-day.d.ts +8 -1
  207. package/general/get-week-day.js +1 -9
  208. package/general/image-url-to-base64.d.ts +3 -1
  209. package/general/image-url-to-base64.js +1 -80
  210. package/general/is-created-or-updated.d.ts +3 -1
  211. package/general/is-created-or-updated.js +1 -26
  212. package/general/is-next-button-disabled.d.ts +9 -1
  213. package/general/is-next-button-disabled.js +1 -5
  214. package/general/is-odd.d.ts +3 -1
  215. package/general/is-odd.js +1 -13
  216. package/general/is-previous-button-disabled.d.ts +8 -1
  217. package/general/is-previous-button-disabled.js +1 -7
  218. package/general/linear-gradients.d.ts +4 -2
  219. package/general/linear-gradients.js +1 -52
  220. package/general/multi-part-search.d.ts +10 -2
  221. package/general/multi-part-search.js +1 -16
  222. package/general/normalize-phone.d.ts +15 -2
  223. package/general/normalize-phone.js +1 -40
  224. package/general/parse-frontmatter.d.ts +11 -4
  225. package/general/parse-frontmatter.js +2 -35
  226. package/general/remove-data-image-prefix.d.ts +8 -1
  227. package/general/remove-data-image-prefix.js +1 -7
  228. package/general/repeat-times.d.ts +3 -1
  229. package/general/repeat-times.js +1 -21
  230. package/general/resolve-anchor-link.d.ts +3 -1
  231. package/general/resolve-anchor-link.js +1 -26
  232. package/general/resolve-current-date.d.ts +3 -1
  233. package/general/resolve-current-date.js +1 -22
  234. package/general/resolve-grid.d.ts +3 -1
  235. package/general/resolve-grid.js +1 -18
  236. package/general/resolve-initials.d.ts +3 -1
  237. package/general/resolve-initials.js +1 -17
  238. package/general/set-timezone.d.ts +11 -1
  239. package/general/set-timezone.js +1 -12
  240. package/general/slugify.d.ts +3 -1
  241. package/general/slugify.js +1 -24
  242. package/general/text-to-enum.d.ts +8 -1
  243. package/general/text-to-enum.js +1 -10
  244. package/general/text-to-sentence-case.d.ts +3 -1
  245. package/general/text-to-sentence-case.js +1 -16
  246. package/general/time-out.d.ts +3 -1
  247. package/general/time-out.js +1 -16
  248. package/general/time-zones.d.ts +3 -1
  249. package/general/time-zones.js +1 -437
  250. package/general/truncate-text.d.ts +3 -1
  251. package/general/truncate-text.js +1 -18
  252. package/general/type.d.ts +3 -1
  253. package/general/type.js +1 -2
  254. package/general/upload-blob-to-private-supabase.d.ts +14 -2
  255. package/general/upload-blob-to-private-supabase.js +1 -62
  256. package/general/upload-blob-to-public-supabase.d.ts +14 -2
  257. package/general/upload-blob-to-public-supabase.js +1 -62
  258. package/general/upload-image-to-private-supabase.d.ts +15 -3
  259. package/general/upload-image-to-private-supabase.js +1 -66
  260. package/general/upload-image-to-public-supabase.d.ts +15 -3
  261. package/general/upload-image-to-public-supabase.js +1 -66
  262. package/general/url-to-sentence-case.d.ts +3 -1
  263. package/general/url-to-sentence-case.js +1 -19
  264. package/general/validate-comment.d.ts +3 -1
  265. package/general/validate-comment.js +1 -21
  266. package/general/validate-email.d.ts +3 -1
  267. package/general/validate-email.js +1 -24
  268. package/general/validate-form.d.ts +12 -3
  269. package/general/validate-form.js +1 -29
  270. package/general/validate-name.d.ts +3 -1
  271. package/general/validate-name.js +1 -21
  272. package/hooks/use-change.d.ts +11 -2
  273. package/hooks/use-change.js +1 -23
  274. package/hooks/use-debounce.d.ts +10 -1
  275. package/hooks/use-debounce.js +1 -14
  276. package/hooks/use-fetch.d.ts +7 -5
  277. package/hooks/use-fetch.js +1 -239
  278. package/hooks/use-force-render.d.ts +6 -2
  279. package/hooks/use-force-render.js +1 -17
  280. package/hooks/use-ip-geo-location.d.ts +8 -1
  281. package/hooks/use-ip-geo-location.js +1 -79
  282. package/hooks/use-is-mobile.d.ts +8 -1
  283. package/hooks/use-is-mobile.js +1 -22
  284. package/hooks/use-module-entity-v2.d.ts +7 -4
  285. package/hooks/use-module-entity-v2.js +1 -188
  286. package/hooks/use-module-entity.d.ts +7 -4
  287. package/hooks/use-module-entity.js +1 -177
  288. package/hooks/use-phone-formatter.d.ts +10 -2
  289. package/hooks/use-phone-formatter.js +1 -23
  290. package/hooks/use-position.d.ts +6 -3
  291. package/hooks/use-position.js +1 -43
  292. package/hooks/use-rtl.d.ts +4 -2
  293. package/hooks/use-rtl.js +1 -84
  294. package/hooks/use-sticky.d.ts +3 -1
  295. package/hooks/use-sticky.js +1 -39
  296. package/hooks/use-toggle-state.d.ts +3 -2
  297. package/hooks/use-toggle-state.js +1 -26
  298. package/hooks/use-window-event-listener.d.ts +9 -1
  299. package/hooks/use-window-event-listener.js +1 -11
  300. package/hooks/with-seo.d.ts +11 -2
  301. package/hooks/with-seo.js +1 -37
  302. package/local-storage/get-storage-value.d.ts +5 -2
  303. package/local-storage/get-storage-value.js +1 -20
  304. package/local-storage/remove-storage-value.d.ts +3 -1
  305. package/local-storage/remove-storage-value.js +1 -14
  306. package/local-storage/set-storage-value.d.ts +3 -1
  307. package/local-storage/set-storage-value.js +1 -14
  308. package/local-storage/type.d.ts +3 -1
  309. package/local-storage/type.js +1 -2
  310. package/npm.d.d.ts +2 -0
  311. package/npm.d.js +0 -0
  312. package/package.json +20 -18
  313. package/storybook/generate-sitemap.d.ts +3 -1
  314. package/storybook/generate-sitemap.js +17 -26
  315. package/storybook/preview.d.ts +4 -2
  316. package/storybook/preview.js +1 -62
  317. package/storybook/react-design-story-script.d.ts +3 -1
  318. package/storybook/react-design-story-script.js +5 -27
  319. package/storybook/react-emoji-collection.d.ts +3 -1
  320. package/storybook/react-emoji-collection.js +10 -55
  321. package/storybook/react-emoji-story-script.d.ts +3 -1
  322. package/storybook/react-emoji-story-script.js +5 -31
  323. package/storybook/react-emoji-story-template.d.ts +3 -1
  324. package/storybook/react-emoji-story-template.js +45 -15
  325. package/storybook/react-icon-collection.d.ts +3 -1
  326. package/storybook/react-icon-collection.js +10 -42
  327. package/storybook/react-icon-story-script.d.ts +3 -1
  328. package/storybook/react-icon-story-script.js +5 -27
  329. package/storybook/react-icon-story-template.d.ts +3 -1
  330. package/storybook/react-icon-story-template.js +45 -14
  331. package/storybook/react-logo-collection.d.ts +3 -1
  332. package/storybook/react-logo-collection.js +10 -42
  333. package/storybook/react-logo-story-script.d.ts +3 -1
  334. package/storybook/react-logo-story-script.js +5 -27
  335. package/storybook/react-logo-story-template.d.ts +3 -1
  336. package/storybook/react-logo-story-template.js +45 -14
  337. package/storybook/react-pakistan-theme.d.ts +3 -1
  338. package/storybook/react-pakistan-theme.js +1 -31
  339. package/storybook/responsive-args.d.ts +11 -10
  340. package/storybook/responsive-args.js +1 -19
  341. package/storybook/responsive-component.d.ts +4 -2
  342. package/storybook/responsive-component.js +37 -23
  343. package/storybook/responsive-screens.d.ts +3 -1
  344. package/storybook/responsive-screens.js +1 -109
  345. package/storybook/theme.d.ts +17 -15
  346. package/storybook/theme.js +1 -1022
  347. package/api/stellar-solutions/app-user/index.d.ts +0 -51
  348. package/api/stellar-solutions/app-user/index.js +0 -210
  349. package/api/stellar-solutions/bank/index.d.ts +0 -59
  350. package/api/stellar-solutions/bank/index.js +0 -210
  351. package/api/stellar-solutions/branch/index.d.ts +0 -58
  352. package/api/stellar-solutions/branch/index.js +0 -220
  353. package/api/stellar-solutions/company/index.d.ts +0 -57
  354. package/api/stellar-solutions/company/index.js +0 -218
  355. package/api/stellar-solutions/company-report/index.d.ts +0 -15
  356. package/api/stellar-solutions/company-report/index.js +0 -74
  357. package/api/stellar-solutions/constants.d.ts +0 -19
  358. package/api/stellar-solutions/constants.js +0 -22
  359. package/api/stellar-solutions/contact/index.d.ts +0 -56
  360. package/api/stellar-solutions/contact/index.js +0 -217
  361. package/api/stellar-solutions/currency/index.d.ts +0 -55
  362. package/api/stellar-solutions/currency/index.js +0 -212
  363. package/api/stellar-solutions/customer/index.d.ts +0 -68
  364. package/api/stellar-solutions/customer/index.js +0 -249
  365. package/api/stellar-solutions/expense/index.d.ts +0 -58
  366. package/api/stellar-solutions/expense/index.js +0 -229
  367. package/api/stellar-solutions/expense-category/index.d.ts +0 -53
  368. package/api/stellar-solutions/expense-category/index.js +0 -214
  369. package/api/stellar-solutions/lead/index.d.ts +0 -51
  370. package/api/stellar-solutions/lead/index.js +0 -206
  371. package/api/stellar-solutions/menu-order/index.d.ts +0 -53
  372. package/api/stellar-solutions/menu-order/index.js +0 -202
  373. package/api/stellar-solutions/payment/index.d.ts +0 -65
  374. package/api/stellar-solutions/payment/index.js +0 -230
  375. package/api/stellar-solutions/payment-mode/index.d.ts +0 -53
  376. package/api/stellar-solutions/payment-mode/index.js +0 -191
  377. package/api/stellar-solutions/preference/index.d.ts +0 -25
  378. package/api/stellar-solutions/preference/index.js +0 -114
  379. package/api/stellar-solutions/product/index.d.ts +0 -64
  380. package/api/stellar-solutions/product/index.js +0 -235
  381. package/api/stellar-solutions/product-category/index.d.ts +0 -51
  382. package/api/stellar-solutions/product-category/index.js +0 -212
  383. package/api/stellar-solutions/profile/index.d.ts +0 -78
  384. package/api/stellar-solutions/profile/index.js +0 -234
  385. package/api/stellar-solutions/quote-invoice/index.d.ts +0 -97
  386. package/api/stellar-solutions/quote-invoice/index.js +0 -369
  387. package/api/stellar-solutions/quote-invoice-report/index.d.ts +0 -15
  388. package/api/stellar-solutions/quote-invoice-report/index.js +0 -74
  389. package/api/stellar-solutions/tax/index.d.ts +0 -55
  390. package/api/stellar-solutions/tax/index.js +0 -224
  391. package/api/stellar-solutions/types/common.d.ts +0 -24
  392. package/api/stellar-solutions/types/common.js +0 -22
  393. package/api/stellar-solutions/types/erp.d.ts +0 -302
  394. package/api/stellar-solutions/types/erp.js +0 -73
  395. package/api/stellar-solutions/types/index.d.ts +0 -3
  396. package/api/stellar-solutions/types/index.js +0 -19
  397. package/api/stellar-solutions/types/pos.d.ts +0 -176
  398. package/api/stellar-solutions/types/pos.js +0 -61
  399. package/constants/index.d.ts +0 -12
  400. package/constants/index.js +0 -28
  401. package/factory/index.d.ts +0 -2
  402. package/factory/index.js +0 -18
  403. package/general/index.d.ts +0 -95
  404. package/general/index.js +0 -111
  405. package/index.d.ts +0 -28
  406. package/index.js +0 -44
  407. package/local-storage/index.d.ts +0 -4
  408. package/local-storage/index.js +0 -20
  409. package/setupTests.d.ts +0 -1
  410. package/setupTests.js +0 -52
  411. package/storybook/index.d.ts +0 -17
  412. package/storybook/index.js +0 -33
@@ -1,16 +1,17 @@
1
+ import { ADMISSION_STATUS, GENDER, FEE_TYPE, FEE_RISK_LEVEL, PAYMENT_STATUS, FEE_AGENT_ACTION_TYPE, FEE_CONVERSATION_INTENT, FEE_CONVERSATION_SENDER, DISCOUNT_TYPE, EXPENSE_CATEGORY, PAYMENT_METHOD, EXPENSE_STATUS, NOTIFICATION_TYPE, DEVICE_PLATFORM, CAMPAIGN_STATUS, CAMPAIGN_CONTACT_STATUS, REFERRAL_CHANNEL, REFERRAL_STATUS, CURRENCY, USER_ROLE, ACCESS_LEVEL, BILLING_INTERVAL, PLAN_TYPE, ATTENDANCE_STATUS, FAMILY_MEMBER_ROLE, STUDENT_STATUS, GRADE_TYPE, DAY_OF_WEEK } from './enums.js';
2
+
1
3
  /**
2
4
  * TypeScript Types Generated from Prisma Schema - Admission
3
5
  *
4
6
  * This file contains TypeScript interfaces for the admission domain models.
5
7
  */
6
- import { GENDER, ADMISSION_STATUS } from './enums';
7
- import type { SchoolBE } from './user-management';
8
- export interface AdmissionDetails {
8
+
9
+ interface AdmissionDetails {
9
10
  classForAdmission: string;
10
11
  previousSchool: string;
11
12
  siblings: string;
12
13
  }
13
- export interface FatherDetails {
14
+ interface FatherDetails {
14
15
  fatherIdNumber: string;
15
16
  fatherFirstName: string;
16
17
  fatherLastName: string;
@@ -19,21 +20,21 @@ export interface FatherDetails {
19
20
  fatherOrganization: string;
20
21
  emergencyContact: boolean;
21
22
  }
22
- export interface MotherDetails {
23
+ interface MotherDetails {
23
24
  motherIdNumber: string;
24
25
  motherFirstName: string;
25
26
  motherLastName: string;
26
27
  motherMobile: string;
27
28
  emergencyContact: boolean;
28
29
  }
29
- export interface HomeDetails {
30
+ interface HomeDetails {
30
31
  address: string;
31
32
  city: string;
32
33
  country: string;
33
34
  postalCode: string;
34
35
  state: string;
35
36
  }
36
- export interface StudentDetails {
37
+ interface StudentDetails {
37
38
  studentIdNumber: string;
38
39
  discountCodeId: string;
39
40
  dob: string;
@@ -45,7 +46,7 @@ export interface StudentDetails {
45
46
  orphan: boolean;
46
47
  registrationCode: string;
47
48
  }
48
- export interface OfficeUse {
49
+ interface OfficeUse {
49
50
  admissionNotes: string;
50
51
  notes: string;
51
52
  }
@@ -55,7 +56,7 @@ export interface OfficeUse {
55
56
  * structured form data in Json columns so the application layer can
56
57
  * process/transform it into domain entities on approval.
57
58
  */
58
- export interface AdmissionAIBE {
59
+ interface AdmissionAIBE {
59
60
  id: string;
60
61
  admissionId: string;
61
62
  schoolId: string;
@@ -67,7 +68,7 @@ export interface AdmissionAIBE {
67
68
  createdAt: string;
68
69
  updatedAt: string;
69
70
  }
70
- export interface AdmissionBE {
71
+ interface AdmissionBE {
71
72
  admissionDetails: AdmissionDetails | null;
72
73
  createdAt: string;
73
74
  enabled: boolean;
@@ -83,3 +84,795 @@ export interface AdmissionBE {
83
84
  school?: SchoolBE;
84
85
  aiAnalysis?: AdmissionAIBE | null;
85
86
  }
87
+
88
+ /**
89
+ * TypeScript Types Generated from Prisma Schema - Finance
90
+ *
91
+ * This file contains TypeScript interfaces for fee structures, discount codes,
92
+ * student fees, expenses, fee agent activities, and fee conversations.
93
+ */
94
+
95
+ /**
96
+ * FeeStructure defines fee templates for different classes/categories
97
+ */
98
+ interface FeeStructureBE {
99
+ amount: number;
100
+ classId?: string | null;
101
+ createdAt: string;
102
+ description: string | null;
103
+ enabled: boolean;
104
+ feeType: FEE_TYPE;
105
+ frequency: string | null;
106
+ id: string;
107
+ name: string;
108
+ schoolId: string;
109
+ updatedAt: string;
110
+ class?: ClassBE;
111
+ school?: SchoolBE;
112
+ studentFees?: StudentFeeBE[];
113
+ }
114
+ /**
115
+ * DiscountCode represents discount codes available for fee reductions
116
+ */
117
+ interface DiscountCodeBE {
118
+ code: string;
119
+ createdAt: string;
120
+ description: string | null;
121
+ discountType: DISCOUNT_TYPE;
122
+ discountValue: number;
123
+ enabled: boolean;
124
+ id: string;
125
+ schoolId: string;
126
+ updatedAt: string;
127
+ school?: SchoolBE;
128
+ studentFees?: StudentFeeBE[];
129
+ }
130
+ /**
131
+ * StudentFee represents fees assigned to individual students
132
+ */
133
+ interface StudentFeeBE {
134
+ amount: number;
135
+ amountDue: number;
136
+ amountPaid: number;
137
+ createdAt: string;
138
+ discountAmount: number | null;
139
+ discountCodeId: string | null;
140
+ dueDate: Date | string;
141
+ enabled: boolean;
142
+ familyId: string;
143
+ feeStructureId: string;
144
+ fine: number | null;
145
+ id: string;
146
+ lastRemindedAt: Date | string | null;
147
+ nextFollowUpAt: Date | string | null;
148
+ reliabilityScore: number | null;
149
+ paidAt: Date | string | null;
150
+ remarks: string | null;
151
+ riskLevel: FEE_RISK_LEVEL | null;
152
+ schoolId: string;
153
+ status: PAYMENT_STATUS;
154
+ studentProfileId: string;
155
+ updatedAt: string;
156
+ agentActivities?: FeeAgentActivityBE[];
157
+ conversations?: FeeConversationBE[];
158
+ discountCode?: DiscountCodeBE;
159
+ family?: FamilyBE;
160
+ feeStructure?: FeeStructureBE;
161
+ school?: SchoolBE;
162
+ studentProfile?: StudentProfileBE;
163
+ }
164
+ interface FeeAgentActivityBE {
165
+ actionType: FEE_AGENT_ACTION_TYPE;
166
+ createdAt: string;
167
+ id: string;
168
+ payload: Record<string, unknown>;
169
+ schoolId: string;
170
+ status: string;
171
+ studentFeeId: string;
172
+ updatedAt: string;
173
+ }
174
+ interface FeeConversationBE {
175
+ createdAt: string;
176
+ id: string;
177
+ intent: FEE_CONVERSATION_INTENT;
178
+ message: string;
179
+ metadata: Record<string, unknown> | null;
180
+ schoolId: string;
181
+ sender: FEE_CONVERSATION_SENDER;
182
+ studentFeeId: string;
183
+ studentId: string;
184
+ updatedAt: string;
185
+ }
186
+ /**
187
+ * Expense represents outgoing payments and school expenditure tracking
188
+ */
189
+ interface ExpenseBE {
190
+ amount: number;
191
+ approvedBy: string | null;
192
+ attachments: string[];
193
+ category: EXPENSE_CATEGORY;
194
+ createdAt: string;
195
+ description: string | null;
196
+ enabled: boolean;
197
+ expenseDate: Date | string;
198
+ id: string;
199
+ invoiceNumber: string | null;
200
+ paidBy: string | null;
201
+ paymentDate: Date | string | null;
202
+ paymentMethod: PAYMENT_METHOD | null;
203
+ receiptNumber: string | null;
204
+ remarks: string | null;
205
+ schoolId: string;
206
+ status: EXPENSE_STATUS;
207
+ title: string;
208
+ transactionId: string | null;
209
+ updatedAt: string;
210
+ vendorContact: string | null;
211
+ vendorName: string | null;
212
+ school?: SchoolBE;
213
+ }
214
+
215
+ /**
216
+ * TypeScript Types Generated from Prisma Schema - Communication
217
+ *
218
+ * This file contains TypeScript interfaces for campaigns, blog posts,
219
+ * referrals, push tokens, mobile notifications, and notification preferences.
220
+ */
221
+
222
+ /**
223
+ * Individual recipient within a broadcast campaign
224
+ */
225
+ interface CampaignContactBE {
226
+ campaignId: string;
227
+ createdAt: string;
228
+ errorMessage: string | null;
229
+ id: string;
230
+ name: string;
231
+ phoneNumber: string;
232
+ sentAt: string | null;
233
+ status: CAMPAIGN_CONTACT_STATUS;
234
+ updatedAt: string;
235
+ }
236
+ /**
237
+ * WhatsApp broadcast campaign
238
+ */
239
+ interface CampaignBE {
240
+ createdAt: string;
241
+ enabled: boolean;
242
+ id: string;
243
+ messageTemplate: string;
244
+ name: string;
245
+ schoolId: string;
246
+ status: CAMPAIGN_STATUS;
247
+ updatedAt: string;
248
+ workerJobId: string | null;
249
+ contacts?: CampaignContactBE[];
250
+ _count?: {
251
+ contacts: number;
252
+ };
253
+ school?: SchoolBE;
254
+ }
255
+ /**
256
+ * BlogPost metadata and content (MDX/Markdown stored in `content`).
257
+ */
258
+ interface BlogPostBE {
259
+ authorId: string | null;
260
+ clapCount: number;
261
+ commentCount: number;
262
+ content: string;
263
+ createdAt: string;
264
+ enabled: boolean;
265
+ excerpt: string | null;
266
+ id: string;
267
+ publishedAt: Date | string | null;
268
+ schoolId: string | null;
269
+ slug: string;
270
+ title: string;
271
+ updatedAt: string;
272
+ author?: UserBE;
273
+ claps?: BlogPostClapBE[];
274
+ comments?: BlogCommentBE[];
275
+ school?: SchoolBE | null;
276
+ }
277
+ interface BlogCommentBE {
278
+ authorId: string | null;
279
+ clapCount: number;
280
+ content: string;
281
+ createdAt: string;
282
+ enabled: boolean;
283
+ id: string;
284
+ parentId: string | null;
285
+ postId: string;
286
+ updatedAt: string;
287
+ author?: UserBE | null;
288
+ claps?: BlogCommentClapBE[];
289
+ parent?: BlogCommentBE | null;
290
+ post?: BlogPostBE;
291
+ replies?: BlogCommentBE[];
292
+ }
293
+ interface BlogPostClapBE {
294
+ createdAt: string;
295
+ id: string;
296
+ postId: string;
297
+ sessionId: string | null;
298
+ userId: string | null;
299
+ post?: BlogPostBE;
300
+ user?: UserBE | null;
301
+ }
302
+ interface BlogCommentClapBE {
303
+ commentId: string;
304
+ createdAt: string;
305
+ id: string;
306
+ sessionId: string | null;
307
+ userId: string | null;
308
+ comment?: BlogCommentBE;
309
+ user?: UserBE | null;
310
+ }
311
+ /**
312
+ * A referral invite sent by a school user to encourage another school to join the platform
313
+ */
314
+ interface ReferralBE {
315
+ channel: REFERRAL_CHANNEL;
316
+ createdAt: string;
317
+ enabled: boolean;
318
+ errorMessage: string | null;
319
+ id: string;
320
+ inviterUserId: string;
321
+ personalNote: string | null;
322
+ recipientEmail: string | null;
323
+ recipientName: string | null;
324
+ recipientPhone: string | null;
325
+ schoolId: string;
326
+ sentAt: string | null;
327
+ status: REFERRAL_STATUS;
328
+ updatedAt: string;
329
+ workerJobId: string | null;
330
+ school?: SchoolBE;
331
+ }
332
+ /**
333
+ * Expo push token registered by a mobile device for a specific user
334
+ */
335
+ interface UserPushTokenBE {
336
+ appVersion: string | null;
337
+ createdAt: string;
338
+ deviceId: string | null;
339
+ id: string;
340
+ platform: DEVICE_PLATFORM;
341
+ pushToken: string;
342
+ updatedAt: string;
343
+ userId: string;
344
+ user?: UserBE;
345
+ }
346
+ /**
347
+ * Push notification delivered to a mobile user
348
+ */
349
+ interface MobileNotificationBE {
350
+ archived: boolean;
351
+ body: string;
352
+ createdAt: string;
353
+ data: Record<string, unknown> | null;
354
+ id: string;
355
+ read: boolean;
356
+ title: string;
357
+ type: NOTIFICATION_TYPE;
358
+ updatedAt: string;
359
+ userId: string;
360
+ user?: UserBE;
361
+ }
362
+ /**
363
+ * Per-user notification category and channel preferences
364
+ */
365
+ interface NotificationPreferenceBE {
366
+ alertEnabled: boolean;
367
+ assignmentEnabled: boolean;
368
+ attendanceEnabled: boolean;
369
+ createdAt: string;
370
+ emailEnabled: boolean;
371
+ generalEnabled: boolean;
372
+ id: string;
373
+ paymentEnabled: boolean;
374
+ pushEnabled: boolean;
375
+ updatedAt: string;
376
+ userId: string;
377
+ user?: UserBE;
378
+ }
379
+
380
+ /**
381
+ * TypeScript Types Generated from Prisma Schema - User Management
382
+ *
383
+ * This file contains TypeScript interfaces for user, workspace, role,
384
+ * permission, plan, school, and campus domain models.
385
+ */
386
+
387
+ /**
388
+ * Subscription plan defining usage limits and features for workspaces
389
+ */
390
+ interface PlanBE {
391
+ createdAt: string;
392
+ currency: CURRENCY;
393
+ enabled: boolean;
394
+ id: string;
395
+ maxClasses: number;
396
+ maxCourses: number;
397
+ maxFamilies: number;
398
+ maxStaffAccounts: number;
399
+ maxStudents: number;
400
+ maxTeachers: number;
401
+ name: string;
402
+ priceMonthly: number;
403
+ priceYearly: number;
404
+ storageLimitMB: number;
405
+ type: PLAN_TYPE;
406
+ updatedAt: string;
407
+ workspaces?: WorkspaceBE[];
408
+ }
409
+ /**
410
+ * Workspace represents a tenant in the multi-vendor system
411
+ * Each workspace has exactly ONE school (1:1 relationship)
412
+ */
413
+ interface WorkspaceBE {
414
+ agreedCurrency: CURRENCY;
415
+ agreedPrice: number;
416
+ billingDate: number;
417
+ billingInterval: BILLING_INTERVAL;
418
+ classesCount: number;
419
+ coursesCount: number;
420
+ createdAt: string;
421
+ description: string | null;
422
+ dueDateLength: number;
423
+ enabled: boolean;
424
+ familiesCount: number;
425
+ id: string;
426
+ logo: string | null;
427
+ name: string;
428
+ planEndDate: Date | string | null;
429
+ planId: string | null;
430
+ planStartDate: Date | string | null;
431
+ secrets?: any | null;
432
+ staffAccountsCount: number;
433
+ storageUsedMB: number;
434
+ studentsCount: number;
435
+ subdomain: string;
436
+ teachersCount: number;
437
+ updatedAt: string;
438
+ customRoles?: RoleBE[];
439
+ plan?: PlanBE;
440
+ rolePermissions?: RolePermissionBE[];
441
+ school?: SchoolBE;
442
+ users?: WorkspaceUserBE[];
443
+ }
444
+ /**
445
+ * Join table managing user-workspace relationships and roles
446
+ * Allows users to belong to multiple workspaces with different roles
447
+ */
448
+ interface WorkspaceUserBE {
449
+ createdAt: string;
450
+ enabled: boolean;
451
+ id: string;
452
+ roleId: string | null;
453
+ updatedAt: string;
454
+ userId: string;
455
+ workspaceId: string;
456
+ role?: RoleBE;
457
+ user?: UserBE;
458
+ workspace?: WorkspaceBE;
459
+ workspaceUserPermissions?: WorkspaceUserPermissionBE[];
460
+ }
461
+ /**
462
+ * Role defines a named set of default permissions.
463
+ * System roles (isSystem = true) are seeded once and map 1:1 with UserRole enum values.
464
+ * Workspace custom roles (isSystem = false, workspaceId set) are created by SCHOOL_ADMINs.
465
+ */
466
+ interface RoleBE {
467
+ createdAt: string;
468
+ description: string | null;
469
+ id: string;
470
+ isSystem: boolean;
471
+ name: string;
472
+ updatedAt: string;
473
+ userRole: USER_ROLE | null;
474
+ workspaceId: string | null;
475
+ rolePermissions?: RolePermissionBE[];
476
+ workspace?: WorkspaceBE;
477
+ workspaceUsers?: WorkspaceBE[];
478
+ }
479
+ /**
480
+ * Permission describes a module-level capability and access level (e.g., 'courses', READ/READ_WRITE).
481
+ */
482
+ interface PermissionBE {
483
+ access: ACCESS_LEVEL;
484
+ createdAt: string;
485
+ description: string | null;
486
+ id: string;
487
+ module: string;
488
+ updatedAt: string;
489
+ rolePermissions?: RolePermissionBE[];
490
+ workspaceUserPermissions?: WorkspaceUserPermissionBE[];
491
+ }
492
+ /**
493
+ * RolePermission links a Permission to a Role, with an optional workspace scope.
494
+ * workspaceId IS NULL → global default grant for the role (seeded by system)
495
+ * workspaceId IS SET → workspace-level override set by SCHOOL_ADMIN for their workspace
496
+ * allowed = true → explicitly grant the permission
497
+ * allowed = false → explicitly deny/revoke the permission (overrides the global default)
498
+ */
499
+ interface RolePermissionBE {
500
+ allowed: boolean;
501
+ createdAt: string;
502
+ id: string;
503
+ permissionId: string;
504
+ roleId: string;
505
+ updatedAt: string;
506
+ workspaceId: string | null;
507
+ permission?: PermissionBE;
508
+ role?: RoleBE;
509
+ workspace?: WorkspaceBE;
510
+ }
511
+ /**
512
+ * WorkspaceUserPermission is a per-user override for a given Permission within a workspace.
513
+ * allowed indicates explicit allow (true) or deny (false); overrides take precedence over role grants.
514
+ */
515
+ interface WorkspaceUserPermissionBE {
516
+ allowed: boolean;
517
+ createdAt: string;
518
+ id: string;
519
+ permissionId: string;
520
+ updatedAt: string;
521
+ workspaceUserId: string;
522
+ permission?: PermissionBE;
523
+ workspaceUser?: WorkspaceUserBE;
524
+ }
525
+ /**
526
+ * School represents an individual educational institution
527
+ * Has a 1:1 relationship with Workspace (each school is a separate tenant)
528
+ */
529
+ interface SchoolBE {
530
+ address: string | null;
531
+ city: string | null;
532
+ code: string;
533
+ country: string | null;
534
+ createdAt: string;
535
+ currency: CURRENCY;
536
+ email: string | null;
537
+ enabled: boolean;
538
+ id: string;
539
+ logo: string | null;
540
+ name: string;
541
+ phone: string | null;
542
+ postalCode: string | null;
543
+ principalId: string | null;
544
+ state: string | null;
545
+ updatedAt: string;
546
+ website: string | null;
547
+ workspaceId: string;
548
+ attendances?: AttendanceBE[];
549
+ blogPosts?: BlogPostBE[];
550
+ classes?: ClassBE[];
551
+ courses?: CourseBE[];
552
+ expenses?: ExpenseBE[];
553
+ families?: FamilyBE[];
554
+ feeStructures?: FeeStructureBE[];
555
+ discountCodes?: DiscountCodeBE[];
556
+ grades?: GradeBE[];
557
+ schedules?: ScheduleBE[];
558
+ sections?: SectionBE[];
559
+ admissions?: AdmissionBE[];
560
+ studentFees?: StudentFeeBE[];
561
+ subjects?: SubjectBE[];
562
+ teachers?: TeacherBE[];
563
+ workspace?: WorkspaceBE;
564
+ }
565
+ /**
566
+ * Core user model synchronized with Supabase Auth
567
+ * Shared by entire family - parents and students use same login
568
+ */
569
+ interface UserBE {
570
+ avatar: string | null;
571
+ createdAt: string;
572
+ email: string;
573
+ enabled: boolean;
574
+ id: string;
575
+ name: string | null;
576
+ phone: string | null;
577
+ updatedAt: string;
578
+ blogCommentClaps?: BlogCommentClapBE[];
579
+ blogComments?: BlogCommentBE[];
580
+ blogPostClaps?: BlogPostClapBE[];
581
+ blogPosts?: BlogPostBE[];
582
+ mobileNotifications?: MobileNotificationBE[];
583
+ notificationPreference?: NotificationPreferenceBE;
584
+ pushTokens?: UserPushTokenBE[];
585
+ teacherProfile?: TeacherBE;
586
+ workspaces?: WorkspaceUserBE[];
587
+ }
588
+ /**
589
+ * Campus represents a physical branch/location of a school
590
+ */
591
+ interface CampusBE {
592
+ address: string | null;
593
+ campusId?: string | null;
594
+ city: string | null;
595
+ code: string;
596
+ country: string | null;
597
+ createdAt: string;
598
+ enabled: boolean;
599
+ id: string;
600
+ name: string;
601
+ phone: string | null;
602
+ schoolId: string;
603
+ state: string | null;
604
+ updatedAt: string;
605
+ school?: SchoolBE;
606
+ _count?: {
607
+ classes: number;
608
+ teachers: number;
609
+ studentProfiles: number;
610
+ };
611
+ }
612
+
613
+ /**
614
+ * TypeScript Types Generated from Prisma Schema - Academics
615
+ *
616
+ * This file contains TypeScript interfaces for class, section, subject, course,
617
+ * teacher, enrollment, attendance, grade, schedule, student profile, family,
618
+ * and family member domain models.
619
+ */
620
+
621
+ /**
622
+ * Family represents a household sharing a single user account
623
+ * Contains parents and students using the same login credentials
624
+ */
625
+ interface FamilyBE {
626
+ address: string | null;
627
+ city: string | null;
628
+ country: string | null;
629
+ createdAt: string;
630
+ enabled: boolean;
631
+ familyCode: string;
632
+ id: string;
633
+ postalCode: string | null;
634
+ schoolId: string;
635
+ state: string | null;
636
+ updatedAt: string;
637
+ members?: FamilyMemberBE[];
638
+ school?: SchoolBE;
639
+ studentFees?: StudentFeeBE[];
640
+ }
641
+ /**
642
+ * FamilyMember represents individuals within a family
643
+ * Multiple members (parents + students) share the family's user account
644
+ */
645
+ interface FamilyMemberBE {
646
+ avatar: string | null;
647
+ bloodGroup: string | null;
648
+ createdAt: string;
649
+ dateOfBirth: Date | string | null;
650
+ email: string | null;
651
+ emergencyPhone: string | null;
652
+ enabled: boolean;
653
+ familyId: string;
654
+ firstName: string;
655
+ gender: GENDER;
656
+ id: string;
657
+ idNumber: string;
658
+ isPrimary: boolean;
659
+ lastName: string;
660
+ occupation: string | null;
661
+ organization: string | null;
662
+ phone: string | null;
663
+ relationship: string;
664
+ role: FAMILY_MEMBER_ROLE;
665
+ updatedAt: string;
666
+ family?: FamilyBE;
667
+ studentProfile?: StudentProfileBE;
668
+ }
669
+ /**
670
+ * StudentProfile extends FamilyMember with student-specific data
671
+ */
672
+ interface StudentProfileBE {
673
+ campusId: string | null;
674
+ computerNumber: string;
675
+ createdAt: string;
676
+ discountCodeId: string | null;
677
+ enabled: boolean;
678
+ familyMemberId: string;
679
+ hafiz: boolean;
680
+ id: string;
681
+ notes: string | null;
682
+ orphan: boolean;
683
+ previousSchool: string | null;
684
+ remarks: string | null;
685
+ schoolId: string;
686
+ status: STUDENT_STATUS;
687
+ studentCode: string;
688
+ updatedAt: string;
689
+ attendances?: AttendanceBE[];
690
+ campus?: CampusBE;
691
+ enrollments?: EnrollmentBE[];
692
+ familyMember?: FamilyMemberBE;
693
+ grades?: GradeBE[];
694
+ studentFees?: StudentFeeBE[];
695
+ }
696
+ /**
697
+ * Class represents grade levels (e.g., Grade 1, Grade 2, Grade 10)
698
+ */
699
+ interface ClassBE {
700
+ campusId: string | null;
701
+ code: string;
702
+ createdAt: string;
703
+ description: string | null;
704
+ enabled: boolean;
705
+ id: string;
706
+ name: string;
707
+ schoolId: string;
708
+ updatedAt: string;
709
+ campus?: CampusBE;
710
+ feeStructures?: FeeStructureBE[];
711
+ school?: SchoolBE;
712
+ sections?: SectionBE[];
713
+ }
714
+ /**
715
+ * Section represents a named division within a school (school-wide pool).
716
+ */
717
+ interface SectionBE {
718
+ capacity: number | null;
719
+ createdAt: string;
720
+ enabled: boolean;
721
+ id: string;
722
+ name: string;
723
+ schoolId: string;
724
+ updatedAt: string;
725
+ class?: ClassBE;
726
+ courses?: CourseBE[];
727
+ enrollments?: EnrollmentBE[];
728
+ school?: SchoolBE;
729
+ }
730
+ /**
731
+ * Subject represents academic subjects (e.g., Mathematics, English, Science)
732
+ */
733
+ interface SubjectBE {
734
+ code: string;
735
+ createdAt: string;
736
+ description: string | null;
737
+ enabled: boolean;
738
+ id: string;
739
+ name: string;
740
+ schoolId: string;
741
+ updatedAt: string;
742
+ courses?: CourseBE[];
743
+ school?: SchoolBE;
744
+ }
745
+ /**
746
+ * Course represents a subject taught in a specific section by a teacher
747
+ */
748
+ interface CourseBE {
749
+ classId: string;
750
+ code: string;
751
+ createdAt: string;
752
+ enabled: boolean;
753
+ id: string;
754
+ schoolId: string;
755
+ sectionId: string;
756
+ subjectId: string;
757
+ teacherId: string;
758
+ updatedAt: Date;
759
+ class?: ClassBE;
760
+ grades?: GradeBE[];
761
+ schedules?: ScheduleBE[];
762
+ school?: SchoolBE;
763
+ section?: SectionBE;
764
+ subject?: SubjectBE;
765
+ teacher?: TeacherBE;
766
+ }
767
+ /**
768
+ * Teacher represents teaching staff
769
+ */
770
+ interface TeacherBE {
771
+ address: string | null;
772
+ avatar: string | null;
773
+ bio: string | null;
774
+ campusId: string | null;
775
+ city: string | null;
776
+ country: string | null;
777
+ createdAt: string;
778
+ dateOfBirth: Date | string | null;
779
+ emergencyPhone: string | null;
780
+ enabled: boolean;
781
+ experience: number | null;
782
+ firstName: string;
783
+ gender: GENDER | null;
784
+ id: string;
785
+ joiningDate: Date | string;
786
+ lastName: string;
787
+ phone: string | null;
788
+ postalCode: string | null;
789
+ qualification: string | null;
790
+ schoolId: string;
791
+ specialization: string | null;
792
+ state: string | null;
793
+ teacherCode: string;
794
+ updatedAt: Date;
795
+ userId: string | null;
796
+ campus?: CampusBE;
797
+ courses?: CourseBE[];
798
+ school?: SchoolBE;
799
+ user?: UserBE | null;
800
+ }
801
+ /**
802
+ * Enrollment represents a student enrolled in a section.
803
+ * All courses taught in that section are implied.
804
+ */
805
+ interface EnrollmentBE {
806
+ createdAt: string;
807
+ enabled: boolean;
808
+ enrollmentDate: Date | string;
809
+ id: string;
810
+ classId: string;
811
+ sectionId: string;
812
+ studentProfileId: string;
813
+ updatedAt: string;
814
+ class?: ClassBE;
815
+ grades?: GradeBE[];
816
+ section?: SectionBE;
817
+ studentProfile?: StudentProfileBE;
818
+ }
819
+ /**
820
+ * Attendance tracks daily student presence in courses
821
+ */
822
+ interface AttendanceBE {
823
+ createdAt: string;
824
+ date: Date | string;
825
+ enabled: boolean;
826
+ id: string;
827
+ remarks: string | null;
828
+ schoolId: string;
829
+ status: ATTENDANCE_STATUS;
830
+ studentProfileId: string;
831
+ updatedAt: string;
832
+ school?: SchoolBE;
833
+ studentProfile?: StudentProfileBE;
834
+ }
835
+ /**
836
+ * Grade represents student assessment results
837
+ */
838
+ interface GradeBE {
839
+ assessmentDate: Date | string;
840
+ courseId: string;
841
+ createdAt: Date;
842
+ enabled: boolean;
843
+ enrollmentId: string;
844
+ grade: string | null;
845
+ gradeType: GRADE_TYPE;
846
+ id: string;
847
+ marksObtained: number;
848
+ maxMarks: number;
849
+ percentage: number | null;
850
+ remarks: string | null;
851
+ schoolId: string;
852
+ studentProfileId: string;
853
+ title: string;
854
+ updatedAt: Date;
855
+ course?: CourseBE;
856
+ enrollment?: EnrollmentBE;
857
+ school?: SchoolBE;
858
+ studentProfile?: StudentProfileBE;
859
+ }
860
+ /**
861
+ * Schedule represents class timetable
862
+ */
863
+ interface ScheduleBE {
864
+ courseId: string;
865
+ createdAt: string;
866
+ dayOfWeek: DAY_OF_WEEK;
867
+ enabled: boolean;
868
+ endTime: string;
869
+ id: string;
870
+ room: string | null;
871
+ schoolId: string;
872
+ startTime: string;
873
+ updatedAt: string;
874
+ course?: CourseBE;
875
+ school?: SchoolBE;
876
+ }
877
+
878
+ export type { AttendanceBE as A, AdmissionAIBE, AdmissionBE, AdmissionDetails, BlogCommentBE as B, CampaignBE as C, DiscountCodeBE as D, ExpenseBE as E, FeeAgentActivityBE as F, FatherDetails, GradeBE as G, HomeDetails, MobileNotificationBE as M, MotherDetails, NotificationPreferenceBE as N, OfficeUse, PermissionBE as P, ReferralBE as R, StudentFeeBE as S, StudentDetails, TeacherBE as T, UserPushTokenBE as U, WorkspaceBE as W, FeeConversationBE as a, FeeStructureBE as b, BlogCommentClapBE as c, BlogPostBE as d, BlogPostClapBE as e, CampaignContactBE as f, CampusBE as g, PlanBE as h, RoleBE as i, RolePermissionBE as j, SchoolBE as k, UserBE as l, WorkspaceUserBE as m, WorkspaceUserPermissionBE as n, ClassBE as o, CourseBE as p, EnrollmentBE as q, FamilyBE as r, FamilyMemberBE as s, ScheduleBE as t, SectionBE as u, StudentProfileBE as v, SubjectBE as w };