procbay-schema 1.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 (280) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +189 -0
  3. package/package.json +77 -0
  4. package/prisma/.env +13 -0
  5. package/prisma/migrations/20250116142512_init_user_table/migration.sql +38 -0
  6. package/prisma/migrations/20250116142709_init_role_table/migration.sql +20 -0
  7. package/prisma/migrations/20250116143847_init_user_role_table/migration.sql +20 -0
  8. package/prisma/migrations/20250116144035_init_permission_table/migration.sql +21 -0
  9. package/prisma/migrations/20250116144140_init_role_permission_table/migration.sql +21 -0
  10. package/prisma/migrations/20250116144233_init_department_table/migration.sql +20 -0
  11. package/prisma/migrations/20250116144345_init_user_department_table/migration.sql +20 -0
  12. package/prisma/migrations/20250116152941_init_serial_number_table/migration.sql +17 -0
  13. package/prisma/migrations/20250116153048_init_category_table/migration.sql +22 -0
  14. package/prisma/migrations/20250116153415_init_attributes_table/migration.sql +28 -0
  15. package/prisma/migrations/20250116153628_init_attribute_values_table/migration.sql +27 -0
  16. package/prisma/migrations/20250116153900_init_purchase_intake_table/migration.sql +32 -0
  17. package/prisma/migrations/20250116154038_init_purchase_intake_item_table/migration.sql +15 -0
  18. package/prisma/migrations/20250120090355_added_reset_token_column_in_user_table/migration.sql +10 -0
  19. package/prisma/migrations/20250120100616_init_item_table/migration.sql +42 -0
  20. package/prisma/migrations/20250120123720_init_vendor_table/migration.sql +39 -0
  21. package/prisma/migrations/20250120124526_init_vendor_categories_table/migration.sql +20 -0
  22. package/prisma/migrations/20250122114935_added_email_template_and_smtp_config_table/migration.sql +41 -0
  23. package/prisma/migrations/20250123095637_chnages_in_vendr_table/migration.sql +3 -0
  24. package/prisma/migrations/20250123103705_added_delated_filed_in_email_template_table/migration.sql +4 -0
  25. package/prisma/migrations/20250123103810_added_delated_filed_in_smtp_config_table/migration.sql +13 -0
  26. package/prisma/migrations/20250127123900_create_approval_heirarchy_table/migration.sql +72 -0
  27. package/prisma/migrations/20250128054523_make_optional_role_and_user_in_approval_hierachy/migration.sql +3 -0
  28. package/prisma/migrations/20250129084223_item_table_chnages/migration.sql +151 -0
  29. package/prisma/migrations/20250130115331_chnages_in_item_table/migration.sql +9 -0
  30. package/prisma/migrations/20250131054132_added_approval_journey_table/migration.sql +22 -0
  31. package/prisma/migrations/20250131064653_added_default_for_product_id_in_item_table/migration.sql +2 -0
  32. package/prisma/migrations/20250204101253_chnages_in_approval_table/migration.sql +39 -0
  33. package/prisma/migrations/20250206091422_added_item_document_table/migration.sql +17 -0
  34. package/prisma/migrations/20250207113110_added_new_column_media/migration.sql +9 -0
  35. package/prisma/migrations/20250207125224_added_chnages_in_pr_table/migration.sql +12 -0
  36. package/prisma/migrations/20250212092048_vendor_contact_table/migration.sql +30 -0
  37. package/prisma/migrations/20250212133620_added_tamplate_master_table/migration.sql +43 -0
  38. package/prisma/migrations/20250213111908_created_faq_catgory_and_faq_table/migration.sql +58 -0
  39. package/prisma/migrations/20250214065142_chnages_in_uom_table/migration.sql +50 -0
  40. package/prisma/migrations/20250217061122_corrected_email_teamplate_table/migration.sql +11 -0
  41. package/prisma/migrations/20250218073530_init_events/migration.sql +120 -0
  42. package/prisma/migrations/20250218092119_corrected_table_name/migration.sql +37 -0
  43. package/prisma/migrations/20250218120935_chnages_in_event_table/migration.sql +5 -0
  44. package/prisma/migrations/20250219083326_added_new_table_for_event_startegy/migration.sql +60 -0
  45. package/prisma/migrations/20250219083416_added_cms_table/migration.sql +29 -0
  46. package/prisma/migrations/20250219092918_alter_event_table/migration.sql +5 -0
  47. package/prisma/migrations/20250219093046_alter_event_to_draft/migration.sql +2 -0
  48. package/prisma/migrations/20250220080337_altered_event_table/migration.sql +9 -0
  49. package/prisma/migrations/20250221105922_added_unique_to_email_in_user_table/migration.sql +8 -0
  50. package/prisma/migrations/20250225063838_created_vendor_kyc_table/migration.sql +23 -0
  51. package/prisma/migrations/20250227060646_template_field_types_added_enum/migration.sql +14 -0
  52. package/prisma/migrations/20250227110306_updated_event_items_and_event_vendor_table/migration.sql +7 -0
  53. package/prisma/migrations/20250228060440_added_country_code_in_vendor_contact_person/migration.sql +2 -0
  54. package/prisma/migrations/20250228095319_init_currencies_table/migration.sql +23 -0
  55. package/prisma/migrations/20250303082614_added_support_ticket_table/migration.sql +89 -0
  56. package/prisma/migrations/20250304050248_alter_support_ticket_relations/migration.sql +35 -0
  57. package/prisma/migrations/20250304050613_alter_support_ticket_realtions/migration.sql +36 -0
  58. package/prisma/migrations/20250304061954_init_support_category_table/migration.sql +261 -0
  59. package/prisma/migrations/20250304092346_alter_event_vendor_table/migration.sql +2 -0
  60. package/prisma/migrations/20250305065430_alter_vendor_kyc_table/migration.sql +2 -0
  61. package/prisma/migrations/20250305111735_alter_vendor_and_user_table/migration.sql +5 -0
  62. package/prisma/migrations/20250307033751_alter_token_version_in_user_and_vendor_token/migration.sql +5 -0
  63. package/prisma/migrations/20250307034907_alter_user_and_vendor_table/migration.sql +14 -0
  64. package/prisma/migrations/20250307064359_chnages_in_approval_herarcy_table/migration.sql +2 -0
  65. package/prisma/migrations/20250307105352_alter_itme_and_vendorkyc_table/migration.sql +21 -0
  66. package/prisma/migrations/20250310103914_init_vendor_status_table/migration.sql +21 -0
  67. package/prisma/migrations/20250310105209_alter_vendor_status_table/migration.sql +18 -0
  68. package/prisma/migrations/20250310105413_init_vendor_kyc_status_table/migration.sql +23 -0
  69. package/prisma/migrations/20250311090552_alter_vendor_kyc_status_table/migration.sql +2 -0
  70. package/prisma/migrations/20250312055258_alter_status_column_in_event_vendors/migration.sql +12 -0
  71. package/prisma/migrations/20250312072145_init_vendor_event_watchlist_table/migration.sql +26 -0
  72. package/prisma/migrations/20250312083842_alter_vendor_event_watchlisst_table/migration.sql +41 -0
  73. package/prisma/migrations/20250312134730_added_chnages_in_kyc_table/migration.sql +19 -0
  74. package/prisma/migrations/20250317040841_init_admin_and_vendor_tables/migration.sql +38 -0
  75. package/prisma/migrations/20250317044110_alter_event_vendor_table/migration.sql +2 -0
  76. package/prisma/migrations/20250317071807_alter_rejected_reason_in_approval_journey_and_purchase_intak_table/migration.sql +5 -0
  77. package/prisma/migrations/20250318085504_init_customer_notification_table/migration.sql +31 -0
  78. package/prisma/migrations/20250318085856_alter_purchase_intake_table/migration.sql +18 -0
  79. package/prisma/migrations/20250319085159_alter_purchase_intake_table/migration.sql +12 -0
  80. package/prisma/migrations/20250320093356_init_bid_and_bidlog_table/migration.sql +75 -0
  81. package/prisma/migrations/20250320095501_alter_email_template_table/migration.sql +2 -0
  82. package/prisma/migrations/20250321053926_alter_approval_journey_table/migration.sql +2 -0
  83. package/prisma/migrations/20250324040851_alter_bidlog_table/migration.sql +2 -0
  84. package/prisma/migrations/20250324091328_init_form_master_and_dynamic_form_table/migration.sql +53 -0
  85. package/prisma/migrations/20250324103742_alter_bidlog_table/migration.sql +5 -0
  86. package/prisma/migrations/20250325052714_alter_form_master_table/migration.sql +27 -0
  87. package/prisma/migrations/20250327011625_init_module_and_tenant_configuration_table/migration.sql +39 -0
  88. package/prisma/migrations/20250403054008_alter_purchase_intake_table/migration.sql +5 -0
  89. package/prisma/migrations/20250404115613_init_approval_level_user/migration.sql +98 -0
  90. package/prisma/migrations/20250410060521_alter_approval_journey_enums/migration.sql +12 -0
  91. package/prisma/migrations/20250410110823_alter_purchase_intake/migration.sql +2 -0
  92. package/prisma/migrations/20250411062955_alter_template_field_table/migration.sql +2 -0
  93. package/prisma/migrations/20250414065640_alter_template/migration.sql +2 -0
  94. package/prisma/migrations/20250414111856_alter_event_vendors/migration.sql +2 -0
  95. package/prisma/migrations/20250414125356_alter_event_vendor/migration.sql +9 -0
  96. package/prisma/migrations/20250415063558_alter_alert_type_enum/migration.sql +2 -0
  97. package/prisma/migrations/20250416062508_alter_purchase_intake_table/migration.sql +15 -0
  98. package/prisma/migrations/20250417090325_alter_purchase_intake_table_updated_enum/migration.sql +13 -0
  99. package/prisma/migrations/20250417111024_alter_purchase_intake_and_purchase_intake_item/migration.sql +16 -0
  100. package/prisma/migrations/20250421061732_init_quotation_and_quotation_log_tables/migration.sql +96 -0
  101. package/prisma/migrations/20250421112331_alter_item_table_added_unique_to_slug/migration.sql +8 -0
  102. package/prisma/migrations/20250422060655_init_user_activity_table/migration.sql +17 -0
  103. package/prisma/migrations/20250423053027_/migration.sql +9 -0
  104. package/prisma/migrations/20250423103233_alter_user_login_activity_table/migration.sql +5 -0
  105. package/prisma/migrations/20250423111141_init_location_tables/migration.sql +141 -0
  106. package/prisma/migrations/20250424120106_alter_event_table_added_user_relation/migration.sql +2 -0
  107. package/prisma/migrations/20250424141637_alter_states_table/migration.sql +11 -0
  108. package/prisma/migrations/20250425105131_alter_user_login_activity_table/migration.sql +9 -0
  109. package/prisma/migrations/20250428092626_alter_location_tables/migration.sql +34 -0
  110. package/prisma/migrations/20250428114301_alter_location_table/migration.sql +14 -0
  111. package/prisma/migrations/20250429103436_alter_event_vendor_table/migration.sql +14 -0
  112. package/prisma/migrations/20250429135621_alter_event_vendor_table/migration.sql +5 -0
  113. package/prisma/migrations/20250430094809_alter_form_master_table_added_user_relation/migration.sql +2 -0
  114. package/prisma/migrations/20250430103440_alter_event_table/migration.sql +3 -0
  115. package/prisma/migrations/20250501125411_alter_strategies_table/migration.sql +2 -0
  116. package/prisma/migrations/20250502065554_init_location_table/migration.sql +41 -0
  117. package/prisma/migrations/20250505104038_alter_bid_quotation_and_dynamic_form/migration.sql +22 -0
  118. package/prisma/migrations/20250505105253_alter_quotation/migration.sql +5 -0
  119. package/prisma/migrations/20250505124851_alter_alert_enum/migration.sql +56 -0
  120. package/prisma/migrations/20250505133250_init_sub_module_table/migration.sql +17 -0
  121. package/prisma/migrations/20250506054325_alter_event_vendor_bid_status/migration.sql +14 -0
  122. package/prisma/migrations/20250506102135_init_counter_offer_table/migration.sql +38 -0
  123. package/prisma/migrations/20250506103355_alter_bid_and_quotaion_table/migration.sql +5 -0
  124. package/prisma/migrations/20250506110309_alter_tenant_configuration_table/migration.sql +3 -0
  125. package/prisma/migrations/20250506123527_alter_vendor_kyu_infor_verification_status/migration.sql +2 -0
  126. package/prisma/migrations/20250507055536_alter_dynamic_form_table/migration.sql +2 -0
  127. package/prisma/migrations/20250507070518_alter_bid_log_and_quotation_log/migration.sql +15 -0
  128. package/prisma/migrations/20250507130834_alter_bid_status/migration.sql +10 -0
  129. package/prisma/migrations/20250508065503_alter_purchase_intake_item_table/migration.sql +16 -0
  130. package/prisma/migrations/20250508130119_alter_purchase_intake_item/migration.sql +13 -0
  131. package/prisma/migrations/20250512082244_altered_template_table_to_add_currency_id/migration.sql +12 -0
  132. package/prisma/migrations/20250512100817_alter_approval_journey_table/migration.sql +3 -0
  133. package/prisma/migrations/20250513083700_alter_item_table/migration.sql +2 -0
  134. package/prisma/migrations/20250514100915_alter_event_table_added_template_realtion/migration.sql +2 -0
  135. package/prisma/migrations/20250514103503_alter_vendor_table_added_is_kyc_approved_column/migration.sql +2 -0
  136. package/prisma/migrations/20250520131556_init_purchase_order_table/migration.sql +52 -0
  137. package/prisma/migrations/20250521113946_alter_purchase_order_status_enum/migration.sql +16 -0
  138. package/prisma/migrations/20250522083917_alter_event_vendor_bid_status_enum/migration.sql +17 -0
  139. package/prisma/migrations/20250522131610_updated_vendor_table/migration.sql +16 -0
  140. package/prisma/migrations/20250523051058_alter_vendor_kyc_verificaiton_status_enum/migration.sql +2 -0
  141. package/prisma/migrations/20250526072120_alter_vendor_table/migration.sql +16 -0
  142. package/prisma/migrations/20250527055351_init_purchase_order_activity_log/migration.sql +41 -0
  143. package/prisma/migrations/20250528060657_alter_item_tale/migration.sql +14 -0
  144. package/prisma/migrations/20250528061946_alter_event_item_table/migration.sql +5 -0
  145. package/prisma/migrations/20250528081337_alter_item_table/migration.sql +2 -0
  146. package/prisma/migrations/20250528081524_removed_item_id_from_item_table/migration.sql +11 -0
  147. package/prisma/migrations/20250528081843_alter_item_table/migration.sql +2 -0
  148. package/prisma/migrations/20250528094057_alter_alert_type_enum/migration.sql +11 -0
  149. package/prisma/migrations/20250529053721_alter_added_quantity_in_purchase_order/migration.sql +2 -0
  150. package/prisma/migrations/20250602055114_alter_approval_journey_parent_id_to_string/migration.sql +2 -0
  151. package/prisma/migrations/20250602055748_alter_event_configuration_added_rule_slug/migration.sql +2 -0
  152. package/prisma/migrations/20250602111042_init_user_vendor_socket_token_table/migration.sql +17 -0
  153. package/prisma/migrations/20250602125833_alter_bidlog_and_quoatationlog_tableto_add_json_field/migration.sql +5 -0
  154. package/prisma/migrations/20250603063501_alter_bid_and_quoatation_table/migration.sql +29 -0
  155. package/prisma/migrations/20250606015045_alter_quotation_log_table/migration.sql +2 -0
  156. package/prisma/migrations/20250606020918_alter_quotation_table/migration.sql +2 -0
  157. package/prisma/migrations/20250606022901_alter_quotation_log_table/migration.sql +3 -0
  158. package/prisma/migrations/20250606054914_init_event_activity_logs_table/migration.sql +35 -0
  159. package/prisma/migrations/20250606100634_alter_added_counter_offer_status/migration.sql +5 -0
  160. package/prisma/migrations/20250606100908_alter_counter_offer_table/migration.sql +2 -0
  161. package/prisma/migrations/20250610055710_alter_enum/migration.sql +16 -0
  162. package/prisma/migrations/20250610060558_alter_event_and_event_vendor_db/migration.sql +14 -0
  163. package/prisma/migrations/20250610091013_alter_purchase_intak_item_table/migration.sql +4 -0
  164. package/prisma/migrations/20250610100156_alter_purchase_intake_item_table/migration.sql +19 -0
  165. package/prisma/migrations/20250610125706_alter_event_table/migration.sql +6 -0
  166. package/prisma/migrations/20250610133613_added_timestamp/migration.sql +319 -0
  167. package/prisma/migrations/20250611090439_init_contact_us_table/migration.sql +23 -0
  168. package/prisma/migrations/20250611121005_alter_event_vendor_table/migration.sql +10 -0
  169. package/prisma/migrations/20250612064335_alter_tenant_configuration/migration.sql +3 -0
  170. package/prisma/migrations/20250612094643_alter_event_vendor_bid_status_enum/migration.sql +2 -0
  171. package/prisma/migrations/20250618074558_alter_updated_bid_status_and_quotation_status/migration.sql +21 -0
  172. package/prisma/migrations/20250618122242_alter_added_event_phase_closed/migration.sql +2 -0
  173. package/prisma/migrations/20250620054518_alter_event_phase/migration.sql +2 -0
  174. package/prisma/migrations/20250620062723_alter_event_phase/migration.sql +2 -0
  175. package/prisma/migrations/20250620063056_alter_event_phase/migration.sql +2 -0
  176. package/prisma/migrations/20250620100507_alter_event_phase/migration.sql +2 -0
  177. package/prisma/migrations/20250627104958_alter_counter_offer_status/migration.sql +2 -0
  178. package/prisma/migrations/20250702095923_alter_item_table/migration.sql +74 -0
  179. package/prisma/migrations/20250702120134_/migration.sql +14 -0
  180. package/prisma/migrations/20250702150717_alter_attribute_table/migration.sql +9 -0
  181. package/prisma/migrations/20250703090321_alter_item_table/migration.sql +2 -0
  182. package/prisma/migrations/20250707054625_alter_purchase_order_table/migration.sql +15 -0
  183. package/prisma/migrations/20250707111354_alter_purchase_order_table_and_init_purchase_order_item_table/migration.sql +39 -0
  184. package/prisma/migrations/20250707111522_alter_purchase_order_item_table/migration.sql +17 -0
  185. package/prisma/migrations/20250710054113_alter_bid_and_quotation_status/migration.sql +31 -0
  186. package/prisma/migrations/20250710070813_alter_event_status/migration.sql +2 -0
  187. package/prisma/migrations/20250710082332_alter_bid_and_quotations_table/migration.sql +36 -0
  188. package/prisma/migrations/20250714102325_init_upload_log_table/migration.sql +27 -0
  189. package/prisma/migrations/20250716061012_alter_event_activity_logs_to_activity_logs/migration.sql +48 -0
  190. package/prisma/migrations/20250716071839_init_chat_thread_chat_message_and_ai_models/migration.sql +56 -0
  191. package/prisma/migrations/20250716135548_alter_admin_alerts_enum/migration.sql +2 -0
  192. package/prisma/migrations/20250717100515_init_user_event_configuration/migration.sql +21 -0
  193. package/prisma/migrations/20250717101037_alter_user_event_configuration_table/migration.sql +19 -0
  194. package/prisma/migrations/20250718071630_alter_added_module_in_upload_logs_table/migration.sql +5 -0
  195. package/prisma/migrations/20250718071732_alter_module_enum/migration.sql +15 -0
  196. package/prisma/migrations/20250721054851_init_export_log_table/migration.sql +34 -0
  197. package/prisma/migrations/20250722054549_init_fiscal_year_table/migration.sql +22 -0
  198. package/prisma/migrations/20250722072051_alter_fiscal_year_table_added_uuid/migration.sql +14 -0
  199. package/prisma/migrations/20250722095259_alter_fiscal_table/migration.sql +9 -0
  200. package/prisma/migrations/20250723071050_alter_department_table/migration.sql +14 -0
  201. package/prisma/migrations/20250724071201_alter_export_upload_log_enum/migration.sql +8 -0
  202. package/prisma/migrations/20250725094759_new_migrate/migration.sql +2 -0
  203. package/prisma/migrations/20250725095012_alter_migration/migration.sql +2 -0
  204. package/prisma/migrations/20250728072402_init_budget_management_tables/migration.sql +80 -0
  205. package/prisma/migrations/migration_lock.toml +3 -0
  206. package/prisma/schema.prisma +2609 -0
  207. package/prisma/seeders/approval-hierarchy.seed.js +340 -0
  208. package/prisma/seeders/attribute-value.seed.js +64 -0
  209. package/prisma/seeders/attribute.seed.js +61 -0
  210. package/prisma/seeders/category.seed.js +133 -0
  211. package/prisma/seeders/city.seed.js +147 -0
  212. package/prisma/seeders/country.seed.js +282 -0
  213. package/prisma/seeders/currency.seed.js +41 -0
  214. package/prisma/seeders/customer-notification.seed.js +83 -0
  215. package/prisma/seeders/department.seed.js +38 -0
  216. package/prisma/seeders/docs/CORE_SEEDER_OPTIMIZATIONS.md +270 -0
  217. package/prisma/seeders/docs/GEOGRAPHIC_PERFORMANCE_OPTIMIZATIONS.md +175 -0
  218. package/prisma/seeders/dynamic-form.seed.js +135 -0
  219. package/prisma/seeders/email-template.seed.js +68 -0
  220. package/prisma/seeders/faq-category.seed.js +56 -0
  221. package/prisma/seeders/faq.seed.js +61 -0
  222. package/prisma/seeders/form-master.seed.js +55 -0
  223. package/prisma/seeders/item.seed.js +133 -0
  224. package/prisma/seeders/permission.seed.js +102 -0
  225. package/prisma/seeders/region.seed.js +78 -0
  226. package/prisma/seeders/role-permission.seed.js +70 -0
  227. package/prisma/seeders/role.seed.js +38 -0
  228. package/prisma/seeders/seed.js +553 -0
  229. package/prisma/seeders/serial-number-config.seed.js +58 -0
  230. package/prisma/seeders/smtp-config.seed.js +61 -0
  231. package/prisma/seeders/state.seed.js +170 -0
  232. package/prisma/seeders/strategies.seed.js +54 -0
  233. package/prisma/seeders/subregion.seed.js +88 -0
  234. package/prisma/seeders/support-category.seed.js +56 -0
  235. package/prisma/seeders/template.seed.js +87 -0
  236. package/prisma/seeders/test-core-seeders.js +276 -0
  237. package/prisma/seeders/user-department.seed.js +66 -0
  238. package/prisma/seeders/user-event-configuration.seed.js +47 -0
  239. package/prisma/seeders/user-role.seed.js +74 -0
  240. package/prisma/seeders/user.seed.js +114 -0
  241. package/prisma/seeders/utils/bulk-seeder.js +300 -0
  242. package/prisma/seeders/utils/config.js +103 -0
  243. package/prisma/seeders/utils/connection-manager.js +380 -0
  244. package/prisma/seeders/utils/content-seeder.js +472 -0
  245. package/prisma/seeders/utils/core-seeder.js +330 -0
  246. package/prisma/seeders/utils/json-loader.js +69 -0
  247. package/prisma/seeders/utils/performance-config.js +341 -0
  248. package/prisma/seeders/utils/performance-helpers.js +206 -0
  249. package/prisma/seeders/utils/progress-tracker.js +364 -0
  250. package/prisma/seeders/utils/seeder-config-mapper.js +316 -0
  251. package/scripts/seed-databases.js +873 -0
  252. package/scripts/sync-schemas.js +865 -0
  253. package/scripts/truncate-tables.js +1048 -0
  254. package/src/prisma/client.d.ts +1 -0
  255. package/src/prisma/client.js +4 -0
  256. package/src/prisma/default.d.ts +1 -0
  257. package/src/prisma/default.js +4 -0
  258. package/src/prisma/edge.d.ts +1 -0
  259. package/src/prisma/edge.js +2084 -0
  260. package/src/prisma/index-browser.js +2043 -0
  261. package/src/prisma/index.d.ts +202051 -0
  262. package/src/prisma/index.js +2113 -0
  263. package/src/prisma/libquery_engine-darwin.dylib.node +0 -0
  264. package/src/prisma/libquery_engine-darwin.dylib.node.tmp24628 +0 -0
  265. package/src/prisma/libquery_engine-darwin.dylib.node.tmp29464 +0 -0
  266. package/src/prisma/libquery_engine-debian-openssl-3.0.x.so.node +0 -0
  267. package/src/prisma/package.json +140 -0
  268. package/src/prisma/query_engine-windows.dll.node +0 -0
  269. package/src/prisma/query_engine-windows.dll.node.tmp4144 +0 -0
  270. package/src/prisma/runtime/edge-esm.js +34 -0
  271. package/src/prisma/runtime/edge.js +34 -0
  272. package/src/prisma/runtime/index-browser.d.ts +370 -0
  273. package/src/prisma/runtime/index-browser.js +16 -0
  274. package/src/prisma/runtime/library.d.ts +3647 -0
  275. package/src/prisma/runtime/library.js +146 -0
  276. package/src/prisma/runtime/react-native.js +83 -0
  277. package/src/prisma/runtime/wasm.js +35 -0
  278. package/src/prisma/schema.prisma +2609 -0
  279. package/src/prisma/wasm.d.ts +1 -0
  280. package/src/prisma/wasm.js +2043 -0
@@ -0,0 +1,147 @@
1
+ import { PrismaClient } from "../../src/prisma/index.js";
2
+ import {
3
+ createProgressTracker,
4
+ logSeederStart,
5
+ logSeederComplete,
6
+ logSeederError,
7
+ logEntityError,
8
+ } from "./utils/progress-tracker.js";
9
+ import { loadGeoData } from "./utils/json-loader.js";
10
+ import { createPerformanceConfig } from "./utils/performance-config.js";
11
+ import { withOptimizedConnection } from "./utils/connection-manager.js";
12
+
13
+ // Process cities in optimized parallel batches with retry logic
14
+ async function processBatch(prisma, batch, countryIdMap, stateIdMap, tracker, retryAttempts = 3) {
15
+ const citiesToCreate = batch
16
+ .map((city) => {
17
+ const countryDbId = city.country_id
18
+ ? countryIdMap.get(city.country_id)
19
+ : null;
20
+ const stateDbId = city.state_id ? stateIdMap.get(city.state_id) : null;
21
+
22
+ // City must have a country. State is optional.
23
+ if (!countryDbId) {
24
+ return null;
25
+ }
26
+
27
+ return {
28
+ name: city.name,
29
+ country_id: countryDbId,
30
+ state_id: stateDbId,
31
+ latitude: city.latitude ? parseFloat(city.latitude) : null,
32
+ longitude: city.longitude ? parseFloat(city.longitude) : null,
33
+ wikiDataId: city.wikiDataId,
34
+ status: true,
35
+ };
36
+ })
37
+ .filter(Boolean); // Filter out nulls for cities with no country match
38
+
39
+ if (citiesToCreate.length === 0) {
40
+ tracker.update(batch.length);
41
+ return { success: true, created: 0 };
42
+ }
43
+
44
+ // Retry logic for database operations
45
+ for (let attempt = 1; attempt <= retryAttempts; attempt++) {
46
+ try {
47
+ const result = await prisma.city.createMany({
48
+ data: citiesToCreate,
49
+ skipDuplicates: true, // Use INSERT ... ON CONFLICT DO NOTHING for performance
50
+ });
51
+ tracker.update(batch.length);
52
+ return { success: true, created: result.count };
53
+ } catch (error) {
54
+ if (attempt === retryAttempts) {
55
+ logEntityError("city batch", `attempt ${attempt}/${retryAttempts}`, error.message);
56
+ tracker.update(batch.length);
57
+ return { success: false, error: error.message };
58
+ }
59
+
60
+ // Wait before retry with exponential backoff
61
+ const delay = Math.min(1000 * Math.pow(2, attempt - 1), 10000);
62
+ await new Promise(resolve => setTimeout(resolve, delay));
63
+ }
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Seeds city data with optional filtering by country IDs
69
+ *
70
+ * @param {PrismaClient} prismaClient - Prisma client instance or transaction
71
+ * @param {Map} countryIdMap - Mapping of country JSON IDs to DB IDs
72
+ * @param {Map} stateIdMap - Mapping of state JSON IDs to DB IDs
73
+ * @param {Set} [filteredCountryIds] - Optional Set of country JSON IDs to filter cities by
74
+ */
75
+ export async function seedCities(
76
+ prismaClient,
77
+ countryIdMap,
78
+ stateIdMap,
79
+ filteredCountryIds = null
80
+ ) {
81
+ const prisma = prismaClient || new PrismaClient();
82
+ logSeederStart("cities");
83
+
84
+ try {
85
+ // Get performance configuration
86
+ const perfConfig = createPerformanceConfig();
87
+ const cityConfig = perfConfig.getConfig('geographic', 'cities');
88
+
89
+ console.log(`Using optimized configuration: batch=${cityConfig.batchSize}, concurrent=${cityConfig.maxConcurrentBatches}`);
90
+
91
+ const citiesData = loadGeoData("cities");
92
+ let filteredCitiesData = citiesData;
93
+
94
+ if (filteredCountryIds && filteredCountryIds.size > 0) {
95
+ filteredCitiesData = citiesData.filter((city) =>
96
+ filteredCountryIds.has(city.country_id)
97
+ );
98
+ console.log(`Filtering cities by ${filteredCountryIds.size} countries`);
99
+ console.log(
100
+ `Found ${filteredCitiesData.length} matching cities out of ${citiesData.length} total`
101
+ );
102
+ }
103
+
104
+ const totalCount = filteredCitiesData.length;
105
+ console.log(
106
+ `Total number of cities to process: ${totalCount.toLocaleString()}`
107
+ );
108
+
109
+ const tracker = createProgressTracker(totalCount, "cities");
110
+
111
+ // Use performance-optimized batch size
112
+ const batchSize = cityConfig.batchSize;
113
+ const maxConcurrentBatches = cityConfig.maxConcurrentBatches;
114
+
115
+ // Process in controlled concurrent batches
116
+ const chunks = [];
117
+ for (let i = 0; i < filteredCitiesData.length; i += batchSize) {
118
+ chunks.push(filteredCitiesData.slice(i, i + batchSize));
119
+ }
120
+
121
+ console.log(`Processing ${chunks.length} chunks with max ${maxConcurrentBatches} concurrent batches`);
122
+
123
+ // Process chunks in controlled batches to avoid overwhelming the database
124
+ for (let i = 0; i < chunks.length; i += maxConcurrentBatches) {
125
+ const currentBatch = chunks.slice(i, i + maxConcurrentBatches);
126
+ const batchPromises = currentBatch.map(chunk =>
127
+ processBatch(prisma, chunk, countryIdMap, stateIdMap, tracker, cityConfig.retryAttempts || 3)
128
+ );
129
+
130
+ await Promise.all(batchPromises);
131
+
132
+ // Memory management: force garbage collection if available
133
+ if (global.gc && chunks.length > 10) {
134
+ global.gc();
135
+ }
136
+ }
137
+
138
+ logSeederComplete(`Cities${filteredCountryIds ? " (filtered)" : ""}`);
139
+ } catch (error) {
140
+ logSeederError("cities", error);
141
+ throw error;
142
+ } finally {
143
+ if (!prismaClient) {
144
+ await prisma.$disconnect();
145
+ }
146
+ }
147
+ }
@@ -0,0 +1,282 @@
1
+ import { PrismaClient } from "../../src/prisma/index.js";
2
+ import { loadGeoData } from "./utils/json-loader.js";
3
+ import {
4
+ createProgressTracker,
5
+ logSeederStart,
6
+ logSeederComplete,
7
+ logSeederError,
8
+ logEntityError,
9
+ } from "./utils/progress-tracker.js";
10
+ import { createPerformanceConfig } from "./utils/performance-config.js";
11
+ import { connectionManager } from "./utils/connection-manager.js";
12
+ import { RetryHandler, MemoryManager } from "./utils/performance-helpers.js";
13
+
14
+ // Map to store JSON ID to database ID mapping
15
+ const countryIdMap = new Map();
16
+
17
+ /**
18
+ * Repopulate country ID mapping after bulk operations
19
+ */
20
+ async function repopulateCountryIdMap(prisma, countriesData, regionIdMap) {
21
+ logSeederStart("Re-populating country ID map");
22
+
23
+ // Get all created countries
24
+ const allCreatedCountries = await prisma.country.findMany({
25
+ select: { id: true, iso3: true, name: true },
26
+ });
27
+
28
+ // Create lookup map by ISO3 code (unique identifier)
29
+ const dbCountryLookup = new Map();
30
+ allCreatedCountries.forEach((country) => {
31
+ dbCountryLookup.set(country.iso3, country.id);
32
+ });
33
+
34
+ // Map JSON IDs to database IDs
35
+ countriesData.forEach((jsonCountry) => {
36
+ const dbId = dbCountryLookup.get(jsonCountry.iso3);
37
+ if (dbId) {
38
+ countryIdMap.set(jsonCountry.id, dbId);
39
+ }
40
+ });
41
+
42
+ logSeederComplete(
43
+ `Country ID map re-populated with ${countryIdMap.size} entries`
44
+ );
45
+ }
46
+
47
+ /**
48
+ * Optimized batch processor using createMany with retry logic and transactions
49
+ */
50
+ async function processBatchOptimized(
51
+ prisma,
52
+ batch,
53
+ regionIdMap,
54
+ subregionIdMap,
55
+ retryHandler
56
+ ) {
57
+ const countriesToCreate = batch
58
+ .map((country) => {
59
+ const regionDbId = country.region_id
60
+ ? regionIdMap.get(country.region_id)
61
+ : null;
62
+ const subregionDbId = country.subregion_id
63
+ ? subregionIdMap.get(country.subregion_id)
64
+ : null;
65
+
66
+ return {
67
+ name: country.name,
68
+ iso3: country.iso3,
69
+ iso2: country.iso2,
70
+ numeric_code: country.numeric_code,
71
+ phonecode: country.phonecode,
72
+ capital: country.capital,
73
+ currency: country.currency,
74
+ currency_name: country.currency_name,
75
+ currency_symbol: country.currency_symbol,
76
+ tld: country.tld,
77
+ native: country.native,
78
+ region: country.region,
79
+ subregion: country.subregion,
80
+ nationality: country.nationality,
81
+ timezones: country.timezones,
82
+ translations: country.translations,
83
+ latitude: country.latitude,
84
+ longitude: country.longitude,
85
+ emoji: country.emoji,
86
+ emojiU: country.emojiU,
87
+ status: true,
88
+ region_id: regionDbId,
89
+ subregion_id: subregionDbId,
90
+ };
91
+ })
92
+ .filter(Boolean);
93
+
94
+ if (countriesToCreate.length === 0) {
95
+ return { success: true, created: 0 };
96
+ }
97
+
98
+ try {
99
+ // Use transaction for batch processing
100
+ const result = await retryHandler.execute(async () => {
101
+ return await prisma.country.createMany({
102
+ data: countriesToCreate,
103
+ skipDuplicates: true,
104
+ });
105
+ }, `Country batch (${countriesToCreate.length} items)`);
106
+
107
+ return { success: true, created: result.count };
108
+ } catch (error) {
109
+ logEntityError("country batch", "N/A", error.message);
110
+ return { success: false, error: error.message };
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Seeds country data with optional filtering by country names
116
+ *
117
+ * @param {PrismaClient} prismaClient - Prisma client instance or transaction
118
+ * @param {Map} regionIdMap - Mapping of region JSON IDs to DB IDs
119
+ * @param {Map} subregionIdMap - Mapping of subregion JSON IDs to DB IDs
120
+ * @param {string[]} [countryNames] - Optional array of country names to seed; if not provided, all countries will be seeded
121
+ * @returns {Map} Mapping of country JSON IDs to DB IDs
122
+ */
123
+ export async function seedCountries(
124
+ prismaClient,
125
+ regionIdMap,
126
+ subregionIdMap,
127
+ countryNames = []
128
+ ) {
129
+ // Use provided transaction object or create a new prisma client
130
+ const prisma = prismaClient || new PrismaClient();
131
+ logSeederStart("countries");
132
+
133
+ try {
134
+ // Load countries data from JSON file using our utility
135
+ const countriesData = loadGeoData("countries");
136
+
137
+ // Filter countries if specific names are provided
138
+ let filteredCountriesData = countriesData;
139
+ if (countryNames && countryNames.length > 0) {
140
+ // Case-insensitive matching of country names
141
+ const normalizedCountryNames = countryNames.map((name) =>
142
+ name.toLowerCase().trim()
143
+ );
144
+
145
+ filteredCountriesData = countriesData.filter((country) =>
146
+ normalizedCountryNames.includes(country.name.toLowerCase().trim())
147
+ );
148
+
149
+ // Log information about the filtering
150
+ console.log(`Filtering countries by name: ${countryNames.join(", ")}`);
151
+ console.log(
152
+ `Found ${filteredCountriesData.length} matching countries out of ${countriesData.length} total`
153
+ );
154
+
155
+ // Check if any requested countries were not found
156
+ const foundCountryNames = filteredCountriesData.map((c) =>
157
+ c.name.toLowerCase().trim()
158
+ );
159
+ const missingCountryNames = normalizedCountryNames.filter(
160
+ (name) => !foundCountryNames.includes(name)
161
+ );
162
+
163
+ if (missingCountryNames.length > 0) {
164
+ console.warn(
165
+ `Warning: Could not find the following requested countries: ${missingCountryNames.join(
166
+ ", "
167
+ )}`
168
+ );
169
+ }
170
+ }
171
+
172
+ // Create progress tracker
173
+ const tracker = createProgressTracker(
174
+ filteredCountriesData.length,
175
+ "countries"
176
+ );
177
+
178
+ // Get performance configuration for countries
179
+ const performanceConfig = createPerformanceConfig().getConfig(
180
+ "geographic",
181
+ "countries"
182
+ );
183
+ const batchSize = performanceConfig.batchSize;
184
+ const retryHandler = new RetryHandler(
185
+ performanceConfig.retryAttempts || 3,
186
+ performanceConfig.retryDelay || 1000
187
+ );
188
+
189
+ // Create an array of batch processing promises
190
+ const batchPromises = [];
191
+
192
+ for (let i = 0; i < filteredCountriesData.length; i += batchSize) {
193
+ const batch = filteredCountriesData.slice(i, i + batchSize);
194
+ batchPromises.push(
195
+ processBatchOptimized(
196
+ prisma,
197
+ batch,
198
+ regionIdMap,
199
+ subregionIdMap,
200
+ retryHandler
201
+ )
202
+ );
203
+ global.gc && global.gc(); // Hint garbage collection after large batches
204
+ }
205
+
206
+ // Log initial memory usage
207
+ MemoryManager.logMemoryUsage("Before country processing");
208
+
209
+ // Execute all batches sequentially to avoid overwhelming the database
210
+ for (let i = 0; i < batchPromises.length; i++) {
211
+ await batchPromises[i];
212
+
213
+ // Keep the batch completion messages but don't interrupt progress bar
214
+ if (i < batchPromises.length - 1) {
215
+ // Don't show for the last batch
216
+ tracker.log(
217
+ `Completed batch ${i + 1}/${batchPromises.length} of countries`,
218
+ "success"
219
+ );
220
+ }
221
+
222
+ // Force garbage collection every 10 batches
223
+ if ((i + 1) % 10 === 0) {
224
+ await MemoryManager.forceGarbageCollectionWithDelay();
225
+ MemoryManager.logMemoryUsage(`After batch ${i + 1}`);
226
+ }
227
+ }
228
+
229
+ // Repopulate country ID map after bulk operations
230
+ await repopulateCountryIdMap(prisma, filteredCountriesData, regionIdMap);
231
+
232
+ // Store full countryData mapping for all countries even if we filtered
233
+ // This allows subsequent state/city seeders to check which countries to seed
234
+ if (countryNames && countryNames.length > 0) {
235
+ // For non-seeded countries, we need to fetch their IDs from the database
236
+ // to properly populate countryIdMap for the state and city seeders
237
+ const nonSeededCountryData = countriesData.filter(
238
+ (country) => !filteredCountriesData.includes(country)
239
+ );
240
+
241
+ if (nonSeededCountryData.length > 0) {
242
+ const existingCountries = await prisma.country.findMany({
243
+ where: {
244
+ iso3: {
245
+ in: nonSeededCountryData.map((c) => c.iso3),
246
+ },
247
+ },
248
+ select: { id: true, iso3: true },
249
+ });
250
+
251
+ // Map existing countries to countryIdMap
252
+ for (const existingCountry of existingCountries) {
253
+ const jsonCountry = nonSeededCountryData.find(
254
+ (c) => c.iso3 === existingCountry.iso3
255
+ );
256
+ if (jsonCountry) {
257
+ countryIdMap.set(jsonCountry.id, existingCountry.id);
258
+ }
259
+ }
260
+ }
261
+ }
262
+
263
+ logSeederComplete("Countries");
264
+
265
+ // Only disconnect if we created our own client
266
+ if (!prismaClient) {
267
+ await prisma.$disconnect();
268
+ }
269
+
270
+ return countryIdMap;
271
+ } catch (error) {
272
+ logSeederError("Countries", error);
273
+
274
+ // Only disconnect if we created our own client
275
+ if (!prismaClient) {
276
+ await prisma.$disconnect();
277
+ }
278
+
279
+ console.error("Error seeding countries:", error);
280
+ throw error;
281
+ }
282
+ }
@@ -0,0 +1,41 @@
1
+ import { PrismaClient } from "../../src/prisma/index.js";
2
+ import { loadCoreData } from "./utils/json-loader.js";
3
+ import { seedCoreEntity } from "./utils/core-seeder.js";
4
+
5
+ export const seedCurrencies = async (prismaClient) => {
6
+ // Use the passed client or create new one only if needed (for standalone testing)
7
+ const prisma = prismaClient || new PrismaClient();
8
+
9
+ try {
10
+ // Load currency data from JSON
11
+ const currencies = loadCoreData("currency");
12
+
13
+ // Process currencies with optimized core seeder
14
+ const result = await seedCoreEntity(
15
+ prisma,
16
+ currencies,
17
+ 'currencies',
18
+ {
19
+ model: 'currency',
20
+ whereField: 'code',
21
+ updateFields: ['name', 'symbol', 'is_active'],
22
+ createFields: ['name', 'code', 'symbol', 'is_active']
23
+ },
24
+ {
25
+ profile: 'stability', // Currencies are critical entities
26
+ enableRetries: true,
27
+ logProgress: true
28
+ }
29
+ );
30
+
31
+ return result;
32
+ } catch (error) {
33
+ console.error(`Failed to seed currencies: ${error.message}`);
34
+ throw error;
35
+ } finally {
36
+ // Only disconnect if we created our own client
37
+ if (!prismaClient) {
38
+ await prisma.$disconnect();
39
+ }
40
+ }
41
+ };
@@ -0,0 +1,83 @@
1
+ import { PrismaClient } from "../../src/prisma/index.js";
2
+ import { loadContentData } from "./utils/json-loader.js";
3
+ import {
4
+ createProgressTracker,
5
+ logSeederStart,
6
+ logSeederComplete,
7
+ logEntityError,
8
+ } from "./utils/progress-tracker.js";
9
+
10
+ export async function seedCustomerNotification(prismaClient) {
11
+ // Use the passed client or create new one only if needed (for standalone testing)
12
+ const prisma = prismaClient || new PrismaClient();
13
+
14
+ logSeederStart("customer notifications");
15
+
16
+ // Load customer notifications from JSON
17
+ const notificationData = loadContentData("customer-notification");
18
+
19
+ // Create progress tracker
20
+ const tracker = createProgressTracker(
21
+ notificationData.length,
22
+ "customer notifications"
23
+ );
24
+
25
+ for (const notification of notificationData) {
26
+ try {
27
+ // Check if the record exists based on unique fields (event + medium)
28
+ const existingNotification = await prisma.customerNotification.findFirst({
29
+ where: {
30
+ event: notification.event,
31
+ medium: notification.medium,
32
+ },
33
+ });
34
+
35
+ if (!existingNotification) {
36
+ // Create if the record does not exist
37
+ await prisma.customerNotification.create({
38
+ data: {
39
+ template_name: notification.template_name,
40
+ title: notification.title,
41
+ event: notification.event,
42
+ medium: notification.medium,
43
+ remark: notification.remark,
44
+ template_slug: notification.template_slug,
45
+ trigger_message: notification.trigger_message,
46
+ is_recurring: notification.is_recurring,
47
+ is_active: notification.is_active,
48
+ created_by: notification.created_by,
49
+ },
50
+ });
51
+
52
+ // Information messages now handled differently - only display if really important
53
+ if (tracker.progress % 5 === 0) {
54
+ // Show info message every 5 items
55
+ tracker.log(
56
+ `Created notification for event: ${notification.event}`,
57
+ "info"
58
+ );
59
+ }
60
+ } else {
61
+ tracker.log(
62
+ `Notification for event ${notification.event} already exists`,
63
+ "info"
64
+ );
65
+ }
66
+ } catch (error) {
67
+ // Log error but don't interrupt progress bar
68
+ logEntityError(
69
+ "customer notification",
70
+ notification.template_name,
71
+ error.message
72
+ );
73
+ }
74
+ tracker.update();
75
+ }
76
+
77
+ logSeederComplete("Customer notifications");
78
+
79
+ // Only disconnect if we created our own client
80
+ if (!prismaClient) {
81
+ await prisma.$disconnect();
82
+ }
83
+ }
@@ -0,0 +1,38 @@
1
+ import { PrismaClient } from "../../src/prisma/index.js";
2
+ import { loadCoreData } from "./utils/json-loader.js";
3
+ import { seedCoreEntity } from "./utils/core-seeder.js";
4
+
5
+ export async function seedDepartments(prismaClient) {
6
+ // Use the passed client or create new one only if needed (for standalone testing)
7
+ const prisma = prismaClient || new PrismaClient();
8
+
9
+ try {
10
+ // Load departments from JSON
11
+ const departmentData = loadCoreData("departments");
12
+
13
+ // Process departments with optimized core seeder
14
+ const result = await seedCoreEntity(
15
+ prisma,
16
+ departmentData,
17
+ 'departments',
18
+ {
19
+ model: 'department',
20
+ whereField: 'department_slug',
21
+ updateFields: ['department_name', 'description', 'is_active'],
22
+ createFields: ['department_name', 'department_slug', 'description', 'is_active']
23
+ },
24
+ {
25
+ profile: 'stability', // Departments are critical entities
26
+ enableRetries: true,
27
+ logProgress: true
28
+ }
29
+ );
30
+
31
+ return result;
32
+ } finally {
33
+ // Only disconnect if we created our own client
34
+ if (!prismaClient) {
35
+ await prisma.$disconnect();
36
+ }
37
+ }
38
+ }