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,472 @@
1
+ import colors from "colors";
2
+ import { connectionManager, withContentPool } from "./connection-manager.js";
3
+ import { MemoryManager } from "./performance-helpers.js";
4
+ import { logSeederStart, logSeederComplete, logSeederError } from "./progress-tracker.js";
5
+
6
+ /**
7
+ * Enhanced content seeder for medium-volume content data (500-1000 records)
8
+ * Features: batch upserts, memory monitoring, unique constraint mapping, connection pooling
9
+ */
10
+ export class ContentSeeder {
11
+ constructor(options = {}) {
12
+ this.options = {
13
+ batchSize: options.batchSize || 750,
14
+ maxConcurrentBatches: options.maxConcurrentBatches || 4,
15
+ retryAttempts: options.retryAttempts || 3,
16
+ retryDelay: options.retryDelay || 750,
17
+ exponentialBackoff: options.exponentialBackoff !== false,
18
+ enableMemoryMonitoring: options.enableMemoryMonitoring !== false,
19
+ memoryCheckInterval: options.memoryCheckInterval || 100,
20
+ memoryThreshold: options.memoryThreshold || 0.5,
21
+ useConnectionPooling: options.useConnectionPooling !== false,
22
+ enableUniqueConstraintMapping: options.enableUniqueConstraintMapping !== false,
23
+ batchUpsertMode: options.batchUpsertMode !== false,
24
+ uniqueFields: options.uniqueFields || ['name'],
25
+ dbName: options.dbName || 'default',
26
+ dbUrl: options.dbUrl || process.env.DATABASE_URL,
27
+ logProgress: options.logProgress !== false,
28
+ ...options
29
+ };
30
+
31
+ this.uniqueConstraintMaps = new Map();
32
+ this.memoryStats = {
33
+ maxHeapUsed: 0,
34
+ startHeapUsed: 0,
35
+ currentHeapUsed: 0,
36
+ gcTriggered: 0
37
+ };
38
+ }
39
+
40
+ /**
41
+ * Main seeding method with enhanced batching and monitoring
42
+ */
43
+ async seedContent(entityName, data, processor, prismaClient = null) {
44
+ if (!data || data.length === 0) {
45
+ console.log(colors.yellow(`No data to seed for ${entityName}`));
46
+ return { totalProcessed: 0, totalCreated: 0, errors: [] };
47
+ }
48
+
49
+ logSeederStart(entityName);
50
+ this.initializeMemoryTracking();
51
+
52
+ let totalProcessed = 0;
53
+ let totalCreated = 0;
54
+ const errors = [];
55
+ const startTime = Date.now();
56
+
57
+ try {
58
+ // Use connection pooling if enabled
59
+ if (this.options.useConnectionPooling && !prismaClient) {
60
+ return await connectionManager.executeWithConnection(
61
+ this.options.dbName,
62
+ this.options.dbUrl,
63
+ async (pooledClient) => {
64
+ return await this.performSeeding(entityName, data, processor, pooledClient);
65
+ }
66
+ );
67
+ } else {
68
+ return await this.performSeeding(entityName, data, processor, prismaClient);
69
+ }
70
+ } catch (error) {
71
+ logSeederError(entityName, error.message);
72
+ throw error;
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Core seeding logic with batch processing
78
+ */
79
+ async performSeeding(entityName, data, processor, prismaClient) {
80
+ const chunks = this.createChunks(data, this.options.batchSize);
81
+ let totalProcessed = 0;
82
+ let totalCreated = 0;
83
+ const errors = [];
84
+
85
+ if (this.options.logProgress) {
86
+ console.log(colors.cyan(
87
+ `Processing ${data.length.toLocaleString()} ${entityName} in ${chunks.length} batches of ${this.options.batchSize}...`
88
+ ));
89
+ }
90
+
91
+ // Build unique constraint map if enabled
92
+ if (this.options.enableUniqueConstraintMapping) {
93
+ await this.buildUniqueConstraintMap(entityName, prismaClient);
94
+ }
95
+
96
+ // Process chunks in parallel batches
97
+ for (let i = 0; i < chunks.length; i += this.options.maxConcurrentBatches) {
98
+ const currentBatch = chunks.slice(i, i + this.options.maxConcurrentBatches);
99
+
100
+ const batchPromises = currentBatch.map(async (chunk, index) => {
101
+ const chunkIndex = i + index;
102
+ return await this.processChunkWithRetry(
103
+ chunk,
104
+ processor,
105
+ chunkIndex,
106
+ entityName,
107
+ prismaClient
108
+ );
109
+ });
110
+
111
+ const batchResults = await Promise.allSettled(batchPromises);
112
+
113
+ // Aggregate results
114
+ batchResults.forEach((result, index) => {
115
+ if (result.status === 'fulfilled') {
116
+ totalProcessed += result.value.processed;
117
+ totalCreated += result.value.created;
118
+ } else {
119
+ const chunkIndex = i + index;
120
+ const error = `Chunk ${chunkIndex} failed: ${result.reason.message}`;
121
+ errors.push(error);
122
+ if (this.options.logProgress) {
123
+ console.error(colors.red(error));
124
+ }
125
+ }
126
+ });
127
+
128
+ // Memory monitoring
129
+ if (this.options.enableMemoryMonitoring) {
130
+ this.checkMemoryUsage(totalProcessed, entityName);
131
+ }
132
+
133
+ // Progress reporting
134
+ if (this.options.logProgress) {
135
+ this.reportProgress(i + this.options.maxConcurrentBatches, chunks.length, totalProcessed, totalCreated, data.length);
136
+ }
137
+ }
138
+
139
+ if (this.options.logProgress) {
140
+ process.stdout.write('\n');
141
+ }
142
+
143
+ const duration = (Date.now() - Date.now()) / 1000;
144
+ const summary = {
145
+ totalProcessed,
146
+ totalCreated,
147
+ errors,
148
+ duration,
149
+ rate: totalProcessed / duration,
150
+ memoryStats: this.memoryStats
151
+ };
152
+
153
+ if (errors.length === 0) {
154
+ logSeederComplete(`${entityName} (${totalCreated.toLocaleString()} created)`);
155
+ } else {
156
+ console.log(colors.yellow(
157
+ `${entityName} completed with ${errors.length} errors. ${totalCreated.toLocaleString()} created.`
158
+ ));
159
+ }
160
+
161
+ // Final memory cleanup
162
+ this.finalMemoryCleanup();
163
+
164
+ return summary;
165
+ }
166
+
167
+ /**
168
+ * Process chunk with retry logic and exponential backoff
169
+ */
170
+ async processChunkWithRetry(chunk, processor, chunkIndex, entityName, prismaClient) {
171
+ let lastError;
172
+
173
+ for (let attempt = 1; attempt <= this.options.retryAttempts; attempt++) {
174
+ try {
175
+ let result;
176
+
177
+ if (this.options.batchUpsertMode) {
178
+ // Use batch upsert if enabled
179
+ result = await this.performBatchUpsert(chunk, entityName, prismaClient);
180
+ } else {
181
+ // Use custom processor
182
+ result = await processor(chunk, chunkIndex, prismaClient);
183
+ }
184
+
185
+ return {
186
+ processed: chunk.length,
187
+ created: result.created || result.count || chunk.length
188
+ };
189
+ } catch (error) {
190
+ lastError = error;
191
+ if (attempt < this.options.retryAttempts) {
192
+ const delay = this.options.exponentialBackoff
193
+ ? this.options.retryDelay * Math.pow(2, attempt - 1)
194
+ : this.options.retryDelay;
195
+
196
+ if (this.options.logProgress) {
197
+ console.log(colors.yellow(
198
+ `Chunk ${chunkIndex} attempt ${attempt} failed, retrying in ${delay}ms...`
199
+ ));
200
+ }
201
+ await this.sleep(delay);
202
+ }
203
+ }
204
+ }
205
+
206
+ throw new Error(
207
+ `Chunk ${chunkIndex} failed after ${this.options.retryAttempts} attempts: ${lastError.message}`
208
+ );
209
+ }
210
+
211
+ /**
212
+ * Perform batch upsert with unique constraint handling
213
+ */
214
+ async performBatchUpsert(chunk, entityName, prismaClient) {
215
+ const model = entityName.toLowerCase().replace(/s$/, ''); // Simple pluralization handling
216
+
217
+ if (this.options.enableUniqueConstraintMapping) {
218
+ // Filter out records that would violate unique constraints
219
+ const validRecords = this.filterUniqueConstraints(chunk, entityName);
220
+
221
+ if (validRecords.length === 0) {
222
+ return { created: 0 };
223
+ }
224
+
225
+ chunk = validRecords;
226
+ }
227
+
228
+ try {
229
+ // Use createMany for batch insert with skip duplicates
230
+ const result = await prismaClient[model].createMany({
231
+ data: chunk,
232
+ skipDuplicates: true
233
+ });
234
+
235
+ // Update unique constraint map
236
+ if (this.options.enableUniqueConstraintMapping) {
237
+ this.updateUniqueConstraintMap(chunk, entityName);
238
+ }
239
+
240
+ return result;
241
+ } catch (error) {
242
+ // Fallback to individual upserts if batch fails
243
+ console.warn(colors.yellow(`Batch upsert failed for ${entityName}, falling back to individual upserts`));
244
+ return await this.fallbackToIndividualUpserts(chunk, model, prismaClient);
245
+ }
246
+ }
247
+
248
+ /**
249
+ * Fallback to individual upserts if batch operation fails
250
+ */
251
+ async fallbackToIndividualUpserts(chunk, model, prismaClient) {
252
+ let created = 0;
253
+
254
+ for (const record of chunk) {
255
+ try {
256
+ await prismaClient[model].upsert({
257
+ where: this.buildWhereClause(record),
258
+ update: record,
259
+ create: record
260
+ });
261
+ created++;
262
+ } catch (error) {
263
+ // Log individual errors but continue processing
264
+ console.warn(colors.yellow(`Individual upsert failed: ${error.message}`));
265
+ }
266
+ }
267
+
268
+ return { created };
269
+ }
270
+
271
+ /**
272
+ * Build unique constraint map for efficient duplicate detection
273
+ */
274
+ async buildUniqueConstraintMap(entityName, prismaClient) {
275
+ const model = entityName.toLowerCase().replace(/s$/, '');
276
+
277
+ try {
278
+ const existingRecords = await prismaClient[model].findMany({
279
+ select: this.buildSelectClause()
280
+ });
281
+
282
+ const constraintMap = new Map();
283
+
284
+ existingRecords.forEach(record => {
285
+ this.options.uniqueFields.forEach(field => {
286
+ if (record[field]) {
287
+ constraintMap.set(`${field}:${record[field]}`, true);
288
+ }
289
+ });
290
+ });
291
+
292
+ this.uniqueConstraintMaps.set(entityName, constraintMap);
293
+
294
+ if (this.options.logProgress) {
295
+ console.log(colors.debug(
296
+ `Built unique constraint map for ${entityName}: ${constraintMap.size} existing records`
297
+ ));
298
+ }
299
+ } catch (error) {
300
+ console.warn(colors.yellow(`Failed to build unique constraint map for ${entityName}: ${error.message}`));
301
+ }
302
+ }
303
+
304
+ /**
305
+ * Filter records to avoid unique constraint violations
306
+ */
307
+ filterUniqueConstraints(chunk, entityName) {
308
+ const constraintMap = this.uniqueConstraintMaps.get(entityName);
309
+ if (!constraintMap) return chunk;
310
+
311
+ return chunk.filter(record => {
312
+ for (const field of this.options.uniqueFields) {
313
+ if (record[field] && constraintMap.has(`${field}:${record[field]}`)) {
314
+ return false; // Skip this record as it would violate unique constraint
315
+ }
316
+ }
317
+ return true;
318
+ });
319
+ }
320
+
321
+ /**
322
+ * Update unique constraint map with new records
323
+ */
324
+ updateUniqueConstraintMap(chunk, entityName) {
325
+ const constraintMap = this.uniqueConstraintMaps.get(entityName);
326
+ if (!constraintMap) return;
327
+
328
+ chunk.forEach(record => {
329
+ this.options.uniqueFields.forEach(field => {
330
+ if (record[field]) {
331
+ constraintMap.set(`${field}:${record[field]}`, true);
332
+ }
333
+ });
334
+ });
335
+ }
336
+
337
+ /**
338
+ * Build WHERE clause for upsert operations
339
+ */
340
+ buildWhereClause(record) {
341
+ const whereClause = {};
342
+
343
+ // Use the first unique field as the primary identifier
344
+ const primaryField = this.options.uniqueFields[0];
345
+ if (record[primaryField]) {
346
+ whereClause[primaryField] = record[primaryField];
347
+ }
348
+
349
+ return whereClause;
350
+ }
351
+
352
+ /**
353
+ * Build SELECT clause for unique constraint mapping
354
+ */
355
+ buildSelectClause() {
356
+ const selectClause = { id: true };
357
+
358
+ this.options.uniqueFields.forEach(field => {
359
+ selectClause[field] = true;
360
+ });
361
+
362
+ return selectClause;
363
+ }
364
+
365
+ /**
366
+ * Initialize memory tracking
367
+ */
368
+ initializeMemoryTracking() {
369
+ const memUsage = process.memoryUsage();
370
+ this.memoryStats.startHeapUsed = memUsage.heapUsed;
371
+ this.memoryStats.currentHeapUsed = memUsage.heapUsed;
372
+ this.memoryStats.maxHeapUsed = memUsage.heapUsed;
373
+
374
+ if (this.options.logProgress) {
375
+ MemoryManager.logMemoryUsage(`${this.options.dbName} seeding start`);
376
+ }
377
+ }
378
+
379
+ /**
380
+ * Check memory usage and trigger GC if needed
381
+ */
382
+ checkMemoryUsage(processedCount, entityName) {
383
+ const memUsage = process.memoryUsage();
384
+ this.memoryStats.currentHeapUsed = memUsage.heapUsed;
385
+ this.memoryStats.maxHeapUsed = Math.max(this.memoryStats.maxHeapUsed, memUsage.heapUsed);
386
+
387
+ // Check every N records based on interval
388
+ if (processedCount % this.options.memoryCheckInterval === 0) {
389
+ const memoryThresholdBytes = this.options.memoryThreshold * this.memoryStats.startHeapUsed * 10; // Allow 10x growth
390
+
391
+ if (memUsage.heapUsed > memoryThresholdBytes) {
392
+ if (this.options.logProgress) {
393
+ console.log(colors.yellow(`Memory threshold exceeded, triggering GC...`));
394
+ }
395
+
396
+ MemoryManager.forceGarbageCollectionWithDelay();
397
+ this.memoryStats.gcTriggered++;
398
+
399
+ if (this.options.logProgress) {
400
+ MemoryManager.logMemoryUsage(`After GC (${entityName})`);
401
+ }
402
+ }
403
+ }
404
+ }
405
+
406
+ /**
407
+ * Final memory cleanup
408
+ */
409
+ finalMemoryCleanup() {
410
+ MemoryManager.forceGarbageCollectionWithDelay();
411
+
412
+ if (this.options.logProgress) {
413
+ MemoryManager.logMemoryUsage('Seeding complete');
414
+
415
+ const heapGrowth = ((this.memoryStats.maxHeapUsed - this.memoryStats.startHeapUsed) / 1024 / 1024).toFixed(2);
416
+ console.log(colors.gray(`Memory growth: ${heapGrowth}MB, GC triggered: ${this.memoryStats.gcTriggered} times`));
417
+ }
418
+ }
419
+
420
+ /**
421
+ * Report processing progress
422
+ */
423
+ reportProgress(currentIndex, totalChunks, processed, created, total) {
424
+ const progress = Math.min((currentIndex / totalChunks) * 100, 100);
425
+
426
+ process.stdout.write(
427
+ `\r${colors.green('▸')} Progress: ${progress.toFixed(1)}% | ` +
428
+ `Processed: ${processed.toLocaleString()}/${total.toLocaleString()} | ` +
429
+ `Created: ${created.toLocaleString()}`
430
+ );
431
+ }
432
+
433
+ /**
434
+ * Create chunks from data array
435
+ */
436
+ createChunks(data, chunkSize) {
437
+ const chunks = [];
438
+ for (let i = 0; i < data.length; i += chunkSize) {
439
+ chunks.push(data.slice(i, i + chunkSize));
440
+ }
441
+ return chunks;
442
+ }
443
+
444
+ /**
445
+ * Sleep utility
446
+ */
447
+ sleep(ms) {
448
+ return new Promise(resolve => setTimeout(resolve, ms));
449
+ }
450
+ }
451
+
452
+ /**
453
+ * Factory function to create ContentSeeder with performance config
454
+ */
455
+ export async function createContentSeeder(entityName, options = {}) {
456
+ const { createPerformanceConfig } = await import('./performance-config.js');
457
+ const performanceConfig = createPerformanceConfig();
458
+ const config = performanceConfig.getConfig('content', entityName);
459
+
460
+ return new ContentSeeder({
461
+ ...config,
462
+ ...options
463
+ });
464
+ }
465
+
466
+ /**
467
+ * Convenience function for content seeding with optimized defaults
468
+ */
469
+ export async function seedContentData(entityName, data, processor = null, options = {}) {
470
+ const seeder = await createContentSeeder(entityName, options);
471
+ return await seeder.seedContent(entityName, data, processor);
472
+ }