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,340 @@
1
+ import { PrismaClient } from "../../src/prisma/index.js";
2
+ import { loadContentData } from "./utils/json-loader.js";
3
+ import {
4
+ createProgressTracker,
5
+ logEntityError,
6
+ logSeederComplete,
7
+ logSeederStart,
8
+ } from "./utils/progress-tracker.js";
9
+
10
+ export const approvalHierarchy = async (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("approval-hierarchy");
15
+
16
+ // Load approval hierarchy from JSON
17
+ const hierarchyData = loadContentData("approval-hierarchy");
18
+
19
+ /// Create progress tracker
20
+ const tracker = createProgressTracker(
21
+ hierarchyData.length,
22
+ "approval hierarchies"
23
+ );
24
+
25
+ // Get all active users (not deleted and active)
26
+ const activeUsers = await prisma.user.findMany({
27
+ where: {
28
+ is_deleted: false,
29
+ status: "Active",
30
+ },
31
+ });
32
+
33
+ // Create a map of user IDs for quick lookup
34
+ const activeUserMap = new Map();
35
+ activeUsers.forEach((user) => {
36
+ activeUserMap.set(user.id, user);
37
+ });
38
+
39
+ // Make sure we have users to assign as approvers
40
+ if (activeUsers.length === 0) {
41
+ console.warn(
42
+ "No active users found for approval hierarchy. Please ensure users are seeded first."
43
+ );
44
+ }
45
+
46
+ // Get approver IDs from specified IDs or fallback to random selection
47
+ // Returns array of unique user IDs to prevent duplicates
48
+ const getApproverIds = (specifiedIds = [], count = 2) => {
49
+ // If specific IDs are provided and they exist in active users, use them
50
+ if (specifiedIds && specifiedIds.length > 0) {
51
+ // Filter specified IDs to only include active users and ensure uniqueness
52
+ const validApproverIds = [...new Set(specifiedIds)].filter((id) =>
53
+ activeUserMap.has(id)
54
+ );
55
+ if (validApproverIds.length > 0) {
56
+ return validApproverIds;
57
+ }
58
+ }
59
+
60
+ // Fallback to random selection if no valid specified IDs
61
+ const userCount = Math.min(count, activeUsers.length);
62
+ const shuffled = [...activeUsers].sort(() => 0.5 - Math.random());
63
+ const selectedUsers = shuffled.slice(0, userCount);
64
+ return [...new Set(selectedUsers.map((user) => user.id))]; // Ensure uniqueness
65
+ };
66
+
67
+ for (const hierarchy of hierarchyData) {
68
+ try {
69
+ // Track used approvers across all levels in this hierarchy to prevent duplicates
70
+ const usedApproversInHierarchy = new Set();
71
+
72
+ // Check if hierarchy exists
73
+ const existingHierarchy = await prisma.approvalHierarchy.findFirst({
74
+ where: {
75
+ name: hierarchy.name,
76
+ },
77
+ });
78
+
79
+ let hierarchyId;
80
+
81
+ if (!existingHierarchy) {
82
+ // Create approval hierarchy
83
+ const createdHierarchy = await prisma.approvalHierarchy.create({
84
+ data: {
85
+ name: hierarchy.name,
86
+ slug: hierarchy.slug,
87
+ module: hierarchy.module,
88
+ task: hierarchy.task,
89
+ initiator_type: hierarchy.initiator_type,
90
+ roleId: hierarchy.roleId,
91
+ userId: hierarchy.userId,
92
+ is_active: hierarchy.is_active,
93
+ is_deleted: hierarchy.is_deleted,
94
+ created_by: hierarchy.created_by,
95
+ updated_by: hierarchy.updated_by,
96
+ },
97
+ });
98
+
99
+ hierarchyId = createdHierarchy.id;
100
+ } else {
101
+ await prisma.approvalHierarchy.update({
102
+ where: {
103
+ id: existingHierarchy.id,
104
+ },
105
+ data: {
106
+ name: hierarchy.name,
107
+ module: hierarchy.module,
108
+ task: hierarchy.task,
109
+ initiator_type: hierarchy.initiator_type,
110
+ roleId: hierarchy.roleId,
111
+ userId: hierarchy.userId,
112
+ is_active: hierarchy.is_active,
113
+ is_deleted: hierarchy.is_deleted,
114
+ created_by: hierarchy.created_by,
115
+ updated_by: hierarchy.updated_by,
116
+ },
117
+ });
118
+
119
+ hierarchyId = existingHierarchy.id;
120
+ }
121
+
122
+ // Seed approval conditions based on hierarchy
123
+ if (hierarchy.conditions && hierarchy.conditions.length > 0) {
124
+ for (const condition of hierarchy.conditions) {
125
+ const existingCondition = await prisma.approvalCondition.findFirst({
126
+ where: {
127
+ approval_hierarchy_id: hierarchyId,
128
+ conditions: condition.type,
129
+ price_from: condition.price_from,
130
+ price_to: condition.price_to,
131
+ },
132
+ });
133
+
134
+ let conditionId;
135
+
136
+ if (!existingCondition) {
137
+ const createdCondition = await prisma.approvalCondition.create({
138
+ data: {
139
+ approval_hierarchy_id: hierarchyId,
140
+ conditions: condition.type,
141
+ price_from: condition.price_from,
142
+ price_to: condition.price_to,
143
+ },
144
+ });
145
+
146
+ conditionId = createdCondition.id;
147
+ } else {
148
+ await prisma.approvalCondition.update({
149
+ where: {
150
+ id: existingCondition.id,
151
+ },
152
+ data: {
153
+ conditions: condition.type,
154
+ price_from: condition.price_from,
155
+ price_to: condition.price_to,
156
+ },
157
+ });
158
+
159
+ conditionId = existingCondition.id;
160
+ }
161
+
162
+ // Seed approval levels for each condition
163
+ if (condition.levels && condition.levels.length > 0) {
164
+ for (const level of condition.levels) {
165
+ // Track used approvers for this level
166
+ const usedApproversInLevel = new Set();
167
+
168
+ const existingLevel = await prisma.approvalLevel.findFirst({
169
+ where: {
170
+ approval_hierarchy_id: hierarchyId,
171
+ approval_condition_id: conditionId,
172
+ level: level.level,
173
+ },
174
+ });
175
+
176
+ let levelId;
177
+
178
+ if (!existingLevel) {
179
+ const createdLevel = await prisma.approvalLevel.create({
180
+ data: {
181
+ approval_hierarchy_id: hierarchyId,
182
+ approval_condition_id: conditionId,
183
+ level: level.level,
184
+ valid_till_hours: level.valid_till_hours,
185
+ valid_till_minutes: level.valid_till_minutes,
186
+ },
187
+ });
188
+
189
+ levelId = createdLevel.id;
190
+ } else {
191
+ await prisma.approvalLevel.update({
192
+ where: {
193
+ id: existingLevel.id,
194
+ },
195
+ data: {
196
+ approval_hierarchy_id: hierarchyId,
197
+ approval_condition_id: conditionId,
198
+ level: level.level,
199
+ valid_till_hours: level.valid_till_hours,
200
+ valid_till_minutes: level.valid_till_minutes,
201
+ },
202
+ });
203
+
204
+ levelId = existingLevel.id;
205
+ }
206
+
207
+ // Use specified approvers or get random ones if not specified
208
+ const approverIds = getApproverIds(level.approvers, 2);
209
+
210
+ // Delete existing level users if any (to ensure clean state)
211
+ await prisma.approvalLevelUser.deleteMany({
212
+ where: {
213
+ approval_level_id: levelId,
214
+ },
215
+ });
216
+
217
+ // Seed approval level users with active users, checking for duplicates
218
+ for (const approverId of approverIds) {
219
+ // Check if this approver has already been used in this level
220
+ if (!usedApproversInLevel.has(approverId)) {
221
+ await prisma.approvalLevelUser.create({
222
+ data: {
223
+ approval_level_id: levelId,
224
+ approver_id: approverId,
225
+ },
226
+ });
227
+
228
+ // Mark this approver as used in this level
229
+ usedApproversInLevel.add(approverId);
230
+ }
231
+ }
232
+
233
+ // Seed approval level escalations
234
+ if (level.escalations && level.escalations.length > 0) {
235
+ for (const escalation of level.escalations) {
236
+ // Track used approvers for this escalation
237
+ const usedApproversInEscalation = new Set();
238
+
239
+ // Use specified escalation approver or get random one
240
+ const escalationApproverId =
241
+ escalation.escalation_approver_id &&
242
+ activeUserMap.has(escalation.escalation_approver_id)
243
+ ? escalation.escalation_approver_id
244
+ : activeUsers.length > 0
245
+ ? activeUsers[
246
+ Math.floor(Math.random() * activeUsers.length)
247
+ ].id
248
+ : null;
249
+
250
+ if (!escalationApproverId) {
251
+ console.warn(
252
+ `No active users available for escalation approver in level ${level.level}`
253
+ );
254
+ continue;
255
+ }
256
+
257
+ const existingEscalation =
258
+ await prisma.approvalLevelEscalation.findFirst({
259
+ where: {
260
+ approval_level_id: levelId,
261
+ escalation_approver_id: escalationApproverId,
262
+ },
263
+ });
264
+
265
+ let escalationId;
266
+
267
+ if (!existingEscalation) {
268
+ const createdEscalation =
269
+ await prisma.approvalLevelEscalation.create({
270
+ data: {
271
+ approval_level_id: levelId,
272
+ escalation_approver_id: escalationApproverId,
273
+ valid_till_hours: escalation.valid_till_hours,
274
+ valid_till_minutes: escalation.valid_till_minutes,
275
+ },
276
+ });
277
+
278
+ escalationId = createdEscalation.id;
279
+ } else {
280
+ await prisma.approvalLevelEscalation.update({
281
+ where: {
282
+ id: existingEscalation.id,
283
+ },
284
+ data: {
285
+ approval_level_id: levelId,
286
+ escalation_approver_id: escalationApproverId,
287
+ valid_till_hours: escalation.valid_till_hours,
288
+ valid_till_minutes: escalation.valid_till_minutes,
289
+ },
290
+ });
291
+ escalationId = existingEscalation.id;
292
+ }
293
+
294
+ // Use specified escalation approvers or get random ones
295
+ const escalationApproverIds = getApproverIds(
296
+ escalation.approvers,
297
+ 2
298
+ );
299
+
300
+ // Delete existing escalation users if any (to ensure clean state)
301
+ await prisma.approvalLevelEscalationUser.deleteMany({
302
+ where: {
303
+ approval_level_escalation_id: escalationId,
304
+ },
305
+ });
306
+
307
+ // Seed approval level escalation users with active users, checking for duplicates
308
+ for (const approverId of escalationApproverIds) {
309
+ // Check if this approver has already been used in this escalation
310
+ if (!usedApproversInEscalation.has(approverId)) {
311
+ await prisma.approvalLevelEscalationUser.create({
312
+ data: {
313
+ approval_level_escalation_id: escalationId,
314
+ approver_id: approverId,
315
+ },
316
+ });
317
+
318
+ // Mark this approver as used in this escalation
319
+ usedApproversInEscalation.add(approverId);
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ }
326
+ }
327
+ }
328
+ } catch (error) {
329
+ logEntityError("approval-hierarchy", hierarchy.name, error.message);
330
+ throw error;
331
+ }
332
+ tracker.update();
333
+ }
334
+ logSeederComplete("Approval Hierarchy");
335
+
336
+ // Only disconnect if we created our own client
337
+ if (!prismaClient) {
338
+ await prisma.$disconnect();
339
+ }
340
+ };
@@ -0,0 +1,64 @@
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 seedAttributeValues(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("attribute values");
15
+
16
+ // Load attribute values from JSON
17
+ const attributeValueData = loadContentData("attribute-values");
18
+
19
+ // Create progress tracker
20
+ const tracker = createProgressTracker(
21
+ attributeValueData.length,
22
+ "attribute values"
23
+ );
24
+
25
+ for (const attributeValue of attributeValueData) {
26
+ try {
27
+ await prisma.attributeValue.upsert({
28
+ where: {
29
+ attribute_id_attribute_value_name: {
30
+ attribute_id: attributeValue.attribute_id,
31
+ attribute_value_name: attributeValue.attribute_value_name,
32
+ },
33
+ },
34
+ update: {
35
+ is_active: attributeValue.is_active,
36
+ slug: attributeValue.slug,
37
+ created_by: attributeValue.created_by,
38
+ updated_by: attributeValue.updated_by,
39
+ is_deleted: attributeValue.is_deleted,
40
+ },
41
+ create: {
42
+ uuid: attributeValue.uuid,
43
+ attribute_id: attributeValue.attribute_id,
44
+ attribute_value_name: attributeValue.attribute_value_name,
45
+ is_active: attributeValue.is_active,
46
+ slug: attributeValue.slug,
47
+ created_by: attributeValue.created_by,
48
+ updated_by: attributeValue.updated_by,
49
+ is_deleted: attributeValue.is_deleted,
50
+ },
51
+ });
52
+ } catch (error) {
53
+ // Log error but don't interrupt progress bar
54
+ logEntityError(
55
+ "attribute value",
56
+ attributeValue.attribute_value_name,
57
+ error.message
58
+ );
59
+ }
60
+ tracker.update();
61
+ }
62
+
63
+ logSeederComplete("Attribute values");
64
+ }
@@ -0,0 +1,61 @@
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 seedAttributes(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("attributes");
15
+
16
+ // Load attributes from JSON
17
+ const attributeData = loadContentData("attributes");
18
+
19
+ // Create progress tracker
20
+ const tracker = createProgressTracker(attributeData.length, "attributes");
21
+
22
+ for (const attribute of attributeData) {
23
+ try {
24
+ await prisma.attribute.upsert({
25
+ where: {
26
+ uuid: attribute.uuid,
27
+ },
28
+ update: {
29
+ category_id: attribute.category_id,
30
+ attribute_name: attribute.attribute_name,
31
+ is_active: attribute.is_active,
32
+ slug: attribute.slug,
33
+ created_by: attribute.created_by,
34
+ updated_by: attribute.updated_by,
35
+ is_deleted: attribute.is_deleted,
36
+ },
37
+ create: {
38
+ uuid: attribute.uuid,
39
+ category_id: attribute.category_id,
40
+ attribute_name: attribute.attribute_name,
41
+ is_active: attribute.is_active,
42
+ slug: attribute.slug,
43
+ created_by: attribute.created_by,
44
+ updated_by: attribute.updated_by,
45
+ is_deleted: attribute.is_deleted,
46
+ },
47
+ });
48
+ } catch (error) {
49
+ // Log error but don't interrupt progress bar
50
+ logEntityError("attribute", attribute.attribute_name, error.message);
51
+ }
52
+ tracker.update();
53
+ }
54
+
55
+ logSeederComplete("Attributes");
56
+
57
+ // Only disconnect if we created our own client
58
+ if (!prismaClient) {
59
+ await prisma.$disconnect();
60
+ }
61
+ }
@@ -0,0 +1,133 @@
1
+ import { PrismaClient } from "../../src/prisma/index.js";
2
+ import { loadContentData } from "./utils/json-loader.js";
3
+ import { createContentSeeder, seedContentData } from "./utils/content-seeder.js";
4
+ import {
5
+ logSeederStart,
6
+ logSeederComplete,
7
+ logEntityError,
8
+ } from "./utils/progress-tracker.js";
9
+
10
+ /**
11
+ * Enhanced category seeder with:
12
+ * - Medium batch processing (500-1000 records)
13
+ * - Unique constraint mapping for batch upserts
14
+ * - Memory monitoring during large operations
15
+ * - Connection pooling through manager
16
+ * - Exponential backoff retry logic
17
+ */
18
+ export async function seedCategories(prismaClient) {
19
+ // Use the passed client or create new one only if needed (for standalone testing)
20
+ const prisma = prismaClient || new PrismaClient();
21
+
22
+ try {
23
+ // Load categories from JSON
24
+ const categoryData = loadContentData("categories");
25
+
26
+ if (!categoryData || categoryData.length === 0) {
27
+ console.log("No category data found to seed.");
28
+ return;
29
+ }
30
+
31
+ // Create enhanced content seeder with category-specific configuration
32
+ const seeder = await createContentSeeder('categories', {
33
+ // Use connection pooling if no client is provided
34
+ useConnectionPooling: !prismaClient,
35
+ // Enable all enhanced features
36
+ enableUniqueConstraintMapping: true,
37
+ enableMemoryMonitoring: true,
38
+ batchUpsertMode: true,
39
+ // Category-specific unique fields for constraint mapping
40
+ uniqueFields: ['name', 'slug'],
41
+ // Medium batch size as specified (500-1000)
42
+ batchSize: 750,
43
+ // Memory monitoring configuration
44
+ memoryCheckInterval: 100,
45
+ memoryThreshold: 0.5,
46
+ // Retry configuration for robustness
47
+ retryAttempts: 3,
48
+ retryDelay: 750,
49
+ exponentialBackoff: true,
50
+ // Logging
51
+ logProgress: true
52
+ });
53
+
54
+ // Custom processor for categories (fallback if batch upsert fails)
55
+ const categoryProcessor = async (chunk, chunkIndex, client) => {
56
+ let created = 0;
57
+
58
+ for (const category of chunk) {
59
+ try {
60
+ // Ensure parent_id defaults to 0 if not provided
61
+ const categoryRecord = {
62
+ ...category,
63
+ parent_id: category.parent_id || 0
64
+ };
65
+
66
+ await client.category.upsert({
67
+ where: {
68
+ name: categoryRecord.name,
69
+ },
70
+ update: {
71
+ slug: categoryRecord.slug,
72
+ parent_id: categoryRecord.parent_id,
73
+ description: categoryRecord.description,
74
+ image_url: categoryRecord.image_url,
75
+ is_active: categoryRecord.is_active,
76
+ created_by: categoryRecord.created_by,
77
+ updated_by: categoryRecord.updated_by,
78
+ },
79
+ create: {
80
+ name: categoryRecord.name,
81
+ slug: categoryRecord.slug,
82
+ parent_id: categoryRecord.parent_id,
83
+ description: categoryRecord.description,
84
+ image_url: categoryRecord.image_url,
85
+ is_active: categoryRecord.is_active,
86
+ created_by: categoryRecord.created_by,
87
+ updated_by: categoryRecord.updated_by,
88
+ },
89
+ });
90
+ created++;
91
+ } catch (error) {
92
+ // Log error but continue processing
93
+ logEntityError("category", category.name, error.message);
94
+ }
95
+ }
96
+
97
+ return { created };
98
+ };
99
+
100
+ // Execute enhanced seeding with all new features
101
+ const result = await seeder.seedContent(
102
+ 'categories',
103
+ categoryData,
104
+ categoryProcessor,
105
+ prisma
106
+ );
107
+
108
+ // Log summary
109
+ console.log(`\nCategory seeding summary:`);
110
+ console.log(`- Total processed: ${result.totalProcessed.toLocaleString()}`);
111
+ console.log(`- Total created: ${result.totalCreated.toLocaleString()}`);
112
+ console.log(`- Errors: ${result.errors.length}`);
113
+ console.log(`- Memory peak: ${((result.memoryStats.maxHeapUsed - result.memoryStats.startHeapUsed) / 1024 / 1024).toFixed(2)}MB`);
114
+ console.log(`- GC triggered: ${result.memoryStats.gcTriggered} times`);
115
+
116
+ if (result.errors.length > 0) {
117
+ console.log("\nErrors encountered:");
118
+ result.errors.slice(0, 5).forEach(error => console.log(` - ${error}`));
119
+ if (result.errors.length > 5) {
120
+ console.log(` ... and ${result.errors.length - 5} more errors`);
121
+ }
122
+ }
123
+
124
+ } catch (error) {
125
+ logEntityError("categories", "seeding process", error.message);
126
+ throw error;
127
+ } finally {
128
+ // Only disconnect if we created our own client
129
+ if (!prismaClient) {
130
+ await prisma.$disconnect();
131
+ }
132
+ }
133
+ }