diff --git a/README.md b/README.md index 8330626..711106c 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ npx prisma generate | output | Path to output directory | nexquikApp | false | | include | Comma-separated list of model names to include from the top-level of the generated app | | false | | exclude | Comma-separated list of model names to exclude from the top-level of the generated app (NOTE: If the 'include' option is used, this exclusion list will be ignored) | | false | +| depth | Maximum recursion depth for your models. (Changing this for large data models is not recommended, unless you filter down your models with the 'include' or 'exclude' flags also.) | 5 | false | ## Examples diff --git a/package.json b/package.json index 190c928..5e3e389 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "dev": "nodemon", "dev:1": "npm run build", "dev:2": "rm -f ./nexquik.tgz && rm -rf devNexquikApp", - "dev:3": "npm pack --silent", + "dev:3": "npm pack", "dev:4": "mv \"$(ls *.tgz)\" \"nexquik.tgz\"", "dev:5": "npm i && npm i --save-dev ./nexquik.tgz ", "dev:6": "nexquik -output ./devNexquikApp -schema ./prisma/schema.prisma", diff --git a/prisma_large/massiveSchema.prisma b/prisma_large/massiveSchema.prisma index 1ad5b45..10687f9 100644 --- a/prisma_large/massiveSchema.prisma +++ b/prisma_large/massiveSchema.prisma @@ -8,11 +8,11 @@ datasource db { } model accounting_template { - id String @id(map: "PK_3f809b792278e11e4aca7959074") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_3f809b792278e11e4aca7959074") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar languageCode String @db.VarChar mjml String? @@ -28,11 +28,11 @@ model accounting_template { } model activity { - id String @id(map: "PK_24625a1d6b1b089c8ae206fe467") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_24625a1d6b1b089c8ae206fe467") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? title String? @db.VarChar description String? @db.VarChar metaData Json? @db.Json @@ -42,10 +42,10 @@ model activity { type String? @db.VarChar source String @default("BROWSER") @db.VarChar deletedAt DateTime? @db.Timestamp(6) - employeeId String @db.Uuid - projectId String? @db.Uuid - timeSlotId String? @db.Uuid - taskId String? @db.Uuid + employeeId String + projectId String? + timeSlotId String? + taskId String? recordedAt DateTime? @db.Timestamp(6) task task? @relation(fields: [taskId], references: [id], onUpdate: NoAction, map: "FK_2743f8990fde12f9586287eb09f") time_slot time_slot? @relation(fields: [timeSlotId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_4e382caaf07ab0923b2e06bf918") @@ -69,14 +69,14 @@ model activity { } model appointment_employee { - id String @id(map: "PK_cad339a11ed0408e417671162fb") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_cad339a11ed0408e417671162fb") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? appointmentId String @db.VarChar - employeeId String @db.Uuid - employeeAppointmentId String? @db.Uuid + employeeId String + employeeAppointmentId String? employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0ddc50b7521b9a905d9ca8c8ba3") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_2c0494466d5a7e1165cea3dca98") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_3c3a62226896345c4716bfe1d96") @@ -89,11 +89,11 @@ model appointment_employee { } model approval_policy { - id String @id(map: "PK_06da9549a940994965e137d4b8a") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_06da9549a940994965e137d4b8a") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar approvalType String? @db.VarChar @@ -107,16 +107,16 @@ model approval_policy { } model availability_slot { - id String @id(map: "PK_62a782c29fd83da5ba7c4ea55f7") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_62a782c29fd83da5ba7c4ea55f7") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? startTime DateTime @db.Timestamp(6) endTime DateTime @db.Timestamp(6) allDay Boolean type String? - employeeId String? @db.Uuid + employeeId String? employee employee? @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_46ed3c2287423f5dc089100feeb") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_d544bd3a63634a4438509ac958d") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_f008a481cb4eed547704bb9d839") @@ -127,11 +127,11 @@ model availability_slot { } model candidate { - id String @id(map: "PK_b0ddec158a9a60fbc785281581b") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_b0ddec158a9a60fbc785281581b") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? rating Decimal? @db.Decimal valueDate DateTime? @db.Timestamp(6) appliedDate DateTime? @db.Timestamp(6) @@ -145,11 +145,11 @@ model candidate { payPeriod String? @db.VarChar cvUrl String? @db.VarChar isArchived Boolean? @default(false) - contactId String? @unique(map: "REL_b674793a804b7d69d74c8f6c5b") @db.Uuid - organizationPositionId String? @db.Uuid - sourceId String? @unique(map: "REL_4ea108fd8b089237964d5f98fb") @db.Uuid - userId String @unique(map: "REL_3930aa71e0fa24f09201811b1b") @db.Uuid - employeeId String? @unique(map: "UQ_8b900e8a39f76125e610ab30c0e") @db.Uuid + contactId String? @unique(map: "REL_b674793a804b7d69d74c8f6c5b") + organizationPositionId String? + sourceId String? @unique(map: "REL_4ea108fd8b089237964d5f98fb") + userId String @unique(map: "REL_3930aa71e0fa24f09201811b1b") + employeeId String? @unique(map: "UQ_8b900e8a39f76125e610ab30c0e") minimumBillingRate Int? organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_16fb27ffd1a99c6506c92ad57a7") organization_position organization_position? @relation(fields: [organizationPositionId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_1e3e8228e7df634fa4cec6322c7") @@ -178,15 +178,15 @@ model candidate { } model candidate_criterion_rating { - id String @id(map: "PK_c6a80c50a9f4b0b45f2ace048a2") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_c6a80c50a9f4b0b45f2ace048a2") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? rating Int - technologyId String? @db.Uuid - personalQualityId String? @db.Uuid - feedbackId String? @db.Uuid + technologyId String? + personalQualityId String? + feedbackId String? candidate_feedback candidate_feedback? @relation(fields: [feedbackId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_159f821dd214792f1d2ad9cff7c") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_9d5bd131452ef689df2b46551b4") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_b106406e94bb7317493efc2c989") @@ -201,8 +201,8 @@ model candidate_criterion_rating { } model candidate_department { - organizationDepartmentId String @db.Uuid - candidateId String @db.Uuid + organizationDepartmentId String + candidateId String organization_department organization_department @relation(fields: [organizationDepartmentId], references: [id], onDelete: Cascade, map: "FK_c58533f9ba63f42fef682e1ee7c") candidate candidate @relation(fields: [candidateId], references: [id], onDelete: Cascade, map: "FK_ef6e8d34b95dcb2b21d5de08a61") @@ -212,14 +212,14 @@ model candidate_department { } model candidate_document { - id String @id(map: "PK_97c576e8d22b564ceb372da93e9") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_97c576e8d22b564ceb372da93e9") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar documentUrl String? @db.VarChar - candidateId String? @db.Uuid + candidateId String? candidate candidate? @relation(fields: [candidateId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_3f9053719c9d11ebdea03e5a2d4") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_4d9b7ab09f9f9517d488b5fed1e") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_d108a827199fda86a9ec216989a") @@ -230,17 +230,17 @@ model candidate_document { } model candidate_education { - id String @id(map: "PK_86bda616ec3ad179c94236988fd") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_86bda616ec3ad179c94236988fd") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? schoolName String @db.VarChar degree String @db.VarChar field String @db.VarChar completionDate DateTime @db.Timestamp(6) notes String? @db.VarChar - candidateId String? @db.Uuid + candidateId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_00cdd9ed7571be8e2c8d09e7cd4") candidate candidate? @relation(fields: [candidateId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_59b61ba52a58851cfc85b1e6c66") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_f660af89b2c69fea2334508cbbd") @@ -250,8 +250,8 @@ model candidate_education { } model candidate_employment_type { - organizationEmploymentTypeId String @db.Uuid - candidateId String @db.Uuid + organizationEmploymentTypeId String + candidateId String candidate candidate @relation(fields: [candidateId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_8c5db3a96baffba025729ebe869") organization_employment_type organization_employment_type @relation(fields: [organizationEmploymentTypeId], references: [id], onDelete: Cascade, map: "FK_b4b51067c538f78b8585ef2a175") @@ -261,15 +261,15 @@ model candidate_employment_type { } model candidate_experience { - id String @id(map: "PK_dd2f56a39a8ba6815ce7a55a972") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_dd2f56a39a8ba6815ce7a55a972") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? occupation String @db.VarChar duration String @db.VarChar description String? @db.VarChar - candidateId String? @db.Uuid + candidateId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_8dcf5fc8bc7f77a80b0fc648bfc") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_a50eb955f940ca93e044d175c62") candidate candidate? @relation(fields: [candidateId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_cf75465b3663652a28cf1841ce2") @@ -279,16 +279,16 @@ model candidate_experience { } model candidate_feedback { - id String @id(map: "PK_3e73b147b36271621a6032991be") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_3e73b147b36271621a6032991be") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? description String? @db.VarChar rating Decimal? @db.Decimal - candidateId String? @db.Uuid - interviewId String? @db.Uuid - interviewerId String? @unique(map: "REL_44f3d80c3293e1de038c87f115") @db.Uuid + candidateId String? + interviewId String? + interviewerId String? @unique(map: "REL_44f3d80c3293e1de038c87f115") status candidate_feedback_status_enum? candidate_criterion_rating candidate_criterion_rating[] candidate_interview candidate_interview? @relation(fields: [interviewId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0862c274d336126b951bfe009a7") @@ -304,11 +304,11 @@ model candidate_feedback { } model candidate_interview { - id String @id(map: "PK_32f8103810c6b4e86374dc6bec5") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_32f8103810c6b4e86374dc6bec5") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? title String @db.VarChar startTime DateTime? @db.Timestamp(6) endTime DateTime? @db.Timestamp(6) @@ -316,7 +316,7 @@ model candidate_interview { note String? @db.VarChar isArchived Boolean? @default(false) rating Decimal? @db.Decimal - candidateId String? @db.Uuid + candidateId String? candidate_feedback candidate_feedback[] organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_03be41e88b1fecfe4e24d6b04b2") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_59b765e6d13d83dba4852a43eb5") @@ -331,13 +331,13 @@ model candidate_interview { } model candidate_interviewer { - id String @id(map: "PK_bd07efbbc894c53f1d12b93741f") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_bd07efbbc894c53f1d12b93741f") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid - interviewId String @db.Uuid - employeeId String? @db.Uuid + tenantId String? + organizationId String? + interviewId String + employeeId String? candidate_feedback candidate_feedback? organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_5f1e315db848990dfffa72817ca") employee employee? @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_9e7b20eb3dfa082b83b198fdad4") @@ -351,14 +351,14 @@ model candidate_interviewer { } model candidate_personal_quality { - id String @id(map: "PK_0762fd16d1bc85292d19c08f0ec") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_0762fd16d1bc85292d19c08f0ec") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar rating Decimal? @db.Decimal - interviewId String? @db.Uuid + interviewId String? candidate_criterion_rating candidate_criterion_rating[] tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_045de7c208adcd0c68c0a651748") candidate_interview candidate_interview? @relation(fields: [interviewId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a0d171f45bdbcf2b990c0c37c32") @@ -370,13 +370,13 @@ model candidate_personal_quality { } model candidate_skill { - id String @id(map: "PK_e76869bb2d719ece3daefccc53a") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_e76869bb2d719ece3daefccc53a") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar - candidateId String? @db.Uuid + candidateId String? candidate candidate? @relation(fields: [candidateId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_492548e6c176f5655adfae9f5ea") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_8a07f780c6fce2b82830ab06877") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_d7986743e7f11720349a6c95572") @@ -386,11 +386,11 @@ model candidate_skill { } model candidate_source { - id String @id(map: "PK_b4fef4d5e6a7ab89a8dc2ab31ac") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_b4fef4d5e6a7ab89a8dc2ab31ac") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar candidate candidate? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_b2a1ba27a76dd819cd8294cce38") @@ -401,14 +401,14 @@ model candidate_source { } model candidate_technology { - id String @id(map: "PK_63d3343775ef318c0e00f3fada7") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_63d3343775ef318c0e00f3fada7") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar rating Decimal? @db.Decimal - interviewId String? @db.Uuid + interviewId String? candidate_criterion_rating candidate_criterion_rating[] candidate_interview candidate_interview? @relation(fields: [interviewId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_063663c7e61e45d172d1b832656") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_9d46b8c5382acd4d4514bc5c62e") @@ -420,11 +420,11 @@ model candidate_technology { } model changelog { - id String @id(map: "PK_9d12e70193212a9f6d2c542433d") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_9d12e70193212a9f6d2c542433d") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? icon String? @db.VarChar title String? @db.VarChar date DateTime @db.Timestamp(6) @@ -440,11 +440,11 @@ model changelog { } model contact { - id String @id(map: "PK_2cbbe00f59ab6b3bb5b8d19f989") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_2cbbe00f59ab6b3bb5b8d19f989") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String? @db.VarChar firstName String? @db.VarChar lastName String? @db.VarChar @@ -473,7 +473,7 @@ model contact { } model country { - id String @id(map: "PK_bf6e37c231c4f4ea56dcd887269") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_bf6e37c231c4f4ea56dcd887269") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) isoCode String @db.VarChar @@ -483,7 +483,7 @@ model country { } model currency { - id String @id(map: "PK_3cda65c731a6264f0e444cc9b91") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_3cda65c731a6264f0e444cc9b91") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) isoCode String @db.VarChar @@ -493,11 +493,11 @@ model currency { } model custom_smtp { - id String @id(map: "PK_1f4efe1edc0cc9cb2261584b335") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_1f4efe1edc0cc9cb2261584b335") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? host String @db.VarChar port Int secure Boolean @@ -513,16 +513,16 @@ model custom_smtp { } model deal { - id String @id(map: "PK_9ce1c24acace60f6d7dc7a7189e") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_9ce1c24acace60f6d7dc7a7189e") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? title String @db.VarChar probability Int - createdByUserId String @db.Uuid - stageId String @db.Uuid - clientId String? @unique(map: "REL_1ae3abc0ae1dcf6c13f49b62b5") @db.Uuid + createdByUserId String + stageId String + clientId String? @unique(map: "REL_1ae3abc0ae1dcf6c13f49b62b5") organization_contact organization_contact? @relation(fields: [clientId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_1ae3abc0ae1dcf6c13f49b62b56") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_38fb85abdf9995efcf217f59554") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_46a3c00bfc3e36b4412d8bcdb08") @@ -536,14 +536,14 @@ model deal { } model email_reset { - id String @id(map: "PK_c7cc1d8ec099867c393d29adafb") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_c7cc1d8ec099867c393d29adafb") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? email String @db.VarChar oldEmail String @db.VarChar code Int - userId String? @db.Uuid + userId String? token String? @db.VarChar expiredAt DateTime? @db.Timestamp(6) tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_93799dfaeff51de06f1e02ac414") @@ -558,17 +558,17 @@ model email_reset { } model email_sent { - id String @id(map: "PK_54f534a4ca70e28c8236514045c") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_54f534a4ca70e28c8236514045c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String? @db.VarChar content String? @db.VarChar email String @db.VarChar isArchived Boolean? @default(false) - userId String? @db.Uuid - emailTemplateId String @db.Uuid + userId String? + emailTemplateId String tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0af511c44de7a16beb45cc37852") user user? @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_1261c457b3035b77719556995bf") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_525f4873c6edc3d94559f88900c") @@ -582,11 +582,11 @@ model email_sent { } model email_template { - id String @id(map: "PK_c90815fd4ca9119f19462207710") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_c90815fd4ca9119f19462207710") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar languageCode String @db.VarChar mjml String? @@ -602,11 +602,11 @@ model email_template { } model employee { - id String @id(map: "PK_3c2bc72f03fd5abbbc5ac169498") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_3c2bc72f03fd5abbbc5ac169498") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? valueDate DateTime? @db.Timestamp(6) isActive Boolean? @default(false) short_description String? @db.VarChar(200) @@ -646,9 +646,9 @@ model employee { totalJobs Decimal? @db.Decimal jobSuccess Decimal? @db.Decimal profile_link String? @db.VarChar - userId String @unique(map: "REL_f4b0d329c4a3cf79ffe9d56504") @db.Uuid - contactId String? @unique(map: "REL_1c0c1370ecd98040259625e17e") @db.Uuid - organizationPositionId String? @db.Uuid + userId String @unique(map: "REL_f4b0d329c4a3cf79ffe9d56504") + contactId String? @unique(map: "REL_1c0c1370ecd98040259625e17e") + organizationPositionId String? billRateValue Int? isTrackingEnabled Boolean? @default(false) deletedAt DateTime? @db.Timestamp(6) @@ -716,12 +716,12 @@ model employee { } model employee_appointment { - id String @id(map: "PK_0cffa7fe7917dce7981f126e8bc") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_0cffa7fe7917dce7981f126e8bc") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid - employeeId String? @db.Uuid + tenantId String? + organizationId String? + employeeId String? agenda String @db.VarChar description String? @db.VarChar location String? @db.VarChar @@ -744,14 +744,14 @@ model employee_appointment { } model employee_award { - id String @id(map: "PK_285f4201fd5271b48ef8ab06c4c") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_285f4201fd5271b48ef8ab06c4c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar year String @db.VarChar - employeeId String @db.Uuid + employeeId String employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0c5266f3f488add404f92d56ec7") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_91e0f7efcd17d20b5029fb1342d") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_caf8363b0ed7d5f24ae866ba3bb") @@ -763,8 +763,8 @@ model employee_award { } model employee_job_preset { - jobPresetId String @db.Uuid - employeeId String @db.Uuid + jobPresetId String + employeeId String employee employee @relation(fields: [employeeId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_68e75e49f06409fd385b4f87746") job_preset job_preset @relation(fields: [jobPresetId], references: [id], onDelete: Cascade, map: "FK_7ae5b4d4bdec77971dab319f2e2") @@ -774,11 +774,11 @@ model employee_job_preset { } model employee_level { - id String @id(map: "PK_9fe5b32795d45518cda5c6ae99b") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_9fe5b32795d45518cda5c6ae99b") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? level String @db.VarChar organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_c4668533292bf4526e61aedf74a") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_d3fc52d497bc44d6f493dbedc3a") @@ -789,14 +789,14 @@ model employee_level { } model employee_phone { - id String @id(map: "PK_c36300253feafdecf31e89b9ef6") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_c36300253feafdecf31e89b9ef6") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? type String? @db.VarChar phoneNumber String @db.VarChar - employeeId String @db.Uuid + employeeId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_0f9cefa604913e1ab3225915469") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_329ebd01a757d1a0c3c4d628e29") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_d543336994b1f764c449e0b1d3c") @@ -808,15 +808,15 @@ model employee_phone { } model employee_proposal_template { - id String @id(map: "PK_7c6bb7aaa072317d412c7e954ca") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_7c6bb7aaa072317d412c7e954ca") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar content String? isDefault Boolean @default(false) - employeeId String @db.Uuid + employeeId String employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_2be728a7f8b118712a4200990d4") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_ee780fbd8f91de31c004929eecb") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_f577c9bc6183c1d1eae1e154bbc") @@ -830,11 +830,11 @@ model employee_proposal_template { } model employee_recurring_expense { - id String @id(map: "PK_cff5ea80db428a5ead37a04f2f8") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_cff5ea80db428a5ead37a04f2f8") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? startDay Int startMonth Int startYear Int @@ -847,7 +847,7 @@ model employee_recurring_expense { value Decimal @db.Decimal currency String @db.VarChar parentRecurringExpenseId String? @db.VarChar - employeeId String? @db.Uuid + employeeId String? employee employee? @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0ac8526c48a3daa267c86225fb5") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_3ee5147bb1fde625fa33c0e956b") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_5fde7be40b3c03bc0fdac0c2f66") @@ -861,17 +861,17 @@ model employee_recurring_expense { } model employee_setting { - id String @id(map: "PK_d98eee0375560c6dda8c6e8be72") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_d98eee0375560c6dda8c6e8be72") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? month Int year Int settingType String @db.VarChar value Int currency String @db.VarChar - employeeId String @db.Uuid + employeeId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_56e96cd218a185ed59b5a8e7869") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_9516a627a131626d2a5738a05a8") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_95ea18af6ef8123503d332240c2") @@ -884,8 +884,8 @@ model employee_setting { } model employee_tasks_task { - employeeId String @db.Uuid - taskId String @db.Uuid + employeeId String + taskId String task task @relation(fields: [taskId], references: [id], onDelete: Cascade, map: "FK_6bbbe677c5fc5115916b4eccfb1") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_eae5eea1c6a3fcf4a2c95f1a5fe") @@ -895,15 +895,15 @@ model employee_tasks_task { } model employee_upwork_job_search_criterion { - id String @id(map: "PK_2b2b3f3fdeacef0fb98cd31ed29") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_2b2b3f3fdeacef0fb98cd31ed29") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid - jobPresetId String? @db.Uuid - employeeId String @db.Uuid - occupationId String? @db.Uuid - categoryId String? @db.Uuid + tenantId String? + organizationId String? + jobPresetId String? + employeeId String + occupationId String? + categoryId String? keyword String? @db.VarChar jobType String? job_preset job_preset? @relation(fields: [jobPresetId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_2dc73e07ac7040f273cea3c999d") @@ -918,11 +918,11 @@ model employee_upwork_job_search_criterion { } model equipment { - id String @id(map: "PK_0722e1b9d6eb19f5874c1678740") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_0722e1b9d6eb19f5874c1678740") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar type String @db.VarChar serialNumber String @db.VarChar @@ -931,7 +931,7 @@ model equipment { currency String @db.VarChar maxSharePeriod Decimal? @db.Decimal autoApproveShare Boolean - imageId String? @db.Uuid + imageId String? image_asset image_asset? @relation(fields: [imageId], references: [id], onUpdate: NoAction, map: "FK_0ab80a66282582ae8b0282508e7") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_f98ce0d210aa9f91b729d447806") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_fb6808468066849ab7b7454d5f3") @@ -943,8 +943,8 @@ model equipment { } model equipment_shares_employees { - equipmentSharingId String @db.Uuid - employeeId String @db.Uuid + equipmentSharingId String + employeeId String employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_57f6461f1a710f0f4abdcb8d0e6") equipment_sharing equipment_sharing @relation(fields: [equipmentSharingId], references: [id], onDelete: Cascade, map: "FK_8676224f55a965c53e4bb7cbf8f") @@ -954,8 +954,8 @@ model equipment_shares_employees { } model equipment_shares_teams { - equipmentSharingId String @db.Uuid - organizationTeamId String @db.Uuid + equipmentSharingId String + organizationTeamId String organization_team organization_team @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, map: "FK_7ccef49dd56c8c74daa8d12186b") equipment_sharing equipment_sharing @relation(fields: [equipmentSharingId], references: [id], onDelete: Cascade, map: "FK_f84171695b7aedfc454483bcf21") @@ -965,11 +965,11 @@ model equipment_shares_teams { } model equipment_sharing { - id String @id(map: "PK_1ef883fc78969d9825a15c37368") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_1ef883fc78969d9825a15c37368") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String? @db.VarChar shareRequestDay DateTime? @db.Timestamp(6) shareStartDay DateTime? @db.Timestamp(6) @@ -977,8 +977,8 @@ model equipment_sharing { status Int createdBy String? @db.VarChar createdByName String? @db.VarChar - equipmentId String? @db.Uuid - equipmentSharingPolicyId String? @db.Uuid + equipmentId String? + equipmentSharingPolicyId String? equipment_shares_employees equipment_shares_employees[] equipment_shares_teams equipment_shares_teams[] equipment_sharing_policy equipment_sharing_policy? @relation(fields: [equipmentSharingPolicyId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0ecfe0ce0cd2b197249d5f1c105") @@ -993,11 +993,11 @@ model equipment_sharing { } model equipment_sharing_policy { - id String @id(map: "PK_c86c27cfd73768508bff426a0a5") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_c86c27cfd73768508bff426a0a5") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar equipment_sharing equipment_sharing[] @@ -1010,11 +1010,11 @@ model equipment_sharing_policy { } model estimate_email { - id String @id(map: "PK_0ea0366889e6ca5d151501328c6") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_0ea0366889e6ca5d151501328c6") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? token String @db.VarChar email String @db.VarChar expireDate DateTime @db.Timestamp(6) @@ -1027,17 +1027,17 @@ model estimate_email { } model event_type { - id String @id(map: "PK_d968f34984d7d85d96f782872fe") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_d968f34984d7d85d96f782872fe") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? duration Decimal @db.Decimal durationUnit String? @db.VarChar title String? @db.VarChar description String? @db.VarChar isActive Boolean? - employeeId String? @db.Uuid + employeeId String? employee employee? @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_24d905ec9e127ade23754a363dd") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_92fc62260c0c7ff108622850bff") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_fc8818d6fde74370ec703a01352") @@ -1053,11 +1053,11 @@ model event_type { } model expense { - id String @id(map: "PK_edd925b450e13ea36197c9590fc") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_edd925b450e13ea36197c9590fc") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? amount Decimal @db.Decimal typeOfExpense String? @db.VarChar notes String? @db.VarChar @@ -1070,11 +1070,11 @@ model expense { receipt String? @db.VarChar splitExpense Boolean? reference String? @db.VarChar - employeeId String? @db.Uuid - vendorId String? @db.Uuid - categoryId String? @db.Uuid - projectId String? @db.Uuid - organizationContactId String? @db.Uuid + employeeId String? + vendorId String? + categoryId String? + projectId String? + organizationContactId String? status expense_status_enum? organization_contact organization_contact? @relation(fields: [organizationContactId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_047b8b5c0782d5a6d4c8bfc1a4e") expense_category expense_category? @relation(fields: [categoryId], references: [id], onUpdate: NoAction, map: "FK_42eea5debc63f4d1bf89881c10a") @@ -1105,11 +1105,11 @@ model expense { } model expense_category { - id String @id(map: "PK_478b68a9314d8787fb3763a2298") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_478b68a9314d8787fb3763a2298") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar expense expense[] tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_37504e920ee5ca46a4000b89da5") @@ -1121,7 +1121,7 @@ model expense_category { } model feature { - id String @id(map: "PK_03930932f909ca4be8e33d16a2d") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_03930932f909ca4be8e33d16a2d") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) name String @db.VarChar @@ -1132,7 +1132,7 @@ model feature { link String @db.VarChar status String? @db.VarChar icon String? @db.VarChar - parentId String? @db.Uuid + parentId String? feature feature? @relation("featureTofeature", fields: [parentId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_d4a28a8e70d450a412bf0cfb52a") other_feature feature[] @relation("featureTofeature") feature_organization feature_organization[] @@ -1143,13 +1143,13 @@ model feature { } model feature_organization { - id String @id(map: "PK_2b31b7d1de797f2be7d14080d3a") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_2b31b7d1de797f2be7d14080d3a") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? isEnabled Boolean @default(true) - featureId String @db.Uuid + featureId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_6a94e6b0a572f591288ac44a421") feature feature @relation(fields: [featureId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_6d413f9fdd5366b1b9add464836") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_8f71803d96dcdbcc6b19bb28d38") @@ -1160,20 +1160,20 @@ model feature_organization { } model goal { - id String @id(map: "PK_88c8e2b461b711336c836b1e130") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_88c8e2b461b711336c836b1e130") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String @db.VarChar deadline String @db.VarChar level String @db.VarChar progress Int - ownerTeamId String? @db.Uuid - ownerEmployeeId String? @db.Uuid - leadId String? @db.Uuid - alignedKeyResultId String? @db.Uuid + ownerTeamId String? + ownerEmployeeId String? + leadId String? + alignedKeyResultId String? employee_goal_ownerEmployeeIdToemployee employee? @relation("goal_ownerEmployeeIdToemployee", fields: [ownerEmployeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_35526ff1063ab5fa2b20e71bd66") key_result_goal_alignedKeyResultIdTokey_result key_result? @relation("goal_alignedKeyResultIdTokey_result", fields: [alignedKeyResultId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_4c8b4e887a994182fd6132e6400") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_6b4758a5442713070c9a366d0e5") @@ -1191,11 +1191,11 @@ model goal { } model goal_general_setting { - id String @id(map: "PK_66e3aec3a5e17059d17182c92cb") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_66e3aec3a5e17059d17182c92cb") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? maxObjectives Int maxKeyResults Int employeeCanCreateObjective Boolean @@ -1211,11 +1211,11 @@ model goal_general_setting { } model goal_kpi { - id String @id(map: "PK_a3ffb211e0d8cddaabc9b7500e1") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_a3ffb211e0d8cddaabc9b7500e1") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar type String @db.VarChar @@ -1223,7 +1223,7 @@ model goal_kpi { operator String @db.VarChar currentValue Int targetValue Int - leadId String? @db.Uuid + leadId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_43aa2985216560cd9fa93f501e5") employee employee? @relation(fields: [leadId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_d4f093ca4eb7c40db68d9a789d0") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_e49e37fe88a2725a38a3b058493") @@ -1235,11 +1235,11 @@ model goal_kpi { } model goal_kpi_template { - id String @id(map: "PK_c56b646f5b8b5f8bcb511854f5a") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_c56b646f5b8b5f8bcb511854f5a") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar type String @db.VarChar @@ -1247,7 +1247,7 @@ model goal_kpi_template { operator String @db.VarChar currentValue Int targetValue Int - leadId String? @db.Uuid + leadId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_cc72d4e8e4284dcc8ffbf96caf4") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_df7ab026698c02859ff75408093") employee employee? @relation(fields: [leadId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_f69e740b066c6469d1c68a4a28b") @@ -1258,11 +1258,11 @@ model goal_kpi_template { } model goal_template { - id String @id(map: "PK_695f015df27db60209bd4f64cdc") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_695f015df27db60209bd4f64cdc") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar level String @db.VarChar category String @db.VarChar @@ -1275,11 +1275,11 @@ model goal_template { } model goal_time_frame { - id String @id(map: "PK_dd84da29d908bf64eaaef8dd383") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_dd84da29d908bf64eaaef8dd383") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar status String @db.VarChar startDate DateTime @db.Timestamp(6) @@ -1292,11 +1292,11 @@ model goal_time_frame { } model image_asset { - id String @id(map: "PK_ebb19157be1103b6ab97049321e") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_ebb19157be1103b6ab97049321e") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String? @db.VarChar url String @db.VarChar width Int @default(0) @@ -1331,10 +1331,10 @@ model image_asset { } model import_history { - id String @id(map: "PK_2b1e6267c2fe5f0a8a13c559829") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_2b1e6267c2fe5f0a8a13c559829") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? file String @db.VarChar path String @db.VarChar size Int? @@ -1347,13 +1347,13 @@ model import_history { } model import_record { - id String @id(map: "PK_a53dc7ace1c9196a832e9f59286") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_a53dc7ace1c9196a832e9f59286") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? entityType String @db.VarChar - sourceId String @db.Uuid - destinationId String @db.Uuid + sourceId String + destinationId String importDate DateTime @default(now()) @db.Timestamp(6) tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a43b235c35c2c4d3263ada770c6") @@ -1362,19 +1362,19 @@ model import_record { } model income { - id String @id(map: "PK_29a10f17b97568f70cee8586d58") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_29a10f17b97568f70cee8586d58") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? amount Decimal @db.Decimal currency String @db.VarChar valueDate DateTime? @db.Timestamp(6) notes String? @db.VarChar isBonus Boolean? reference String? @db.VarChar - employeeId String? @db.Uuid - clientId String? @db.Uuid + employeeId String? + clientId String? organization_contact organization_contact? @relation(fields: [clientId], references: [id], onUpdate: NoAction, map: "FK_29fbd3a17710a27e6f856072c01") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_64409de4711cd14e2c43371cc02") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_8608b275644cfc7a0f3f5850814") @@ -1391,7 +1391,7 @@ model income { } model integration { - id String @id(map: "PK_f348d4694945d9dc4c7049a178a") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_f348d4694945d9dc4c7049a178a") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) name String @db.VarChar @@ -1408,14 +1408,14 @@ model integration { } model integration_entity_setting { - id String @id(map: "PK_6f942ec2f8005d0def9bf156fbb") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_6f942ec2f8005d0def9bf156fbb") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? entity String @db.VarChar sync Boolean - integrationId String @db.Uuid + integrationId String tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_23e9cfcf1bfff07dcc3254378df") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_c6c01e38eebd8b26b9214b90441") integration_tenant integration_tenant @relation(fields: [integrationId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_f80ff4ebbf0b33a67dce5989117") @@ -1427,14 +1427,14 @@ model integration_entity_setting { } model integration_entity_setting_tied { - id String @id(map: "PK_a7a05eb931096f85a425c5399d2") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_a7a05eb931096f85a425c5399d2") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? entity String @db.VarChar sync Boolean - integrationEntitySettingId String? @db.Uuid + integrationEntitySettingId String? integration_entity_setting integration_entity_setting? @relation(fields: [integrationEntitySettingId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_3fb863167095805e33f38a0fdcc") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_b208a754c7a538cb3422f39f5b9") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_d5ac36aa3d5919908414154fca0") @@ -1445,8 +1445,8 @@ model integration_entity_setting_tied { } model integration_integration_type { - integrationId String @db.Uuid - integrationTypeId String @db.Uuid + integrationId String + integrationTypeId String integration integration @relation(fields: [integrationId], references: [id], onDelete: Cascade, map: "FK_34c86921ee9b462bc5c7b61fad4") integration_type integration_type @relation(fields: [integrationTypeId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_8dd2062499a6c2a708ddd05650e") @@ -1456,15 +1456,15 @@ model integration_integration_type { } model integration_map { - id String @id(map: "PK_04fadd5eb551bbeba50aced5d0a") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_04fadd5eb551bbeba50aced5d0a") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? entity String @db.VarChar sourceId BigInt gauzyId String @db.VarChar - integrationId String @db.Uuid + integrationId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_7022dafd72c1b92f7d506914411") integration_tenant integration_tenant @relation(fields: [integrationId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_c327ea26bda3d349a1eceb5658e") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_eec3d6064578610ddc609dd360e") @@ -1475,14 +1475,14 @@ model integration_map { } model integration_setting { - id String @id(map: "PK_a9da6fb6dd2b4fdcdb994679023") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_a9da6fb6dd2b4fdcdb994679023") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? settingsName String @db.VarChar settingsValue String @db.VarChar - integrationId String @db.Uuid + integrationId String integration_tenant integration_tenant @relation(fields: [integrationId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_34daf030004ad37b88f1f3d863c") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_369eaafb13afe9903a170077edb") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_954c6b05297814776d9cb66ca77") @@ -1493,11 +1493,11 @@ model integration_setting { } model integration_tenant { - id String @id(map: "PK_14c591f8c0dde7197f664afbf8c") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_14c591f8c0dde7197f664afbf8c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar integration_entity_setting integration_entity_setting[] integration_map integration_map[] @@ -1510,7 +1510,7 @@ model integration_tenant { } model integration_type { - id String @id(map: "PK_c6fa17545c4c2e72e312e3c933d") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_c6fa17545c4c2e72e312e3c933d") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) name String @db.VarChar @@ -1520,21 +1520,21 @@ model integration_type { } model invite { - id String @id(map: "PK_fc9fa190e5a3c5d80604a4f63e1") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_fc9fa190e5a3c5d80604a4f63e1") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? token String @db.VarChar email String @db.VarChar status String @db.VarChar expireDate DateTime? @db.Timestamp(6) actionDate DateTime? @db.Timestamp(6) - invitedById String? @db.Uuid - roleId String? @db.Uuid + invitedById String? + roleId String? code Int? fullName String? @db.VarChar - userId String? @db.Uuid + userId String? user_invite_invitedByIdTouser user? @relation("invite_invitedByIdTouser", fields: [invitedById], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_5a182e8b3e225b14ddf6df7e6c3") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_68eef4ab86b67747f24f288a16c") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_7c2328f76efb850b81147972476") @@ -1553,8 +1553,8 @@ model invite { } model invite_organization_contact { - inviteId String @db.Uuid - organizationContactId String @db.Uuid + inviteId String + organizationContactId String invite invite @relation(fields: [inviteId], references: [id], onDelete: Cascade, map: "FK_a0c92b6393c7a13266003d552ef") organization_contact organization_contact @relation(fields: [organizationContactId], references: [id], onDelete: Cascade, map: "FK_c5a147ce2a0ec69ccc61149262d") @@ -1564,8 +1564,8 @@ model invite_organization_contact { } model invite_organization_department { - inviteId String @db.Uuid - organizationDepartmentId String @db.Uuid + inviteId String + organizationDepartmentId String invite invite @relation(fields: [inviteId], references: [id], onDelete: Cascade, map: "FK_0935b93b3498a0f98db1af71760") organization_department organization_department @relation(fields: [organizationDepartmentId], references: [id], onDelete: Cascade, map: "FK_fe2eea7a939442efde885303efd") @@ -1575,8 +1575,8 @@ model invite_organization_department { } model invite_organization_project { - inviteId String @db.Uuid - organizationProjectId String @db.Uuid + inviteId String + organizationProjectId String invite invite @relation(fields: [inviteId], references: [id], onDelete: Cascade, map: "FK_020325728f0979a2822a8295653") organization_project organization_project @relation(fields: [organizationProjectId], references: [id], onDelete: Cascade, map: "FK_f2806968dd846cb49fcdac195a0") @@ -1586,8 +1586,8 @@ model invite_organization_project { } model invite_organization_team { - inviteId String @db.Uuid - organizationTeamId String @db.Uuid + inviteId String + organizationTeamId String invite invite @relation(fields: [inviteId], references: [id], onDelete: Cascade, map: "FK_104140c94e838a058a34b30a09c") organization_team organization_team @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, map: "FK_1132ec0c3618e53fc8cf7ed6694") @@ -1597,11 +1597,11 @@ model invite_organization_team { } model invoice { - id String @id(map: "PK_15d25c200d9bcd8a33f698daf18") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_15d25c200d9bcd8a33f698daf18") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? invoiceDate DateTime? @db.Timestamp(6) invoiceNumber Decimal? @unique(map: "UQ_d7bed97fb47876e03fd7d7c285a") @db.Decimal dueDate DateTime? @db.Timestamp(6) @@ -1627,8 +1627,8 @@ model invoice { hasRemainingAmountInvoiced Boolean? token String? @db.VarChar isArchived Boolean? @default(false) - fromOrganizationId String @db.Uuid - toContactId String? @db.Uuid + fromOrganizationId String + toContactId String? organization_invoice_organizationIdToorganization organization? @relation("invoice_organizationIdToorganization", fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_058ef835f99e28fc6717cd7c80f") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_7fb52a5f267f53b7d93af3d8c3c") organization_invoice_fromOrganizationIdToorganization organization @relation("invoice_fromOrganizationIdToorganization", fields: [fromOrganizationId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_b5c33892e630b66c65d623baf8e") @@ -1645,14 +1645,14 @@ model invoice { } model invoice_estimate_history { - id String @id(map: "PK_368a354d1bfdbe97963765e088e") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_368a354d1bfdbe97963765e088e") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? action String @db.VarChar - userId String? @db.Uuid - invoiceId String @db.Uuid + userId String? + invoiceId String invoice invoice @relation(fields: [invoiceId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_31ec3d5a6b0985cec544c642178") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_856f24297f120604f8ae2942769") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_cc0ac824ba89deda98bb418e8ca") @@ -1665,23 +1665,23 @@ model invoice_estimate_history { } model invoice_item { - id String @id(map: "PK_621317346abdf61295516f3cb76") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_621317346abdf61295516f3cb76") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? description String? @db.VarChar price Decimal @db.Decimal quantity Decimal @db.Decimal totalValue Decimal @db.Decimal applyTax Boolean? applyDiscount Boolean? - expenseId String? @db.Uuid - invoiceId String? @db.Uuid - taskId String? @db.Uuid - employeeId String? @db.Uuid - projectId String? @db.Uuid - productId String? @db.Uuid + expenseId String? + invoiceId String? + taskId String? + employeeId String? + projectId String? + productId String? organization_project organization_project? @relation(fields: [projectId], references: [id], onUpdate: NoAction, map: "FK_16f1d0e74b4d33e59c0eabdaac7") invoice invoice? @relation(fields: [invoiceId], references: [id], onUpdate: NoAction, map: "FK_553d5aac210d22fdca5c8d48ead") task task? @relation(fields: [taskId], references: [id], onUpdate: NoAction, map: "FK_62d486728b272e3b4d23a6b5db6") @@ -1696,20 +1696,20 @@ model invoice_item { } model issue_type { - id String @id(map: "PK_cbaac4689773f8f434641a1b6b7") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_cbaac4689773f8f434641a1b6b7") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar value String @db.VarChar description String? @db.VarChar icon String? @db.VarChar color String? @db.VarChar isSystem Boolean @default(false) - imageId String? @db.Uuid - projectId String? @db.Uuid - organizationTeamId String? @db.Uuid + imageId String? + projectId String? + organizationTeamId String? organization_project organization_project? @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_131331557078611a68b4a5b2e7e") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_16dbef9d1b2b422abdce8ee3ae2") image_asset image_asset? @relation(fields: [imageId], references: [id], onUpdate: NoAction, map: "FK_33779b0395f72af0b50dc526d1d") @@ -1726,11 +1726,11 @@ model issue_type { } model job_preset { - id String @id(map: "PK_dd4f738d442d8e3b681eb884baa") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_dd4f738d442d8e3b681eb884baa") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar employee_job_preset employee_job_preset[] employee_upwork_job_search_criterion employee_upwork_job_search_criterion[] @@ -1744,14 +1744,14 @@ model job_preset { } model job_preset_upwork_job_search_criterion { - id String @id(map: "PK_5384590c2acd8512b04245eda42") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_5384590c2acd8512b04245eda42") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid - jobPresetId String @db.Uuid - occupationId String? @db.Uuid - categoryId String? @db.Uuid + tenantId String? + organizationId String? + jobPresetId String + occupationId String? + categoryId String? keyword String? @db.VarChar jobType String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_2323220b4decfd2f4d8307fd78f") @@ -1765,11 +1765,11 @@ model job_preset_upwork_job_search_criterion { } model job_search_category { - id String @id(map: "PK_884dcc4f15bc5b095b725eba477") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_884dcc4f15bc5b095b725eba477") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar jobSourceCategoryId String? @db.VarChar jobSource String @default("upwork") @@ -1786,11 +1786,11 @@ model job_search_category { } model job_search_occupation { - id String @id(map: "PK_37e51c412e7d220fac1aae7d626") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_37e51c412e7d220fac1aae7d626") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar jobSourceOccupationId String? @db.VarChar jobSource String @default("upwork") @@ -1807,11 +1807,11 @@ model job_search_occupation { } model key_result { - id String @id(map: "PK_9064c5abe9ba68432934564d43f") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_9064c5abe9ba68432934564d43f") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String @db.VarChar type String @db.VarChar @@ -1825,12 +1825,12 @@ model key_result { softDeadline DateTime? @db.Timestamp(6) status String @db.VarChar weight String? @db.VarChar - ownerId String @db.Uuid - leadId String? @db.Uuid - projectId String? @db.Uuid - taskId String? @db.Uuid - kpiId String? @db.Uuid - goalId String? @db.Uuid + ownerId String + leadId String? + projectId String? + taskId String? + kpiId String? + goalId String? goal_goal_alignedKeyResultIdTokey_result goal[] @relation("goal_alignedKeyResultIdTokey_result") organization_project organization_project? @relation(fields: [projectId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_38dc003f3484eff4b59918e9ae3") goal_key_result_goalIdTogoal goal? @relation("key_result_goalIdTogoal", fields: [goalId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_3e1d08761a717c1dd71fe67249b") @@ -1853,19 +1853,19 @@ model key_result { } model key_result_template { - id String @id(map: "PK_b467deee2c9467582074306d80d") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_b467deee2c9467582074306d80d") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar type String @db.VarChar unit String? @db.VarChar targetValue Int? initialValue Int? deadline String @db.VarChar - kpiId String? @db.Uuid - goalId String? @db.Uuid + kpiId String? + goalId String? goal_template goal_template? @relation(fields: [goalId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_46426ea45456e240a092b732047") goal_kpi_template goal_kpi_template? @relation(fields: [kpiId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_4bc62c3d2ffdd6f9c7f8b3dcd1c") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_86c09eb673b0e66129dbdc72111") @@ -1877,16 +1877,16 @@ model key_result_template { } model key_result_update { - id String @id(map: "PK_d1d24d6a1d1069e293fe24f50d6") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_d1d24d6a1d1069e293fe24f50d6") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? update Int progress Int owner String @db.VarChar status String @db.VarChar - keyResultId String? @db.Uuid + keyResultId String? key_result key_result? @relation(fields: [keyResultId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_7497a70a581e5f56f792015dd37") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_cd9cbc0d5b6d62dbb63c3b3a65b") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_fd4b0cb7a44ed914acdda55e29c") @@ -1896,11 +1896,11 @@ model key_result_update { } model knowledge_base { - id String @id(map: "PK_19d3f52f6da1501b7e235f1da5c") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_19d3f52f6da1501b7e235f1da5c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar flag String @db.VarChar icon String @db.VarChar @@ -1910,7 +1910,7 @@ model knowledge_base { description String? @db.VarChar data String? @db.VarChar index Int? - parentId String? @db.Uuid + parentId String? organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_2ba72a9dec732a10e8c05bcdec1") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_bcb30c9893f4c8d0c4e556b4ed3") knowledge_base knowledge_base? @relation("knowledge_baseToknowledge_base", fields: [parentId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_ff979040ce93cbc60863d322ecd") @@ -1923,18 +1923,18 @@ model knowledge_base { } model knowledge_base_article { - id String @id(map: "PK_c5b373d858b6e8866dec56ae313") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_c5b373d858b6e8866dec56ae313") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar data String? @db.VarChar draft Boolean privacy Boolean index Int - categoryId String @db.Uuid + categoryId String tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_06a9902fedc1f9dcdbaf14afb01") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_3547f82f867489542ceae58a49e") knowledge_base knowledge_base @relation(fields: [categoryId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_66af194845635058239e794e1b9") @@ -1946,13 +1946,13 @@ model knowledge_base_article { } model knowledge_base_author { - id String @id(map: "PK_edf0d4be3efe6361a73cf958503") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_edf0d4be3efe6361a73cf958503") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid - employeeId String @db.Uuid - articleId String @db.Uuid + tenantId String? + organizationId String? + employeeId String + articleId String tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_1551e821871d9230cc0dafbbe58") knowledge_base_article knowledge_base_article @relation(fields: [articleId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_2d5ecab1f06b327bad545536143") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_81558bb2bef673628d92540b4e4") @@ -1965,7 +1965,7 @@ model knowledge_base_author { } model language { - id String @id(map: "PK_cc0a99e710eb3733f6fb42b1d4c") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_cc0a99e710eb3733f6fb42b1d4c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) name String @db.VarChar @@ -1977,11 +1977,11 @@ model language { } model merchant { - id String @id(map: "PK_9a3850e0537d869734fc9bff5d6") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_9a3850e0537d869734fc9bff5d6") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar code String @db.VarChar email String @db.VarChar @@ -1989,8 +1989,8 @@ model merchant { description String? @db.VarChar active Boolean @default(true) currency String @default("USD") @db.VarChar - contactId String? @unique(map: "REL_e03ddff05652be527e04abdc56") @db.Uuid - logoId String? @db.Uuid + contactId String? @unique(map: "REL_e03ddff05652be527e04abdc56") + logoId String? image_asset image_asset? @relation(fields: [logoId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_20acc3c3a6c900c6ef9fc681996") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_533144d7ae94180235ea456625b") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_d306a524b507f72fa8550aeffe4") @@ -2011,10 +2011,10 @@ model migrations { } model organization { - id String @id(map: "PK_472c1f99a32def1b0abb219cd67") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_472c1f99a32def1b0abb219cd67") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? name String @db.VarChar isDefault Boolean @default(false) profile_link String? @db.VarChar @@ -2073,14 +2073,14 @@ model organization { defaultInvoiceEstimateTerms String? @db.VarChar convertAcceptedEstimates Boolean? daysUntilDue Int? - contactId String? @db.Uuid + contactId String? allowTrackInactivity Boolean @default(true) inactivityTimeLimit Int @default(10) activityProofDuration Int @default(1) defaultValueDateType organization_defaultvaluedatetype_enum? @default(TODAY) isRemoveIdleTime Boolean @default(false) allowScreenshotCapture Boolean @default(true) - imageId String? @db.Uuid + imageId String? upworkOrganizationId String? @db.VarChar accounting_template accounting_template[] activity activity[] @@ -2230,11 +2230,11 @@ model organization { } model organization_award { - id String @id(map: "PK_85fa7182b9cf348b6ad11af9505") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_85fa7182b9cf348b6ad11af9505") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar year String @db.VarChar organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_2e0d21aab892b5993abaac09bcd") @@ -2246,11 +2246,11 @@ model organization_award { } model organization_contact { - id String @id(map: "PK_1b315ca37fec4b8bdbdf1b59d28") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_1b315ca37fec4b8bdbdf1b59d28") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar primaryEmail String? @db.VarChar primaryPhone String? @db.VarChar @@ -2258,11 +2258,11 @@ model organization_contact { imageUrl String? @db.VarChar(500) budget Int? createdBy String? @db.VarChar - contactId String? @unique(map: "REL_a86d2e378b953cb39261f457d2") @db.Uuid + contactId String? @unique(map: "REL_a86d2e378b953cb39261f457d2") inviteStatus organization_contact_invitestatus_enum? contactType organization_contact_contacttype_enum @default(CLIENT) budgetType organization_contact_budgettype_enum? @default(cost) - imageId String? @db.Uuid + imageId String? deal deal? expense expense[] income income[] @@ -2287,8 +2287,8 @@ model organization_contact { } model organization_contact_employee { - employeeId String @db.Uuid - organizationContactId String @db.Uuid + employeeId String + organizationContactId String organization_contact organization_contact @relation(fields: [organizationContactId], references: [id], onDelete: Cascade, map: "FK_beffeb7f338fa98354948c07894") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_cd2bd8302bfb6093d0908c36dcb") @@ -2298,11 +2298,11 @@ model organization_contact_employee { } model organization_department { - id String @id(map: "PK_6bc7ba541f5d542483eea88d4f8") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_6bc7ba541f5d542483eea88d4f8") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar candidate_department candidate_department[] invite_organization_department invite_organization_department[] @@ -2317,8 +2317,8 @@ model organization_department { } model organization_department_employee { - organizationDepartmentId String @db.Uuid - employeeId String @db.Uuid + organizationDepartmentId String + employeeId String employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_0d4f83695591ae3c98a0544ac8d") organization_department organization_department @relation(fields: [organizationDepartmentId], references: [id], onDelete: Cascade, map: "FK_c34e79a3aa682bbd3f0e8cf4c46") @@ -2328,14 +2328,14 @@ model organization_department_employee { } model organization_document { - id String @id(map: "PK_89fbc3c423bb134c8dd015958e1") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_89fbc3c423bb134c8dd015958e1") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar documentUrl String? @db.VarChar - documentId String? @db.Uuid + documentId String? organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_1057ec001a4c6b258658143047a") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_4bc83945c022a862a33629ff1e1") image_asset image_asset? @relation(fields: [documentId], references: [id], onUpdate: NoAction, map: "FK_c129dee7d1cb84e01e69b5e2c66") @@ -2346,11 +2346,11 @@ model organization_document { } model organization_employment_type { - id String @id(map: "PK_536ca16fa8ff67c78030f1a102f") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_536ca16fa8ff67c78030f1a102f") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar candidate_employment_type candidate_employment_type[] tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_227b5bd9867287cbbeece8f6ba9") @@ -2363,8 +2363,8 @@ model organization_employment_type { } model organization_employment_type_employee { - organizationEmploymentTypeId String @db.Uuid - employeeId String @db.Uuid + organizationEmploymentTypeId String + employeeId String organization_employment_type organization_employment_type @relation(fields: [organizationEmploymentTypeId], references: [id], onDelete: Cascade, map: "FK_3bfdb894d67e6a29aa95780bb47") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_3ed17d3e624435e9f2ad71e0583") @@ -2374,11 +2374,11 @@ model organization_employment_type_employee { } model organization_language { - id String @id(map: "PK_71bde6f6a7875239ffbeff339b7") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_71bde6f6a7875239ffbeff339b7") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? languageCode String @db.VarChar name String @db.VarChar level String @db.VarChar @@ -2392,11 +2392,11 @@ model organization_language { } model organization_position { - id String @id(map: "PK_b2340755b17ab4cde329463700b") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_b2340755b17ab4cde329463700b") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar candidate candidate[] employee employee[] @@ -2410,11 +2410,11 @@ model organization_position { } model organization_project { - id String @id(map: "PK_81bf90b67fca82af6657f0bfd91") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_81bf90b67fca82af6657f0bfd91") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar startDate DateTime? @db.Timestamp(6) endDate DateTime? @db.Timestamp(6) @@ -2433,10 +2433,10 @@ model organization_project { openSourceProjectUrl String? @db.VarChar budget Int? budgetType String? @default("cost") - organizationContactId String? @db.Uuid + organizationContactId String? membersCount Int? @default(0) imageUrl String? @db.VarChar(500) - imageId String? @db.Uuid + imageId String? activity activity[] expense expense[] invite_organization_project invite_organization_project[] @@ -2469,8 +2469,8 @@ model organization_project { } model organization_project_employee { - employeeId String @db.Uuid - organizationProjectId String @db.Uuid + employeeId String + organizationProjectId String organization_project organization_project @relation(fields: [organizationProjectId], references: [id], onDelete: Cascade, map: "FK_2ba868f42c2301075b7c141359e") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_6b5b0c3d994f59d9c800922257f") @@ -2480,11 +2480,11 @@ model organization_project_employee { } model organization_recurring_expense { - id String @id(map: "PK_dcb949b0c34d2a0297ce8bcea73") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_dcb949b0c34d2a0297ce8bcea73") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? startDay Int startMonth Int startYear Int @@ -2509,13 +2509,13 @@ model organization_recurring_expense { } model organization_sprint { - id String @id(map: "PK_1711f05c8de98d9ccf00acbccd2") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_1711f05c8de98d9ccf00acbccd2") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar - projectId String @db.Uuid + projectId String goal String? @db.VarChar length Int @default(7) startDate DateTime? @db.Timestamp(6) @@ -2532,11 +2532,11 @@ model organization_sprint { } model organization_task_setting { - id String @id(map: "PK_7f5ac995aeaec3033889398147c") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_7f5ac995aeaec3033889398147c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? isTasksPrivacyEnabled Boolean @default(true) isTasksMultipleAssigneesEnabled Boolean @default(true) isTasksManualTimeEnabled Boolean @default(true) @@ -2557,8 +2557,8 @@ model organization_task_setting { isTasksAutoArchiveEnabled Boolean @default(true) tasksAutoArchivePeriodDays Int @default(7) isTasksAutoStatusEnabled Boolean @default(true) - projectId String? @db.Uuid - organizationTeamId String? @db.Uuid + projectId String? + organizationTeamId String? organization_project organization_project? @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_19ab7adf33199bc6f913db277d7") organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_20a290f166c0810eafbf2717171") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_582768159ef0c749e8552ea9bcd") @@ -2571,18 +2571,18 @@ model organization_task_setting { } model organization_team { - id String @id(map: "PK_edd4226d4171cbe90fd0ee16a2a") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_edd4226d4171cbe90fd0ee16a2a") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar prefix String? @db.VarChar - createdById String? @db.Uuid + createdById String? public Boolean? @default(false) profile_link String? @db.VarChar logo String? @db.VarChar - imageId String? @db.Uuid + imageId String? color String? @db.VarChar emoji String? @db.VarChar teamSize String? @db.VarChar @@ -2618,14 +2618,14 @@ model organization_team { } model organization_team_employee { - id String @id(map: "PK_d67cf2683dff6b64a436a354b57") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_d67cf2683dff6b64a436a354b57") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid - organizationTeamId String @db.Uuid - employeeId String @db.Uuid - roleId String? @db.Uuid + tenantId String? + organizationId String? + organizationTeamId String + employeeId String + roleId String? isTrackingEnabled Boolean? @default(true) organization_team organization_team @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_8dc83cdd7c519d73afc0d8bdf09") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a2a5601d799fbfc29c17b99243f") @@ -2641,11 +2641,11 @@ model organization_team_employee { } model organization_team_join_request { - id String @id(map: "PK_131578c98f3a9e8a72b9a8a1374") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_131578c98f3a9e8a72b9a8a1374") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? email String @db.VarChar fullName String? @db.VarChar linkAddress String? @db.VarChar @@ -2654,8 +2654,8 @@ model organization_team_join_request { code Int? token String? @db.VarChar expiredAt DateTime? @db.Timestamp(6) - userId String? @db.Uuid - organizationTeamId String? @db.Uuid + userId String? + organizationTeamId String? organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_171b852be7c1f387eca93775aad") user user? @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_5e73656ce0355347477c42ae19b") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_c15823bf3f63b1fe331d9de6625") @@ -2668,8 +2668,8 @@ model organization_team_join_request { } model organization_team_tasks_task { - organizationTeamId String @db.Uuid - taskId String @db.Uuid + organizationTeamId String + taskId String organization_team organization_team @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, map: "FK_2a6fb43dc7e7aebcda95e32a107") task task @relation(fields: [taskId], references: [id], onDelete: Cascade, map: "FK_d15fbe1e1d9c1f56651d8d3831e") @@ -2679,11 +2679,11 @@ model organization_team_tasks_task { } model organization_vendor { - id String @id(map: "PK_5573f4c64e453e02d1354552b5c") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_5573f4c64e453e02d1354552b5c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar email String? @db.VarChar phone String? @db.VarChar @@ -2699,7 +2699,7 @@ model organization_vendor { } model password_reset { - id String @id(map: "PK_8515e60a2cc41584fa4784f52ce") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_8515e60a2cc41584fa4784f52ce") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) email String @db.VarChar @@ -2710,21 +2710,21 @@ model password_reset { } model payment { - id String @id(map: "PK_fcaec7df5adf9cac408c686b2ab") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_fcaec7df5adf9cac408c686b2ab") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? paymentDate DateTime? @db.Timestamp(6) amount Decimal? @db.Decimal note String? @db.VarChar currency String @db.VarChar overdue Boolean? - employeeId String? @db.Uuid - invoiceId String? @db.Uuid - recordedById String @db.Uuid - projectId String? @db.Uuid - organizationContactId String? @db.Uuid + employeeId String? + invoiceId String? + recordedById String + projectId String? + organizationContactId String? paymentMethod payment_paymentmethod_enum? user user @relation(fields: [recordedById], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_3f13c738eff604a85700746ec7d") employee employee? @relation(fields: [employeeId], references: [id], onUpdate: NoAction, map: "FK_62ef561a3bb084a7d12dad8a2d9") @@ -2745,11 +2745,11 @@ model payment { } model pipeline { - id String @id(map: "PK_df8aedd50509192d995535d68cd") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_df8aedd50509192d995535d68cd") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? description String? name String @db.VarChar isActive Boolean @@ -2762,15 +2762,15 @@ model pipeline { } model pipeline_stage { - id String @id(map: "PK_1d98a4c60c2cf5e2bc816a3e54d") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_1d98a4c60c2cf5e2bc816a3e54d") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? description String? index Int name String @db.VarChar - pipelineId String @db.Uuid + pipelineId String deal deal[] organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_04d16bdd72668de12c3e41a85a6") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_28965bf63ad4c0976892d0fd5e8") @@ -2781,17 +2781,17 @@ model pipeline_stage { } model product { - id String @id(map: "PK_bebc9158e480b949565b4dc7a82") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_bebc9158e480b949565b4dc7a82") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? enabled Boolean @default(true) code String @db.VarChar imageUrl String? @db.VarChar - featuredImageId String? @db.Uuid - productTypeId String? @db.Uuid - productCategoryId String? @db.Uuid + featuredImageId String? + productTypeId String? + productCategoryId String? invoice_item invoice_item[] tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_08293ca31a601d3cd0228120bc9") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_32a4bdd261ec81f4ca6b3abe262") @@ -2813,13 +2813,13 @@ model product { } model product_category { - id String @id(map: "PK_0dce9bc93c2d2c399982d04bef1") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_0dce9bc93c2d2c399982d04bef1") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? imageUrl String? @db.VarChar - imageId String? @db.Uuid + imageId String? product product[] tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0a0cf25cd8232a154d1cce2641c") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_853302351eaa4daa39920c270a9") @@ -2832,15 +2832,15 @@ model product_category { } model product_category_translation { - id String @id(map: "PK_40ac21f239e150f3568da259974") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_40ac21f239e150f3568da259974") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar languageCode String @db.VarChar - referenceId String @db.Uuid + referenceId String tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_27d71aa2e843f07fbf36329be3f") product_category product_category @relation(fields: [referenceId], references: [id], onDelete: Cascade, map: "FK_586294149d24cd835678878ef12") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_e46203bf1dbf3291d174f02cb34") @@ -2851,8 +2851,8 @@ model product_category_translation { } model product_gallery_item { - productId String @db.Uuid - imageAssetId String @db.Uuid + productId String + imageAssetId String image_asset image_asset @relation(fields: [imageAssetId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_825848065557eac3678b164cee2") product product @relation(fields: [productId], references: [id], onDelete: Cascade, map: "FK_f7187fa710c6a5d22f461926378") @@ -2862,14 +2862,14 @@ model product_gallery_item { } model product_option { - id String @id(map: "PK_4cf3c467e9bc764bdd32c4cd938") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_4cf3c467e9bc764bdd32c4cd938") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar code String? @db.VarChar - groupId String @db.Uuid + groupId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_47ffb82a65c43f102b7e0efa41a") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_985d235aa5394937c4493262c7f") product_option_group product_option_group @relation(fields: [groupId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_a6debf9198e2fbfa006aa10d710") @@ -2882,13 +2882,13 @@ model product_option { } model product_option_group { - id String @id(map: "PK_d76e92fdbbb5a2e6752ffd4a2c1") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_d76e92fdbbb5a2e6752ffd4a2c1") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar - productId String @db.Uuid + productId String product_option product_option[] tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_462a7fd3ce68935cf973c6709f9") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_4a1430a01b71ecdfcd54b2b6c5c") @@ -2901,14 +2901,14 @@ model product_option_group { } model product_option_group_translation { - id String @id(map: "PK_44ab19f118175288dff147c4a00") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_44ab19f118175288dff147c4a00") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar languageCode String @db.VarChar - referenceId String @db.Uuid + referenceId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_0e2fcc31743e20a45fc3cf0211d") product_option_group product_option_group @relation(fields: [referenceId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_c9ce1da98b6d93293daafee63aa") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_fd6b39f1fd1db026b5dcc3c7953") @@ -2919,15 +2919,15 @@ model product_option_group_translation { } model product_option_translation { - id String @id(map: "PK_69c79a84baabcad3c7328576ac0") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_69c79a84baabcad3c7328576ac0") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar languageCode String @db.VarChar - referenceId String @db.Uuid + referenceId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_4dc2f466cfa3d0b7fef19d12731") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_9869d7680f48487e584f5d2fca7") product_option product_option @relation(fields: [referenceId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_f43c46e12db0580af320db77381") @@ -2938,15 +2938,15 @@ model product_option_translation { } model product_translation { - id String @id(map: "PK_62d00fbc92e7a495701d6fee9d5") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_62d00fbc92e7a495701d6fee9d5") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar languageCode String @db.VarChar - referenceId String @db.Uuid + referenceId String tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_7533fd275bfb3219ce9eb4004c7") product product @relation(fields: [referenceId], references: [id], onDelete: Cascade, map: "FK_d24bc28e54f1dc296452a255917") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_e6abcacc3d3a4f9cf5ca97f2b28") @@ -2957,11 +2957,11 @@ model product_translation { } model product_type { - id String @id(map: "PK_e0843930fbb8854fe36ca39dae1") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_e0843930fbb8854fe36ca39dae1") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? icon String? @db.VarChar product product[] organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_e4e4120b0c19d3a207ce38d7581") @@ -2973,15 +2973,15 @@ model product_type { } model product_type_translation { - id String @id(map: "PK_add5418ce92da4d30bff0a89af7") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_add5418ce92da4d30bff0a89af7") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar languageCode String @db.VarChar - referenceId String @db.Uuid + referenceId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_2dd271bdeb602b8c3956287e33c") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_30aafca59cdb456bf5231f9e463") product_type product_type @relation(fields: [referenceId], references: [id], onDelete: Cascade, map: "FK_f4b767c43b4e9130c63382c9b28") @@ -2992,21 +2992,21 @@ model product_type_translation { } model product_variant { - id String @id(map: "PK_1ab69c9935c61f7c70791ae0a9f") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_1ab69c9935c61f7c70791ae0a9f") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? taxes Int @default(0) notes String? @db.VarChar quantity Int @default(0) billingInvoicingPolicy String @default("Quantity ordered") @db.VarChar internalReference String? @db.VarChar enabled Boolean @default(true) - productId String? @db.Uuid - imageId String? @db.Uuid - priceId String? @unique(map: "REL_41b31a71dda350cfe5da07e0e4") @db.Uuid - settingId String? @unique(map: "REL_9f0fd369dfeb275415c649d110") @db.Uuid + productId String? + imageId String? + priceId String? @unique(map: "REL_41b31a71dda350cfe5da07e0e4") + settingId String? @unique(map: "REL_9f0fd369dfeb275415c649d110") product_variant_price_product_variant_priceIdToproduct_variant_price product_variant_price? @relation("product_variant_priceIdToproduct_variant_price", fields: [priceId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_41b31a71dda350cfe5da07e0e4f") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_6a289b10030ae86903406e3c9bd") product product? @relation(fields: [productId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_6e420052844edf3a5506d863ce6") @@ -3025,8 +3025,8 @@ model product_variant { } model product_variant_options_product_option { - productVariantId String @db.Uuid - productOptionId String @db.Uuid + productVariantId String + productOptionId String product_variant product_variant @relation(fields: [productVariantId], references: [id], onDelete: Cascade, map: "FK_526f0131260eec308a3bd2b61b6") product_option product_option @relation(fields: [productOptionId], references: [id], onDelete: Cascade, map: "FK_e96a71affe63c97f7fa2f076dac") @@ -3036,16 +3036,16 @@ model product_variant_options_product_option { } model product_variant_price { - id String @id(map: "PK_ba659ff2940702124e799c5c854") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_ba659ff2940702124e799c5c854") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? unitCost Int @default(0) unitCostCurrency String @default("USD") @db.VarChar retailPrice Int @default(0) retailPriceCurrency String @default("USD") @db.VarChar - productVariantId String? @unique(map: "REL_5842f603bd85d924127d63d73c") @db.Uuid + productVariantId String? @unique(map: "REL_5842f603bd85d924127d63d73c") product_variant_product_variant_priceIdToproduct_variant_price product_variant? @relation("product_variant_priceIdToproduct_variant_price") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_0cfba32db58a952f58b1e35cf1c") product_variant_product_variant_price_productVariantIdToproduct_variant product_variant? @relation("product_variant_price_productVariantIdToproduct_variant", fields: [productVariantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_5842f603bd85d924127d63d73cd") @@ -3056,11 +3056,11 @@ model product_variant_price { } model product_variant_setting { - id String @id(map: "PK_68ee4279dae4e21ca296f0c11d0") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_68ee4279dae4e21ca296f0c11d0") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? isSubscription Boolean @default(false) isPurchaseAutomatically Boolean @default(false) canBeSold Boolean @default(true) @@ -3069,7 +3069,7 @@ model product_variant_setting { canBeRented Boolean @default(false) isEquipment Boolean @default(false) trackInventory Boolean @default(false) - productVariantId String? @unique(map: "REL_b0d86990fe7160a5f3e4011fb2") @db.Uuid + productVariantId String? @unique(map: "REL_b0d86990fe7160a5f3e4011fb2") product_variant_product_variant_settingIdToproduct_variant_setting product_variant? @relation("product_variant_settingIdToproduct_variant_setting") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_2efe48435d4ba480a4bb8b96fa6") product_variant_product_variant_setting_productVariantIdToproduct_variant product_variant? @relation("product_variant_setting_productVariantIdToproduct_variant", fields: [productVariantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_b0d86990fe7160a5f3e4011fb23") @@ -3080,18 +3080,18 @@ model product_variant_setting { } model proposal { - id String @id(map: "PK_ca872ecfe4fef5720d2d39e4275") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_ca872ecfe4fef5720d2d39e4275") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? jobPostUrl String? @db.VarChar valueDate DateTime? @db.Timestamp(6) jobPostContent String @db.VarChar proposalContent String @db.VarChar status String @db.VarChar - employeeId String? @db.Uuid - organizationContactId String? @db.Uuid + employeeId String? + organizationContactId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_4177329f5e6ddbfb64165927134") organization_contact organization_contact? @relation(fields: [organizationContactId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_61c45ab51852e4b0e539756d40f") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_d59ec6899d435f430799795ad7b") @@ -3104,10 +3104,10 @@ model proposal { } model report { - id String @id(map: "PK_99e4d0bea58cba73c57f935a546") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_99e4d0bea58cba73c57f935a546") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - categoryId String @db.Uuid + categoryId String name String @db.VarChar slug String? @db.VarChar description String? @db.VarChar @@ -3122,7 +3122,7 @@ model report { } model report_category { - id String @id(map: "PK_43c9bfc713c0e2a3c21c4a583c5") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_43c9bfc713c0e2a3c21c4a583c5") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) name String @db.VarChar @@ -3133,12 +3133,12 @@ model report_category { } model report_organization { - id String @id(map: "PK_2ce57f6e69de6bd1b3f28a06db1") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_2ce57f6e69de6bd1b3f28a06db1") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid - reportId String @db.Uuid + tenantId String? + organizationId String? + reportId String isEnabled Boolean @default(true) organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_5193788a3ebc1143bedb74cf725") report report @relation(fields: [reportId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a085d6f9bcfd19f8bae1dbfe135") @@ -3149,11 +3149,11 @@ model report_organization { } model request_approval { - id String @id(map: "PK_31e8193d208fec62c105223d8ac") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_31e8193d208fec62c105223d8ac") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar status Int? createdBy String? @db.VarChar @@ -3161,7 +3161,7 @@ model request_approval { min_count Int? requestId String? @db.VarChar requestType String? @db.VarChar - approvalPolicyId String? @db.Uuid + approvalPolicyId String? approval_policy approval_policy? @relation(fields: [approvalPolicyId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_26bb3420001d31337393ed05bc3") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_8343741e7929043b2a7de89f739") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_9feaa23ed7bc47d51315e304bb5") @@ -3176,14 +3176,14 @@ model request_approval { } model request_approval_employee { - id String @id(map: "PK_0f6e94eb31b0ae7e8d43523fa2e") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_0f6e94eb31b0ae7e8d43523fa2e") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? status Int? - requestApprovalId String @db.Uuid - employeeId String @db.Uuid + requestApprovalId String + employeeId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_4071f027554eefff65ac8123e6e") request_approval request_approval @relation(fields: [requestApprovalId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_563fec5539b89a57f40731f9858") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a5445b38b780b29b09369e36a9b") @@ -3196,14 +3196,14 @@ model request_approval_employee { } model request_approval_team { - id String @id(map: "PK_4b4b7aaa7147834fede372801e3") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_4b4b7aaa7147834fede372801e3") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? status Int? - requestApprovalId String @db.Uuid - teamId String @db.Uuid + requestApprovalId String + teamId String request_approval request_approval @relation(fields: [requestApprovalId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_6c75d8a8c609e88896b2653cc41") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_77e1050669b32cfff482f960169") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_94b2a3d0f17c9549dea1493dc96") @@ -3216,10 +3216,10 @@ model request_approval_team { } model role { - id String @id(map: "PK_b36bcfe02fc8de3c57a8b2391c2") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_b36bcfe02fc8de3c57a8b2391c2") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? name String @db.VarChar isSystem Boolean @default(false) invite invite[] @@ -3233,13 +3233,13 @@ model role { } model role_permission { - id String @id(map: "PK_96c8f1fd25538d3692024115b47") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_96c8f1fd25538d3692024115b47") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? permission String @db.VarChar enabled Boolean? @default(false) - roleId String @db.Uuid + roleId String description String? @db.VarChar tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_cbd053921056e77c0a8e03122af") role role @relation(fields: [roleId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_e3130a39c1e4a740d044e685730") @@ -3250,16 +3250,16 @@ model role_permission { } model screenshot { - id String @id(map: "PK_ba03e6a8a41f430189837f84fd9") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_ba03e6a8a41f430189837f84fd9") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? file String @db.VarChar thumb String? @db.VarChar recordedAt DateTime? @db.Timestamp(6) deletedAt DateTime? @db.Timestamp(6) - timeSlotId String? @db.Uuid + timeSlotId String? storageProvider screenshot_storageprovider_enum? organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_0951aacffe3f8d0cff54cf2f341") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_235004f3dafac90692cd64d9158") @@ -3274,11 +3274,11 @@ model screenshot { } model skill { - id String @id(map: "PK_a0d33334424e64fb78dc3ce7196") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_a0d33334424e64fb78dc3ce7196") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar color String @db.VarChar @@ -3292,8 +3292,8 @@ model skill { } model skill_employee { - skillId String @db.Uuid - employeeId String @db.Uuid + skillId String + employeeId String employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_760034f54e598d519b5f0c4ecee") skill skill @relation(fields: [skillId], references: [id], onDelete: Cascade, map: "FK_e699b50ca468e75bbd36913dccb") @@ -3303,8 +3303,8 @@ model skill_employee { } model skill_organization { - skillId String @db.Uuid - organizationId String @db.Uuid + skillId String + organizationId String skill skill @relation(fields: [skillId], references: [id], onDelete: Cascade, map: "FK_61593ade5fed9445738ddbe39c4") organization organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_b65cfda00c52e1fc26cc96e52ca") @@ -3314,17 +3314,17 @@ model skill_organization { } model tag { - id String @id(map: "PK_8e4052373c579afc1471f526760") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_8e4052373c579afc1471f526760") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar description String? @db.VarChar color String @db.VarChar isSystem Boolean @default(false) icon String? @db.VarChar - organizationTeamId String? @db.Uuid + organizationTeamId String? organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onUpdate: NoAction, map: "FK_49746602acc4e5e8721062b69ec") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_b08dd29fb6a8acdf83c83d8988f") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_c2f6bec0b39eaa3a6d90903ae99") @@ -3361,8 +3361,8 @@ model tag { } model tag_candidate { - candidateId String @db.Uuid - tagId String @db.Uuid + candidateId String + tagId String candidate candidate @relation(fields: [candidateId], references: [id], onDelete: Cascade, map: "FK_34e4625cc9b010079f1b5758b36") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_7e0891bb331b08bd4abb6776b76") @@ -3372,8 +3372,8 @@ model tag_candidate { } model tag_employee { - employeeId String @db.Uuid - tagId String @db.Uuid + employeeId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_b1ffe2a63a48b486e18dc59d1b7") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_e0ddfccfe9816681c410ebf2b9a") @@ -3383,8 +3383,8 @@ model tag_employee { } model tag_employee_level { - employeeLevelId String @db.Uuid - tagId String @db.Uuid + employeeLevelId String + tagId String employee_level employee_level @relation(fields: [employeeLevelId], references: [id], onDelete: Cascade, map: "FK_b3565ff8073d4f66c46d27fe88e") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_f3caf4cc158fe8b8e06578e7922") @@ -3394,8 +3394,8 @@ model tag_employee_level { } model tag_equipment { - equipmentId String @db.Uuid - tagId String @db.Uuid + equipmentId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0360b8197c2a38d6fe882cb1aff") equipment equipment @relation(fields: [equipmentId], references: [id], onDelete: Cascade, map: "FK_bb0062d51a75164fcb64041ee7d") @@ -3405,8 +3405,8 @@ model tag_equipment { } model tag_event_type { - eventTypeId String @db.Uuid - tagId String @db.Uuid + eventTypeId String + tagId String event_type event_type @relation(fields: [eventTypeId], references: [id], onDelete: Cascade, map: "FK_094af399a26d4a1d3ae17ea11e3") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_34b8f471aac00eaec6f2830e5bb") @@ -3416,8 +3416,8 @@ model tag_event_type { } model tag_expense { - expenseId String @db.Uuid - tagId String @db.Uuid + expenseId String + tagId String expense expense @relation(fields: [expenseId], references: [id], onDelete: Cascade, map: "FK_6f1108552ea7a70a4d958b338cd") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_8dcfbd0d960672fefe681bcba9c") @@ -3427,8 +3427,8 @@ model tag_expense { } model tag_income { - incomeId String @db.Uuid - tagId String @db.Uuid + incomeId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_00e2fd30761a36911648166044c") income income @relation(fields: [incomeId], references: [id], onDelete: Cascade, map: "FK_55c9568ebe1c4addc3deb6922e5") @@ -3438,8 +3438,8 @@ model tag_income { } model tag_integration { - integrationId String @db.Uuid - tagId String @db.Uuid + integrationId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0f19ad9872190b7a67a9652d5e1") integration integration @relation(fields: [integrationId], references: [id], onDelete: Cascade, map: "FK_c9a85b16615bc5c3035802adb04") @@ -3449,8 +3449,8 @@ model tag_integration { } model tag_invoice { - invoiceId String @db.Uuid - tagId String @db.Uuid + invoiceId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0728fc2cc26e8802cbf41aaf274") invoice invoice @relation(fields: [invoiceId], references: [id], onDelete: Cascade, map: "FK_5a07958d7c6253b311dbdc34ff8") @@ -3460,8 +3460,8 @@ model tag_invoice { } model tag_merchant { - merchantId String @db.Uuid - tagId String @db.Uuid + merchantId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_4af822b453c7d7d5f033e6ea16f") merchant merchant @relation(fields: [merchantId], references: [id], onDelete: Cascade, map: "FK_e7d60a4e9906d056a8966e279fd") @@ -3471,8 +3471,8 @@ model tag_merchant { } model tag_organization { - organizationId String @db.Uuid - tagId String @db.Uuid + organizationId String + tagId String organization organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_7ca79ff010025397cf9f216bdeb") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_f5e70849adc6f2f81fcbccae77c") @@ -3482,8 +3482,8 @@ model tag_organization { } model tag_organization_contact { - organizationContactId String @db.Uuid - tagId String @db.Uuid + organizationContactId String + tagId String organization_contact organization_contact @relation(fields: [organizationContactId], references: [id], onDelete: Cascade, map: "FK_1fb664a63f20bea6a3f0b387713") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_8a06f5aded97d1b5e81005e1216") @@ -3493,8 +3493,8 @@ model tag_organization_contact { } model tag_organization_department { - organizationDepartmentId String @db.Uuid - tagId String @db.Uuid + organizationDepartmentId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0eb285a6b1ac7e3d0a542e50a4b") organization_department organization_department @relation(fields: [organizationDepartmentId], references: [id], onDelete: Cascade, map: "FK_c2c9cd2ea533d5442de455fb3e1") @@ -3504,8 +3504,8 @@ model tag_organization_department { } model tag_organization_employment_type { - organizationEmploymentTypeId String @db.Uuid - tagId String @db.Uuid + organizationEmploymentTypeId String + tagId String organization_employment_type organization_employment_type @relation(fields: [organizationEmploymentTypeId], references: [id], onDelete: Cascade, map: "FK_41a87d3cfa58c851bbf03ad4e8d") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_904a731b2ae6bc1aa52c8302a98") @@ -3515,8 +3515,8 @@ model tag_organization_employment_type { } model tag_organization_expense_category { - expenseCategoryId String @db.Uuid - tagId String @db.Uuid + expenseCategoryId String + tagId String expense_category expense_category @relation(fields: [expenseCategoryId], references: [id], onDelete: Cascade, map: "FK_107a93f89c8f31f4386ae4b19d9") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_727dbf5e1100023681e216d6a93") @@ -3526,8 +3526,8 @@ model tag_organization_expense_category { } model tag_organization_position { - organizationPositionId String @db.Uuid - tagId String @db.Uuid + organizationPositionId String + tagId String organization_position organization_position @relation(fields: [organizationPositionId], references: [id], onDelete: Cascade, map: "FK_1f7e0230bc542d7037810203786") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_c71c381e77b0543ed4023aeef79") @@ -3537,8 +3537,8 @@ model tag_organization_position { } model tag_organization_project { - organizationProjectId String @db.Uuid - tagId String @db.Uuid + organizationProjectId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_18be859b371e9159dfc2cecbe13") organization_project organization_project @relation(fields: [organizationProjectId], references: [id], onDelete: Cascade, map: "FK_b69fa5d1b1d02cdbe301ea6b108") @@ -3548,8 +3548,8 @@ model tag_organization_project { } model tag_organization_team { - organizationTeamId String @db.Uuid - tagId String @db.Uuid + organizationTeamId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_2382356b63c832a137079210bd1") organization_team organization_team @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, map: "FK_4b5e0ca086e6124eeddf84252fc") @@ -3559,8 +3559,8 @@ model tag_organization_team { } model tag_organization_vendor { - organizationVendorId String @db.Uuid - tagId String @db.Uuid + organizationVendorId String + tagId String organization_vendor organization_vendor @relation(fields: [organizationVendorId], references: [id], onDelete: Cascade, map: "FK_7dde3307daf6d6dec1513ecc560") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_f71369c1cb86ae9fd4d5452f9aa") @@ -3570,8 +3570,8 @@ model tag_organization_vendor { } model tag_payment { - paymentId String @db.Uuid - tagId String @db.Uuid + paymentId String + tagId String payment payment @relation(fields: [paymentId], references: [id], onDelete: Cascade, map: "FK_1fcb2a337ee905ab36c4aea3a3c") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_e087c0540b5098d115b50d954cd") @@ -3581,8 +3581,8 @@ model tag_payment { } model tag_product { - productId String @db.Uuid - tagId String @db.Uuid + productId String + tagId String product product @relation(fields: [productId], references: [id], onDelete: Cascade, map: "FK_e516b4a2a1a8d4beda7217eeac6") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_f75a28915b38d926902c0f85b24") @@ -3592,8 +3592,8 @@ model tag_product { } model tag_proposal { - proposalId String @db.Uuid - tagId String @db.Uuid + proposalId String + tagId String proposal proposal @relation(fields: [proposalId], references: [id], onDelete: Cascade, map: "FK_3f55851a03524e567594d507744") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_451853704de278eef61a37fa7a6") @@ -3603,8 +3603,8 @@ model tag_proposal { } model tag_request_approval { - requestApprovalId String @db.Uuid - tagId String @db.Uuid + requestApprovalId String + tagId String tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_6c6576bff4b497a4975337fa5e3") request_approval request_approval @relation(fields: [requestApprovalId], references: [id], onDelete: Cascade, map: "FK_74938a30181630c480b36e27d76") @@ -3614,8 +3614,8 @@ model tag_request_approval { } model tag_task { - taskId String @db.Uuid - tagId String @db.Uuid + taskId String + tagId String task task @relation(fields: [taskId], references: [id], onDelete: Cascade, map: "FK_4b4e8f61e866248f2ddf8ce181a") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_bf7c34187a346f499e4dbc4b08b") @@ -3625,8 +3625,8 @@ model tag_task { } model tag_user { - userId String @db.Uuid - tagId String @db.Uuid + userId String + tagId String user user @relation(fields: [userId], references: [id], onDelete: Cascade, map: "FK_6a58ed56a12604c076a8e0cfdaa") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_e64a306f3215dbb99bbb26ca599") @@ -3636,8 +3636,8 @@ model tag_user { } model tag_warehouse { - warehouseId String @db.Uuid - tagId String @db.Uuid + warehouseId String + tagId String warehouse warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade, map: "FK_08385e1e045b83d25978568743f") tag tag @relation(fields: [tagId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_3557d514afd3794d40128e05423") @@ -3647,19 +3647,19 @@ model tag_warehouse { } model task { - id String @id(map: "PK_fb213f79ee45060ba925ecd576e") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_fb213f79ee45060ba925ecd576e") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? title String @db.VarChar description String? @db.VarChar status String? @db.VarChar estimate Int? dueDate DateTime? @db.Timestamp(6) - projectId String? @db.Uuid - creatorId String? @db.Uuid - organizationSprintId String? @db.Uuid + projectId String? + creatorId String? + organizationSprintId String? number Int? prefix String? @db.VarChar priority String? @db.VarChar @@ -3669,7 +3669,7 @@ model task { resolvedAt DateTime? @db.Timestamp(6) version String? @db.VarChar issueType String? @db.VarChar - parentId String? @db.Uuid + parentId String? activity activity[] employee_tasks_task employee_tasks_task[] invoice_item invoice_item[] @@ -3702,8 +3702,8 @@ model task { } model task_employee { - taskId String @db.Uuid - employeeId String @db.Uuid + taskId String + employeeId String task task @relation(fields: [taskId], references: [id], onDelete: Cascade, map: "FK_790858593698e54cba501eb6908") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_f38b1bd46f8831704348003bbff") @@ -3713,14 +3713,14 @@ model task_employee { } model task_linked_issues { - id String @id(map: "PK_7305665cc71cc7a48200e465608") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_7305665cc71cc7a48200e465608") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? action Int - taskFromId String @db.Uuid - taskToId String @db.Uuid + taskFromId String + taskToId String task_task_linked_issues_taskToIdTotask task @relation("task_linked_issues_taskToIdTotask", fields: [taskToId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_0848fd2b8c23c0ab55146297cff") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_20b50abc5c97610a75d49ad3817") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_24114c4059e6b6991daba541b1d") @@ -3733,19 +3733,19 @@ model task_linked_issues { } model task_priority { - id String @id(map: "PK_42fc82c4e184b727a3ccd7863ee") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_42fc82c4e184b727a3ccd7863ee") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar value String @db.VarChar description String? @db.VarChar icon String? @db.VarChar color String? @db.VarChar isSystem Boolean @default(false) - projectId String? @db.Uuid - organizationTeamId String? @db.Uuid + projectId String? + organizationTeamId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_1818655f27b8cf4f0d1dbfeb8db") organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_52b039cff6a1adf6b7f9e49ee44") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_7fd1b30d159b608cbf59009f681") @@ -3760,19 +3760,19 @@ model task_priority { } model task_related_issue_type { - id String @id(map: "PK_11693c6ae3157d04eaaeedd0446") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_11693c6ae3157d04eaaeedd0446") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar value String @db.VarChar description String? @db.VarChar icon String? @db.VarChar color String? @db.VarChar isSystem Boolean @default(false) - projectId String? @db.Uuid - organizationTeamId String? @db.Uuid + projectId String? + organizationTeamId String? organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_4967ebdca0aefb9d43e56695e42") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_b7b0ea8ac2825fb981c1181d115") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_bed691e21fe01cf5aceee722952") @@ -3787,19 +3787,19 @@ model task_related_issue_type { } model task_size { - id String @id(map: "PK_a08ebf2a6737612dff6d587b82e") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_a08ebf2a6737612dff6d587b82e") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar value String @db.VarChar description String? @db.VarChar icon String? @db.VarChar color String? @db.VarChar isSystem Boolean @default(false) - projectId String? @db.Uuid - organizationTeamId String? @db.Uuid + projectId String? + organizationTeamId String? organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_596512cc6508a482cc23ae6ab78") organization_project organization_project? @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_ad6792b26526bd96ab18d634544") organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_f4438327b3c2afb0832569b2a1e") @@ -3814,19 +3814,19 @@ model task_size { } model task_status { - id String @id(map: "PK_e12743a7086ec826733f54e1d95") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_e12743a7086ec826733f54e1d95") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar value String @db.VarChar description String? @db.VarChar icon String? @db.VarChar color String? @db.VarChar isSystem Boolean @default(false) - projectId String? @db.Uuid - organizationTeamId String? @db.Uuid + projectId String? + organizationTeamId String? organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_0330b4a942b536d8d1f264abe32") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_9b9a828a49f4bd6383a4073fe23") organization_project organization_project? @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a19e8975e5c296640d457dfc11f") @@ -3841,8 +3841,8 @@ model task_status { } model task_team { - taskId String @db.Uuid - organizationTeamId String @db.Uuid + taskId String + organizationTeamId String organization_team organization_team @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, map: "FK_0ef34c9f9d6dc8d14f1fbb10e86") task task @relation(fields: [taskId], references: [id], onDelete: Cascade, map: "FK_47689f911b0cbb16c94a56a9c50") @@ -3852,19 +3852,19 @@ model task_team { } model task_version { - id String @id(map: "PK_fa7a775200136d1eedfc0070455") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + id String @id(map: "PK_fa7a775200136d1eedfc0070455") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar value String @db.VarChar description String? @db.VarChar icon String? @db.VarChar color String? @db.VarChar isSystem Boolean @default(false) - projectId String? @db.Uuid - organizationTeamId String? @db.Uuid + projectId String? + organizationTeamId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_379c8bd0ce203341148c1f99ee7") organization_project organization_project? @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_91988120385964f213aec8aa84c") organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_959e77718a2e76ee56498c1106a") @@ -3879,12 +3879,12 @@ model task_version { } model tenant { - id String @id(map: "PK_da8c6efd67bb301e810e56ac139") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_da8c6efd67bb301e810e56ac139") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) name String @db.VarChar logo String? @db.VarChar - imageId String? @db.Uuid + imageId String? accounting_template accounting_template[] activity activity[] appointment_employee appointment_employee[] @@ -4025,10 +4025,10 @@ model tenant { } model tenant_setting { - id String @id(map: "PK_5be851ba95ad60d3697c0fdf1ef") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_5be851ba95ad60d3697c0fdf1ef") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? name String @db.VarChar value String? @db.VarChar tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_affdab301e348b892175f30fa39") @@ -4037,11 +4037,11 @@ model tenant_setting { } model time_log { - id String @id(map: "PK_b74817f73944f78f239601069f2") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_b74817f73944f78f239601069f2") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? startedAt DateTime? @db.Timestamp(6) stoppedAt DateTime? @db.Timestamp(6) logType String @default("TRACKED") @db.VarChar @@ -4050,14 +4050,14 @@ model time_log { reason String? @db.VarChar isBillable Boolean @default(false) deletedAt DateTime? @db.Timestamp(6) - employeeId String @db.Uuid - timesheetId String? @db.Uuid - projectId String? @db.Uuid - taskId String? @db.Uuid - organizationContactId String? @db.Uuid + employeeId String + timesheetId String? + projectId String? + taskId String? + organizationContactId String? isRunning Boolean? version String? @db.VarChar - organizationTeamId String? @db.Uuid + organizationTeamId String? organization_team organization_team? @relation(fields: [organizationTeamId], references: [id], onUpdate: NoAction, map: "FK_18dcdf754396f0cb0308dc91f4c") task task? @relation(fields: [taskId], references: [id], onUpdate: NoAction, map: "FK_1ddf2da35e34378fd845d80a18b") organization_project organization_project? @relation(fields: [projectId], references: [id], onUpdate: NoAction, map: "FK_54776f6f5fd3c13c3bc1fbfac5b") @@ -4087,11 +4087,11 @@ model time_log { } model time_off_policy { - id String @id(map: "PK_fce6b0e46ad8e48cd9ef25f2d36") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_fce6b0e46ad8e48cd9ef25f2d36") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar requiresApproval Boolean paid Boolean @@ -4106,8 +4106,8 @@ model time_off_policy { } model time_off_policy_employee { - employeeId String @db.Uuid - timeOffPolicyId String @db.Uuid + employeeId String + timeOffPolicyId String time_off_policy time_off_policy @relation(fields: [timeOffPolicyId], references: [id], onDelete: Cascade, map: "FK_0f823750ac5a7d899cc5d8d0402") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_c451f53f5a6cd97db94e1c9482d") @@ -4117,11 +4117,11 @@ model time_off_policy_employee { } model time_off_request { - id String @id(map: "PK_cd772fb7872c550c988fd42c93d") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_cd772fb7872c550c988fd42c93d") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? documentUrl String? @db.VarChar description String? @db.VarChar start DateTime @db.Timestamp(6) @@ -4130,8 +4130,8 @@ model time_off_request { status String @db.VarChar isHoliday Boolean? @default(false) isArchived Boolean? @default(false) - policyId String @db.Uuid - documentId String? @db.Uuid + policyId String + documentId String? tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_4989834dd1c9c8ea3576ed99ce5") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_981333982a6df8b815957dcbf27") image_asset image_asset? @relation(fields: [documentId], references: [id], onUpdate: NoAction, map: "FK_c009cdd795be674c20470623742") @@ -4145,8 +4145,8 @@ model time_off_request { } model time_off_request_employee { - employeeId String @db.Uuid - timeOffRequestId String @db.Uuid + employeeId String + timeOffRequestId String time_off_request time_off_request @relation(fields: [timeOffRequestId], references: [id], onDelete: Cascade, map: "FK_0a8cf0aacf95ce66e73e75a95cf") employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, map: "FK_cd312469204347b1210397770a1") @@ -4156,17 +4156,17 @@ model time_off_request_employee { } model time_slot { - id String @id(map: "PK_03f782f8c4af029253f6ad5bacf") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_03f782f8c4af029253f6ad5bacf") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? duration Int @default(0) keyboard Int @default(0) mouse Int @default(0) overall Int @default(0) startedAt DateTime @db.Timestamp(6) - employeeId String @db.Uuid + employeeId String activity activity[] screenshot screenshot[] employee employee @relation(fields: [employeeId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_7913305b850c7afc89b6ed96a30") @@ -4184,15 +4184,15 @@ model time_slot { } model time_slot_minute { - id String @id(map: "PK_620fe1f2b27a920a28c5b8398c2") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_620fe1f2b27a920a28c5b8398c2") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? keyboard Int @default(0) mouse Int @default(0) datetime DateTime @db.Timestamp(6) - timeSlotId String @db.Uuid + timeSlotId String organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_82c5edbd179359212f16f0d386a") time_slot time_slot @relation(fields: [timeSlotId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_9272701d3da8bd8507f316c9154") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_c7f72cb68b22b8ab988158e4d26") @@ -4204,8 +4204,8 @@ model time_slot_minute { } model time_slot_time_logs { - timeSlotId String @db.Uuid - timeLogId String @db.Uuid + timeSlotId String + timeLogId String time_log time_log @relation(fields: [timeLogId], references: [id], onDelete: Cascade, map: "FK_2fc2675c79cb3cbceb32bf2dc7a") time_slot time_slot @relation(fields: [timeSlotId], references: [id], onDelete: Cascade, map: "FK_63c61a88461ff5c115c3b6bcde5") @@ -4215,11 +4215,11 @@ model time_slot_time_logs { } model timesheet { - id String @id(map: "PK_53c30fa094ae81f166955fb1036") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_53c30fa094ae81f166955fb1036") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? duration Int @default(0) keyboard Int @default(0) mouse Int @default(0) @@ -4232,8 +4232,8 @@ model timesheet { isBilled Boolean @default(false) status String @default("PENDING") @db.VarChar deletedAt DateTime? @db.Timestamp(6) - employeeId String @db.Uuid - approvedById String? @db.Uuid + employeeId String + approvedById String? time_log time_log[] tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_25b8df69c9b7f5752c6a6a6ef7f") user user? @relation(fields: [approvedById], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "FK_6c1f81934a3f597b3b1a17f5623") @@ -4255,10 +4255,10 @@ model timesheet { } model user { - id String @id(map: "PK_cace4a159ff9f2512dd42373760") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_cace4a159ff9f2512dd42373760") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? thirdPartyId String? @db.VarChar firstName String? @db.VarChar lastName String? @db.VarChar @@ -4267,7 +4267,7 @@ model user { hash String? @db.VarChar imageUrl String? @db.VarChar(500) preferredLanguage String? @default("en") @db.VarChar - roleId String? @db.Uuid + roleId String? refreshToken String? @db.VarChar isActive Boolean? @default(true) preferredComponentLayout user_preferredcomponentlayout_enum? @default(TABLE) @@ -4277,7 +4277,7 @@ model user { emailToken String? @db.VarChar phoneNumber String? @db.VarChar timeZone String? @db.VarChar - imageId String? @db.Uuid + imageId String? candidate candidate? deal deal[] email_reset email_reset[] @@ -4309,14 +4309,14 @@ model user { } model user_organization { - id String @id(map: "PK_3e103cdf85b7d6cb620b4db0f0c") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_3e103cdf85b7d6cb620b4db0f0c") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? isDefault Boolean @default(true) isActive Boolean @default(true) - userId String @db.Uuid + userId String user user @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_29c3c8cc3ea9db22e4a347f4b5a") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_611e1392c8cc9b101e3ea7ad80c") organization organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade, map: "FK_7143f31467178a6164a42426c15") @@ -4329,18 +4329,18 @@ model user_organization { } model warehouse { - id String @id(map: "PK_965abf9f99ae8c5983ae74ebde8") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_965abf9f99ae8c5983ae74ebde8") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid - organizationId String? @db.Uuid + tenantId String? + organizationId String? name String @db.VarChar code String @db.VarChar email String @db.VarChar description String? @db.VarChar active Boolean @default(true) - logoId String? @db.Uuid - contactId String? @unique(map: "REL_84594016a98da8b87e0f51cd93") @db.Uuid + logoId String? + contactId String? @unique(map: "REL_84594016a98da8b87e0f51cd93") tag_warehouse tag_warehouse[] contact contact? @relation(fields: [contactId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_84594016a98da8b87e0f51cd931") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_9b2f00761a6b1b77cb6289e3fff") @@ -4356,8 +4356,8 @@ model warehouse { } model warehouse_merchant { - merchantId String @db.Uuid - warehouseId String @db.Uuid + merchantId String + warehouseId String merchant merchant @relation(fields: [merchantId], references: [id], onDelete: Cascade, map: "FK_812f0cfb560ac6dda0d1345765b") warehouse warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a6bfc0dc6e5234e8e7ef698a36a") @@ -4367,14 +4367,14 @@ model warehouse_merchant { } model warehouse_product { - id String @id(map: "PK_327c519be4aeb4ddabc14e595ca") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_327c519be4aeb4ddabc14e595ca") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? quantity Decimal? @default(0) @db.Decimal - warehouseId String @db.Uuid - productId String @db.Uuid - organizationId String? @db.Uuid + warehouseId String + productId String + organizationId String? product product @relation(fields: [productId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_3f934c4772e7c7f2c66d7ea4e72") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_62573a939f834f2de343f98288c") warehouse warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a8c9aee14d47ec7b3f2ac429ebc") @@ -4388,14 +4388,14 @@ model warehouse_product { } model warehouse_product_variant { - id String @id(map: "PK_19bd2f6572fc64f8522e94babe9") @default(dbgenerated("uuid_generate_v4()")) @db.Uuid + id String @id(map: "PK_19bd2f6572fc64f8522e94babe9") @default(cuid()) createdAt DateTime @default(now()) @db.Timestamp(6) updatedAt DateTime @default(now()) @db.Timestamp(6) - tenantId String? @db.Uuid + tenantId String? quantity Decimal? @default(0) @db.Decimal - variantId String @db.Uuid - warehouseProductId String @db.Uuid - organizationId String? @db.Uuid + variantId String + warehouseProductId String + organizationId String? warehouse_product warehouse_product @relation(fields: [warehouseProductId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_617306cb3613dd8d59301ae16fd") tenant tenant? @relation(fields: [tenantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a1c4a97b928b547c3041d3ac1f6") product_variant product_variant @relation(fields: [variantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "FK_a2f863689d1316810c41c1ea38e") diff --git a/src/cli.ts b/src/cli.ts index f82a6bd..1df1f62 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -48,6 +48,11 @@ export async function run(options?: GeneratorOptions) { "Comma-separated list of model names to include from the top-level of the generated app.", "" ) + .option( + "-depth ", + "Maximum recursion depth for your models. (Changing this for large data models is not recommended, unless you filter down your models with the 'include' or 'exclude' flags also.)", + "5" + ) .parse(process.argv); const cliArgs = program.opts(); @@ -58,6 +63,8 @@ export async function run(options?: GeneratorOptions) { : options?.generator.config.include ? String(options.generator.config.include).split(",") : []; + const maxDepth = parseInt(options?.generator.config.depth || cliArgs.Depth); + const excludedModels = includedModels.length > 0 ? [] @@ -76,13 +83,11 @@ export async function run(options?: GeneratorOptions) { prismaSchemaPath, outputDirectory, excludedModels, - includedModels + includedModels, + maxDepth ); - const spinner = ora( - `${chalk.blue.bold("Linting and Formatting Generated Files...")}\n` - ).start(); - await formatDirectory(outputDirectory); - spinner.succeed(chalk.green.bold(`Linted and Formatted Generated Files`)); + + // await formatDirectory(outputDirectory); console.log( `${chalk.green.bold( diff --git a/src/generators.ts b/src/generators.ts index efa7882..d0e4d4a 100644 --- a/src/generators.ts +++ b/src/generators.ts @@ -3,7 +3,6 @@ import { getDMMF } from "@prisma/internals"; import chalk from "chalk"; import fs from "fs"; import path from "path"; -import ora from "ora"; // Import 'ora' import { promisify } from "util"; import { @@ -12,9 +11,8 @@ import { copyDirectory, copyImage, copyPublicDirectory, - findAndReplaceInFiles, getDynamicSlugs, - popStringEnd, + modifyFile, } from "./helpers"; import { ModelTree, @@ -113,45 +111,6 @@ export interface RouteObject { description: string; } -function addStringBetweenComments( - directory: string, - insertString: string, - startComment: string, - endComment: string -): void { - const files = fs.readdirSync(directory); - files.forEach((file) => { - const filePath = path.join(directory, file); - - // Check if the file is a directory - if (fs.statSync(filePath).isDirectory()) { - // Recursively process subdirectories - addStringBetweenComments( - filePath, - insertString, - startComment, - endComment - ); - } else { - // Read file contents - let fileContent = fs.readFileSync(filePath, "utf8"); - // Check if both comments exist in the file - while ( - fileContent.includes(startComment) && - fileContent.includes(endComment) - ) { - // Replace the content between the comments and the comments themselves with the insert string - const startIndex = fileContent.indexOf(startComment); - const endIndex = fileContent.indexOf(endComment) + endComment.length; - const contentToRemove = fileContent.slice(startIndex, endIndex); - fileContent = fileContent.replace(contentToRemove, insertString); - } - // Write the modified content back to the file - fs.writeFileSync(filePath, fileContent); - } - }); -} - async function generateCreateForm( modelTree: ModelTree, routeUrl: string, @@ -393,7 +352,8 @@ export async function generate( prismaSchemaPath: string, outputDirectory: string, excludedModels: string[], - includedModels: string[] + includedModels: string[], + maxAllowedDepth: number ) { // Read the Prisma schema file const prismaSchema = await readFileAsync(prismaSchemaPath, "utf-8"); @@ -465,17 +425,29 @@ export async function generate( )} ${chalk.gray("(For deeply-nested schemas, this may take a moment)")}` ); - await generateAppDirectoryFromModelTree(modelTree, appDirectory, enums); + await generateAppDirectoryFromModelTree( + modelTree, + appDirectory, + enums, + maxAllowedDepth + ); // Home route list const modelNames = modelTree.map((m) => m.model.name); const routeList = generateRouteList(modelTree.map((m) => m.model.name)); - addStringBetweenComments( - appDirectory, - routeList, - "{/* @nexquik routeList start */}", - "{/* @nexquik routeList stop */}" + + // dynamic/edit/page.tsx + modifyFile( + path.join(appDirectory, "page.tsx"), + path.join(path.join(outputDirectory, "app", "page.tsx")), + [ + { + startComment: "{/* @nexquik routeList start */}", + endComment: "{/* @nexquik routeList stop */}", + insertString: routeList, + }, + ] ); // Route sidebar @@ -498,11 +470,18 @@ export async function generate( `; } - addStringBetweenComments( - outputDirectory, - routeSidebar, - "{/* //@nexquik routeSidebar start */}", - "{/* //@nexquik routeSidebar stop */}" + + // layout.tsx + await modifyFile( + path.join(path.join(__dirname, "templateRoot", "app", "layout.tsx")), + path.join(path.join(outputDirectory, "app", "layout.tsx")), + [ + { + startComment: "{/* //@nexquik routeSidebar start */}", + endComment: "{/* //@nexquik routeSidebar stop */}", + insertString: routeSidebar, + }, + ] ); return; @@ -681,17 +660,37 @@ ${routeLinks.join("\n")} export async function generateAppDirectoryFromModelTree( modelTreeArray: ModelTree[], outputDirectory: string, - enums: Record + enums: Record, + maxAllowedDepth: number ): Promise { const routes: RouteObject[] = []; - + let fileCount = 0; + let directoryCount = 0; + let maxDepth = 0; async function generateRoutes( modelTree: ModelTree, parentRoute: { name: string; uniqueIdentifierField: { name: string; type: string }[]; - } + }, + depth = 0, + maxAllowedDepth: number ) { + if (depth > maxAllowedDepth) { + maxDepth = maxAllowedDepth; + process.stdout.write( + chalk.yellow(`\u001b[2K\rMax depth hit for ${modelTree.modelName}`) + ); + return; + } + if (depth > maxDepth) { + maxDepth = depth; + } + process.stdout.write(`\u001b[2K\r${modelTree.model.name} - Depth ${depth}`); + + let childLoopPromises: Promise[] = []; + directoryCount += 3; + fileCount += 4; // Get the current model name const modelName = modelTree.modelName; @@ -710,6 +709,7 @@ export async function generateAppDirectoryFromModelTree( ); } route += modelName.charAt(0).toLowerCase() + modelName.slice(1) + "/"; + routes.push({ segment: `${route}create`, model: modelName, @@ -766,170 +766,143 @@ export async function generateAppDirectoryFromModelTree( } if (baseModelDirectory !== "app/") { - // Copy files from template model, skipping dynamic directory. (create/, page.tsx) - copyDirectory( - path.join(__dirname, "templateRoot", "app", "nexquikTemplateModel"), - baseModelDirectory, - true, - "[id]" - ); - } - - const createBreadCrumb = generateBreadCrumb(route + "/create"); + // Create create directory + if (!fs.existsSync(path.join(baseModelDirectory, "create"))) { + fs.mkdirSync(path.join(baseModelDirectory, "create")); + } - addStringBetweenComments( - path.join(baseModelDirectory), - createBreadCrumb, - "{/* @nexquik createBreadcrumb start */}", - "{/* @nexquik createBreadcrumb stop */}" - ); + const templateModelDirectory = path.join( + __dirname, + "templateRoot", + "app", + "nexquikTemplateModel" + ); + const createBreadCrumb = generateBreadCrumb(route + "/create"); - const listBreadCrumb = generateBreadCrumb(route); + const listBreadCrumb = generateBreadCrumb(route); - addStringBetweenComments( - baseModelDirectory, - listBreadCrumb, - "{/* @nexquik listBreadcrumb start */}", - "{/* @nexquik listBreadcrumb stop */}" - ); + // Create dynamic directories + const slugsForThisModel = getDynamicSlugs( + modelTree.modelName, + modelUniqueIdentifierField.map((f) => f.name) + ); + slugsForThisModel.forEach((parentSlug) => { + route += `[${parentSlug}]/`; + }); + const dynamicOutputDirectory = path.join(outputDirectory, route); + const parts = dynamicOutputDirectory + .split(path.sep) + .filter((item) => item !== ""); + let currentPath = ""; + for (const part of parts) { + currentPath = path.join(currentPath, part); + if (!fs.existsSync(currentPath)) { + fs.mkdirSync(currentPath); + } + } - // Create dynamic directories - const slugsForThisModel = getDynamicSlugs( - modelTree.modelName, - modelUniqueIdentifierField.map((f) => f.name) - ); - slugsForThisModel.forEach((parentSlug) => { - route += `[${parentSlug}]/`; - }); - const dynamicOutputDirectory = path.join(outputDirectory, route); - const parts = dynamicOutputDirectory - .split(path.sep) - .filter((item) => item !== ""); - let currentPath = ""; - for (const part of parts) { - currentPath = path.join(currentPath, part); - if (!fs.existsSync(currentPath)) { - fs.mkdirSync(currentPath); + // Create edit directory + if (!fs.existsSync(path.join(dynamicOutputDirectory, "edit"))) { + fs.mkdirSync(path.join(dynamicOutputDirectory, "edit")); } - } - // Copy template dynamic directory into new dynamic directory - copyDirectory( - path.join( + const templateDynamicDirectory = path.join( __dirname, "templateRoot", "app", "nexquikTemplateModel", "[id]" - ), - dynamicOutputDirectory, - true - ); + ); - // ############### List Page - const idFields = modelTree.uniqueIdentifierField; - let select = ""; - if (idFields.length > 0) { - select += "select:{"; - idFields.forEach(({ name }, index) => { - if (index > 0) { - select += ","; - } - select += `${name}: true`; - }); - select += "}, "; - } - select += ` skip: page, + // ############### List Page + const idFields = modelTree.uniqueIdentifierField; + let select = ""; + if (idFields.length > 0) { + select += "select:{"; + idFields.forEach(({ name }, index) => { + if (index > 0) { + select += ","; + } + select += `${name}: true`; + }); + select += "}, "; + } + select += ` skip: page, take: limit`; - const listFormCode = await generateListForm( - modelTree, - createRedirectForm, - modelUniqueIdentifierField, - idFields.map((f) => f.name) - ); - addStringBetweenComments( - baseModelDirectory, - listFormCode, - "{/* @nexquik listForm start */}", - "{/* @nexquik listForm stop */}" - ); + const listFormCode = await generateListForm( + modelTree, + createRedirectForm, + modelUniqueIdentifierField, + idFields.map((f) => f.name) + ); - // Get relation fields to parent - let relationFieldToParent = ""; - let fieldType = ""; - if (modelTree.parent) { - // Get the field on the current model that is the id referencing the parent - modelTree.model.fields.forEach((mf) => { - if (mf.type === modelTree.parent?.name) { - if ( - mf.relationFromFields?.length && - mf.relationFromFields.length > 0 - ) { - relationFieldToParent = mf.relationFromFields[0]; + // Get relation fields to parent + let relationFieldToParent = ""; + let fieldType = ""; + if (modelTree.parent) { + // Get the field on the current model that is the id referencing the parent + modelTree.model.fields.forEach((mf) => { + if (mf.type === modelTree.parent?.name) { + if ( + mf.relationFromFields?.length && + mf.relationFromFields.length > 0 + ) { + relationFieldToParent = mf.relationFromFields[0]; + } } - } - }); - - // Get the field type on the current model that is the id referencing the parent - fieldType = - modelTree.model.fields.find((f) => f.name === relationFieldToParent) - ?.type || ""; - } - const parentIdentifierFields = modelTree.model.fields.find((field) => - field.relationFromFields?.includes(relationFieldToParent) - )?.relationToFields; - let parentIdentifierField = ""; - if (parentIdentifierFields && parentIdentifierFields.length > 0) { - parentIdentifierField = parentIdentifierFields[0]; - } - // Delete Where Clause - const deleteWhereClause = generateDeleteClause(modelUniqueIdentifierField); - addStringBetweenComments( - baseModelDirectory, - deleteWhereClause, - "//@nexquik prismaDeleteClause start", - "//@nexquik prismaDeleteClause stop" - ); - const listRedirect = await generateRedirect(`\`${createRedirectForm}\``); - addStringBetweenComments( - baseModelDirectory, - listRedirect, - "//@nexquik listRedirect start", - "//@nexquik listRedirect stop" - ); + }); - // In parent, loop through fields and find field of 'type' current model - let isManyToMany = false; - let referenceFieldNameToParent = ""; - const parentIdField = modelTree.parent?.fields.find((f) => f.isId); - const relationNameToParent = modelTree.parent?.fields.find( - (a) => a.type === modelTree.modelName - )?.relationName; - if (relationNameToParent) { - const referenceFieldToParent = modelTree.model.fields.find( - (f) => f.relationName === relationNameToParent - ); - if (referenceFieldToParent) { - referenceFieldNameToParent = referenceFieldToParent.name; + // Get the field type on the current model that is the id referencing the parent + fieldType = + modelTree.model.fields.find((f) => f.name === relationFieldToParent) + ?.type || ""; } - if (referenceFieldToParent?.isList) { - isManyToMany = true; + const parentIdentifierFields = modelTree.model.fields.find((field) => + field.relationFromFields?.includes(relationFieldToParent) + )?.relationToFields; + let parentIdentifierField = ""; + if (parentIdentifierFields && parentIdentifierFields.length > 0) { + parentIdentifierField = parentIdentifierFields[0]; } - } - let manyToManyWhere = ""; - let manyToManyConnect = ""; - if (isManyToMany && parentIdField) { - let typecastValue = `params.${getDynamicSlugs(modelTree.parent?.name, [ - parentIdField.name, - ])}`; - if (parentIdField?.type === "Int" || parentIdField?.type === "Float") { - typecastValue = `Number(${typecastValue})`; - } else if (parentIdField?.type === "Boolean") { - typecastValue = `Boolean(${typecastValue})`; - } else if (parentIdField?.type === "String") { - typecastValue = `String(${typecastValue})`; + // Delete Where Clause + const deleteWhereClause = generateDeleteClause( + modelUniqueIdentifierField + ); + + const listRedirect = await generateRedirect(`\`${createRedirectForm}\``); + + // In parent, loop through fields and find field of 'type' current model + let isManyToMany = false; + let referenceFieldNameToParent = ""; + const parentIdField = modelTree.parent?.fields.find((f) => f.isId); + const relationNameToParent = modelTree.parent?.fields.find( + (a) => a.type === modelTree.modelName + )?.relationName; + if (relationNameToParent) { + const referenceFieldToParent = modelTree.model.fields.find( + (f) => f.relationName === relationNameToParent + ); + if (referenceFieldToParent) { + referenceFieldNameToParent = referenceFieldToParent.name; + } + if (referenceFieldToParent?.isList) { + isManyToMany = true; + } } - manyToManyWhere = ` + let manyToManyWhere = ""; + let manyToManyConnect = ""; + if (isManyToMany && parentIdField) { + let typecastValue = `params.${getDynamicSlugs(modelTree.parent?.name, [ + parentIdField.name, + ])}`; + if (parentIdField?.type === "Int" || parentIdField?.type === "Float") { + typecastValue = `Number(${typecastValue})`; + } else if (parentIdField?.type === "Boolean") { + typecastValue = `Boolean(${typecastValue})`; + } else if (parentIdField?.type === "String") { + typecastValue = `String(${typecastValue})`; + } + manyToManyWhere = ` where: { ${referenceFieldNameToParent}: { some: { @@ -941,131 +914,139 @@ take: limit`; } `; - manyToManyConnect = ` + manyToManyConnect = ` ${referenceFieldNameToParent}: { connect: { ${parentIdField?.name}: ${typecastValue}, }, }, `; - } - - // Unique field on parent, that points to this model - const parentReferenceField = getParentReferenceField(modelTree); - const relationsToParent = modelTree.model.fields.find( - (f) => f.name === parentReferenceField - )?.relationToFields; - - const parentReferenceFieldType = modelTree.parent?.fields.find( - (f) => relationsToParent && relationsToParent[0] === f.name - )?.type; - - const whereparentClause = modelTree.parent - ? generateWhereParentClause( - "params", - getDynamicSlugs(modelTree.parent.name, [parentIdentifierField])[0], - relationsToParent ? relationsToParent[0] : parentIdentifierField, - parentReferenceFieldType || fieldType, - getParentReferenceField(modelTree), - manyToManyWhere, - select - ) - : `({${select}})`; - // Enum import for create and edit pages - const enumImport = Object.keys(enums) - .map((e) => `import { ${e} } from "@prisma/client";`) - .join("\n"); - - addStringBetweenComments( - baseModelDirectory, - enumImport, - "//@nexquik prismaEnumImport start", - "//@nexquik prismaEnumImport stop" - ); - - addStringBetweenComments( - baseModelDirectory, - whereparentClause, - "//@nexquik prismaWhereParentClause start", - "//@nexquik prismaWhereParentClause stop" - ); + } - const linkHref = createRedirectForm; - - const listPagination = ` -
- - Showing{" "} - - {count === 0 - ? 0 - : page * limit > count - ? count - limit + 1 - : (page - 1) * limit + 1} - {" "} - to{" "} - - {Math.min((page - 1) * limit + limit, count)} - {" "} - of{" "} - - {count} - {" "} - Entries - -
- 1 ? page - 1 : 1, - }, - }} - className="flex items-center justify-center px-3 h-8 text-sm font-medium text-white bg-gray-800 rounded-l hover:bg-gray-900 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white" - > - Prev - - - Next - -
-
+ // Unique field on parent, that points to this model + const parentReferenceField = getParentReferenceField(modelTree); + const relationsToParent = modelTree.model.fields.find( + (f) => f.name === parentReferenceField + )?.relationToFields; + + const parentReferenceFieldType = modelTree.parent?.fields.find( + (f) => relationsToParent && relationsToParent[0] === f.name + )?.type; + + const whereparentClause = modelTree.parent + ? generateWhereParentClause( + "params", + getDynamicSlugs(modelTree.parent.name, [parentIdentifierField])[0], + relationsToParent ? relationsToParent[0] : parentIdentifierField, + parentReferenceFieldType || fieldType, + getParentReferenceField(modelTree), + manyToManyWhere, + select + ) + : `({${select}})`; + // Enum import for create and edit pages + const enumImport = Object.keys(enums) + .map((e) => `import { ${e} } from "@prisma/client";`) + .join("\n"); + + const linkHref = createRedirectForm; + + const listPagination = ` + +
    +
  • + + Previous + + +
  • + {Array(Math.ceil(count / limit)) + .fill(0) + .map((_, i) => ( +
  • + + {i + 1} + +
  • + ))} +
  • + = Math.ceil(count / limit) ? page : page + 1, + }, + }} + className="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 rounded-r-lg hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white" + > + Next + + +
  • +
`; - addStringBetweenComments( - baseModelDirectory, - listPagination, - "{/* @nexquik listPagination start */}", - "{/* @nexquik listPagination stop */}" - ); - - const countWhereparentClause = modelTree.parent - ? generateWhereParentClause( - "params", - getDynamicSlugs(modelTree.parent.name, [parentIdentifierField])[0], - relationsToParent ? relationsToParent[0] : parentIdentifierField, - parentReferenceFieldType || fieldType, - getParentReferenceField(modelTree), - manyToManyWhere, - "" - ) - : ``; - const listCount = ` + const countWhereparentClause = modelTree.parent + ? generateWhereParentClause( + "params", + getDynamicSlugs(modelTree.parent.name, [parentIdentifierField])[0], + relationsToParent ? relationsToParent[0] : parentIdentifierField, + parentReferenceFieldType || fieldType, + getParentReferenceField(modelTree), + manyToManyWhere, + "" + ) + : ``; + const listCount = ` const page = typeof searchParams?.page === "string" ? Number(searchParams?.page) : 1; const limit = @@ -1074,202 +1055,313 @@ take: limit`; modelName.charAt(0).toLowerCase() + modelName.slice(1) }.count${countWhereparentClause ? countWhereparentClause : "()"}; `; - addStringBetweenComments( - baseModelDirectory, - listCount, - "/* @nexquik listCount start */", - "/* @nexquik listCount stop */" - ); - - const uniqueDynamicSlugs = getDynamicSlugs( - modelTree.modelName, - modelUniqueIdentifierField.map((f) => f.name) - ); - // ############### Show Page - const childModelLinkList = await generateChildrenList( - modelTree, - createRedirectForm - ); - const showFormCode = await generateShowForm( - modelTree, - createRedirectForm, - childModelLinkList - ); + const uniqueDynamicSlugs = getDynamicSlugs( + modelTree.modelName, + modelUniqueIdentifierField.map((f) => f.name) + ); - addStringBetweenComments( - baseModelDirectory, - showFormCode, - "{/* @nexquik showForm start */}", - "{/* @nexquik showForm stop */}" - ); + // ############### Show Page + const childModelLinkList = await generateChildrenList( + modelTree, + createRedirectForm + ); + const showFormCode = await generateShowForm( + modelTree, + createRedirectForm, + childModelLinkList + ); - // If many to many, must do a connect - const createFormCode = await generateCreateForm( - modelTree, - createRedirectForm, - enums - ); - addStringBetweenComments( - baseModelDirectory, - createFormCode, - "{/* @nexquik createForm start */}", - "{/* @nexquik createForm stop */}" - ); + // If many to many, must do a connect + const createFormCode = await generateCreateForm( + modelTree, + createRedirectForm, + enums + ); - let redirectStr = ""; - modelTree.uniqueIdentifierField.forEach( - (f) => (redirectStr += "/" + `\${created.${f.name}}`) - ); - const createRedirect = await generateRedirect( - `\`${createRedirectForm}${redirectStr}\`` - ); - addStringBetweenComments( - baseModelDirectory, - createRedirect, - "//@nexquik createRedirect start", - "//@nexquik createRedirect stop" - ); - const createLink = await generateLink( - `${createRedirectForm}/create`, - "Create New NexquikTemplateModel" - ); - addStringBetweenComments( - baseModelDirectory, - createLink, - "{/* @nexquik createLink start */}", - "{/* @nexquik createLink stop */}" - ); - const prismaInput = generateConvertToPrismaInputCode(modelTree); - addStringBetweenComments( - baseModelDirectory, - prismaInput, - "//@nexquik prismaEditDataInput start", - "//@nexquik prismaEditDataInput stop" - ); + let redirectStr = ""; + modelTree.uniqueIdentifierField.forEach( + (f) => (redirectStr += "/" + `\${created.${f.name}}`) + ); + const createRedirect = await generateRedirect( + `\`${createRedirectForm}${redirectStr}\`` + ); - const parentSlugs = getDynamicSlugs( - modelTree.parent?.name, - parentRoute.uniqueIdentifierField.map((f) => f.name) - ); + const createLink = await generateLink( + `${createRedirectForm}/create`, + "Create New NexquikTemplateModel" + ); - const prismaCreateInput = generateConvertToPrismaCreateInputCode( - modelTree, - parentSlugs, - manyToManyConnect - ); - addStringBetweenComments( - baseModelDirectory, - prismaCreateInput, - "//@nexquik prismaCreateDataInput start", - "//@nexquik prismaCreateDataInput stop" - ); + const prismaInput = generateConvertToPrismaInputCode(modelTree); - const whereClause = generateWhereClause( - "params", - uniqueDynamicSlugs, - modelUniqueIdentifierField - ); - addStringBetweenComments( - baseModelDirectory, - whereClause, - "//@nexquik prismaWhereInput start", - "//@nexquik prismaWhereInput stop" - ); + const parentSlugs = getDynamicSlugs( + modelTree.parent?.name, + parentRoute.uniqueIdentifierField.map((f) => f.name) + ); - // ############### Edit Page - const editFormCode = await generateEditForm( - modelTree, - createRedirectForm, - enums - ); - addStringBetweenComments( - baseModelDirectory, - editFormCode, - "{/* @nexquik editForm start */}", - "{/* @nexquik editForm stop */}" - ); + const prismaCreateInput = generateConvertToPrismaCreateInputCode( + modelTree, + parentSlugs, + manyToManyConnect + ); - let redirectStr2 = ""; - uniqueDynamicSlugs.forEach( - (f) => (redirectStr2 += "/" + `\${params.${f}}`) - ); + const whereClause = generateWhereClause( + "params", + uniqueDynamicSlugs, + modelUniqueIdentifierField + ); - const editRedirect = await generateRedirect( - `\`${createRedirectForm}/${redirectStr2}\`` - ); - addStringBetweenComments( - baseModelDirectory, - editRedirect, - "//@nexquik editRedirect start", - "//@nexquik editRedirect stop" - ); + // ############### Edit Page + const editFormCode = await generateEditForm( + modelTree, + createRedirectForm, + enums + ); - // ############### Extras - const revalidatePath = await generateRevalidatePath( - `${createRedirectForm}` - ); - addStringBetweenComments( - baseModelDirectory, - revalidatePath, - "//@nexquik revalidatePath start", - "//@nexquik revalidatePath stop" - ); + let redirectStr2 = ""; + uniqueDynamicSlugs.forEach( + (f) => (redirectStr2 += "/" + `\${params.${f}}`) + ); - const backLink = await generateLink( - popStringEnd(popStringEnd(`${createRedirectForm}`, "/"), "/"), - "Back" - ); - addStringBetweenComments( - baseModelDirectory, - backLink, - "{/* @nexquik backLink start */}", - "{/* @nexquik backLink stop */}" - ); + const editRedirect = await generateRedirect( + `\`${createRedirectForm}/${redirectStr2}\`` + ); - const baseBreadCrumb = generateBreadCrumb(route); + // ############### Extras + const revalidatePath = await generateRevalidatePath( + `${createRedirectForm}` + ); - addStringBetweenComments( - baseModelDirectory, - baseBreadCrumb, - "{/* @nexquik breadcrumb start */}", - "{/* @nexquik breadcrumb stop */}" - ); + const baseBreadCrumb = generateBreadCrumb(route); + + const editBreadCrumb = generateBreadCrumb(route + "/edit"); + + // dynamic/edit/page.tsx + childLoopPromises.push( + modifyFile( + path.join(templateDynamicDirectory, "edit", "page.tsx"), + path.join(dynamicOutputDirectory, "edit", "page.tsx"), + [ + { + startComment: "//@nexquik prismaEnumImport start", + endComment: "//@nexquik prismaEnumImport stop", + insertString: enumImport, + }, + { + startComment: "//@nexquik prismaWhereInput start", + endComment: "//@nexquik prismaWhereInput stop", + insertString: whereClause, + }, + { + startComment: "//@nexquik prismaEditDataInput start", + endComment: "//@nexquik prismaEditDataInput stop", + insertString: prismaInput, + }, + { + startComment: "//@nexquik editRedirect start", + endComment: "//@nexquik editRedirect stop", + insertString: editRedirect, + }, + { + startComment: "{/* @nexquik editBreadCrumb start */}", + endComment: "{/* @nexquik editBreadCrumb stop */}", + insertString: editBreadCrumb, + }, + { + startComment: "{/* @nexquik editForm start */}", + endComment: "{/* @nexquik editForm stop */}", + insertString: editFormCode, + }, + ], + modelTree.modelName + ) + ); - const editBreadCrumb = generateBreadCrumb(route + "/edit"); + // dynamic/page.tsx + childLoopPromises.push( + modifyFile( + path.join(templateDynamicDirectory, "page.tsx"), + path.join(dynamicOutputDirectory, "page.tsx"), + [ + { + startComment: "//@nexquik prismaWhereInput start", + endComment: "//@nexquik prismaWhereInput stop", + insertString: whereClause, + }, + { + startComment: "//@nexquik prismaDeleteClause start", + endComment: "//@nexquik prismaDeleteClause stop", + insertString: deleteWhereClause, + }, + { + startComment: "//@nexquik revalidatePath start", + endComment: "//@nexquik revalidatePath stop", + insertString: revalidatePath, + }, + { + startComment: "//@nexquik listRedirect start", + endComment: "//@nexquik listRedirect stop", + insertString: listRedirect, + }, + { + startComment: "{/* @nexquik breadcrumb start */}", + endComment: "{/* @nexquik breadcrumb stop */}", + insertString: baseBreadCrumb, + }, + { + startComment: "{/* @nexquik showForm start */}", + endComment: "{/* @nexquik showForm stop */}", + insertString: showFormCode, + }, + ], + modelTree.modelName + ) + ); - addStringBetweenComments( - path.join(baseModelDirectory), - editBreadCrumb, - "{/* @nexquik editBreadCrumb start */}", - "{/* @nexquik editBreadCrumb stop */}" - ); + // base/page.tsx + childLoopPromises.push( + modifyFile( + path.join(templateModelDirectory, "page.tsx"), + path.join(baseModelDirectory, "page.tsx"), + [ + { + startComment: "/* @nexquik listCount start */", + endComment: "/* @nexquik listCount stop */", + insertString: listCount, + }, + { + startComment: "//@nexquik prismaWhereParentClause start", + endComment: "//@nexquik prismaWhereParentClause stop", + insertString: whereparentClause, + }, + { + startComment: "//@nexquik prismaDeleteClause start", + endComment: "//@nexquik prismaDeleteClause stop", + insertString: deleteWhereClause, + }, + { + startComment: "//@nexquik revalidatePath start", + endComment: "//@nexquik revalidatePath stop", + insertString: revalidatePath, + }, + { + startComment: "{/* @nexquik listBreadcrumb start */}", + endComment: "{/* @nexquik listBreadcrumb stop */}", + insertString: listBreadCrumb, + }, + { + startComment: "{/* @nexquik createLink start */}", + endComment: "{/* @nexquik createLink stop */}", + insertString: createLink, + }, + { + startComment: "{/* @nexquik listForm start */}", + endComment: "{/* @nexquik listForm stop */}", + insertString: listFormCode, + }, + { + startComment: "{/* @nexquik listPagination start */}", + endComment: "{/* @nexquik listPagination stop */}", + insertString: listPagination, + }, + ], + modelTree.modelName + ) + ); - // Replace all placeholder model names - findAndReplaceInFiles( - baseModelDirectory, - "nexquikTemplateModel", - modelTree.modelName - ); + // base/create/page.tsx + childLoopPromises.push( + modifyFile( + path.join(templateModelDirectory, "create", "page.tsx"), + path.join(baseModelDirectory, "create", "page.tsx"), + [ + { + startComment: "//@nexquik prismaEnumImport start", + endComment: "//@nexquik prismaEnumImport stop", + insertString: enumImport, + }, + { + startComment: "//@nexquik prismaCreateDataInput start", + endComment: "//@nexquik prismaCreateDataInput stop", + insertString: prismaCreateInput, + }, + { + startComment: "//@nexquik revalidatePath start", + endComment: "//@nexquik revalidatePath stop", + insertString: revalidatePath, + }, + { + startComment: "//@nexquik createRedirect start", + endComment: "//@nexquik createRedirect stop", + insertString: createRedirect, + }, + + { + startComment: "{/* @nexquik createBreadcrumb start */}", + endComment: "{/* @nexquik createBreadcrumb stop */}", + insertString: createBreadCrumb, + }, + { + startComment: "{/* @nexquik createForm start */}", + endComment: "{/* @nexquik createForm stop */}", + insertString: createFormCode, + }, + ], + modelTree.modelName + ) + ); - for (const child of modelTree.children) { - await generateRoutes(child, { - name: route, - uniqueIdentifierField: modelUniqueIdentifierField, - }); + childLoopPromises = childLoopPromises.concat( + modelTree.children.map(async (child) => { + try { + await generateRoutes( + child, + { + name: route, + uniqueIdentifierField: modelUniqueIdentifierField, + }, + depth + 1, + maxAllowedDepth + ); + } catch (error) { + console.error("An error occurred:", error); + } + }) + ); + await Promise.all(childLoopPromises); } } - for (const modelTree of modelTreeArray) { - const spinner = ora( - `Generating model: ${modelTree.model.name} ...` - ).start(); - await generateRoutes(modelTree, { - name: "/", - uniqueIdentifierField: [], - }); - spinner.stop(); - } + const startTime = new Date().getTime(); + + // Start the main loop + const mainLoopPromises = modelTreeArray.map(async (modelTree) => { + try { + await generateRoutes( + modelTree, + { + name: "/", + uniqueIdentifierField: [], + }, + 0, + maxAllowedDepth + ); + } catch (error) { + console.error("An error occurred:", error); + } + }); + + // Wait for all loop promises to complete + await Promise.all(mainLoopPromises); + process.stdout.write(`\u001b[2K\r`); + const endTime = new Date().getTime(); + const duration = (endTime - startTime) / 1000; + console.log( + chalk.green( + `\n\nCreated ${fileCount} files and ${directoryCount} directories in ${duration} seconds.\nCreated ${modelTreeArray.length} model(s) with a max depth of ${maxDepth}` + ) + ); + return routes; } diff --git a/src/helpers.ts b/src/helpers.ts index d0b848c..68bc20b 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -178,6 +178,61 @@ export async function copyImage( } } +function addStringsBetweenComments( + fileContent: string, + insertData: Array<{ + insertString: string; + startComment: string; + endComment: string; + }> +): string { + insertData.forEach(({ insertString, startComment, endComment }) => { + while ( + fileContent.includes(startComment) && + fileContent.includes(endComment) + ) { + const startIndex = fileContent.indexOf(startComment); + const endIndex = fileContent.indexOf(endComment) + endComment.length; + const contentToRemove = fileContent.slice(startIndex, endIndex); + fileContent = fileContent.replace(contentToRemove, insertString); + } + }); + + return fileContent; +} + +export async function modifyFile( + sourceFilePath: string, + destinationFilePath: string, + insertData: Array<{ + insertString: string; + startComment: string; + endComment: string; + }>, + modelName?: string +) { + try { + const fileContent = fs.readFileSync(sourceFilePath, "utf8"); + + // Perform string replacements + let modifiedContent = addStringsBetweenComments(fileContent, insertData); + modifiedContent = await prettier.format(modifiedContent, { + parser: "babel-ts", // Specify the parser according to your project's configuration + }); + if (modelName) { + modifiedContent = findAndReplaceInFile( + modifiedContent, + "nexquikTemplateModel", + modelName + ); + } + // Write the modified content to the destination file + fs.promises.writeFile(destinationFilePath, modifiedContent); + } catch (error) { + console.error("An error occurred:", error); + } +} + // copy files from one directory to another // copy files from one directory to another export function copyDirectory( @@ -222,6 +277,7 @@ export function copyDirectory( console.error(chalk.red("An error occurred:", error)); } } + export const formatNextJsFilesRecursively = async (directory: string) => { // Get a list of all files and directories in the current directory const entries = await fs.promises.readdir(directory); @@ -297,18 +353,6 @@ async function getFilePaths(directoryPath: string): Promise { } export async function formatDirectory(directoryPath: string): Promise { - const eslint = new ESLint({ - fix: true, // Enable automatic fixes - extensions: [".tsx"], // Specify file extensions to be linted - overrideConfig: { - parserOptions: { - ecmaVersion: 2020, // Specify the ECMAScript version to be linted (change as needed) - sourceType: "module", // Specify the source type (e.g., 'module', 'script') - }, - rules: {}, // Add any additional rules or overrides - }, - }); - const files = (await getFilePaths(directoryPath)).filter((filePath: string) => filePath.endsWith(".tsx") ); @@ -332,50 +376,24 @@ export async function formatDirectory(directoryPath: string): Promise { ); } -export function findAndReplaceInFiles( - directoryPath: string, +export function findAndReplaceInFile( + textContent: string, searchString: string, replacementString: string -): void { - // console.log( - // chalk.blue( - // `Finding ${searchString}, replacing with ${replacementString}, in ${directoryPath}` - // ) - // ); - // Read the directory contents - const files = fs.readdirSync(directoryPath); - - // Iterate through all files and directories - for (const file of files) { - const filePath = path.join(directoryPath, file); - - // Check if the path is a directory - if (fs.statSync(filePath).isDirectory()) { - // Recursively search and replace in subdirectories - findAndReplaceInFiles(filePath, searchString, replacementString); - } else { - // Read the file content - let fileContent = fs.readFileSync(filePath, "utf-8"); - - // Perform case-insensitive find and replace - const pattern = new RegExp(searchString, "gi"); - fileContent = fileContent.replace(pattern, (match) => { - // Preserve the casing of the first character - const firstChar = match.charAt(0); - const replacementFirstChar = replacementString.charAt(0); - const replacedFirstChar = - firstChar === firstChar.toLowerCase() - ? replacementFirstChar.toLowerCase() - : firstChar === firstChar.toUpperCase() - ? replacementFirstChar.toUpperCase() - : replacementFirstChar; - return replacedFirstChar + replacementString.slice(1); - }); - - // Write the modified content back to the file - fs.writeFileSync(filePath, fileContent, "utf-8"); - } - } +): string { + const pattern = new RegExp(searchString, "gi"); + return textContent.replace(pattern, (match) => { + // Preserve the casing of the first character + const firstChar = match.charAt(0); + const replacementFirstChar = replacementString.charAt(0); + const replacedFirstChar = + firstChar === firstChar.toLowerCase() + ? replacementFirstChar.toLowerCase() + : firstChar === firstChar.toUpperCase() + ? replacementFirstChar.toUpperCase() + : replacementFirstChar; + return replacedFirstChar + replacementString.slice(1); + }); } export function copyFileToDirectory( diff --git a/templateRoot/app/nexquikTemplateModel/[id]/page.tsx b/templateRoot/app/nexquikTemplateModel/[id]/page.tsx index 7ee0b6d..76db628 100644 --- a/templateRoot/app/nexquikTemplateModel/[id]/page.tsx +++ b/templateRoot/app/nexquikTemplateModel/[id]/page.tsx @@ -69,12 +69,6 @@ export default async function ShowNexquikTemplateModel({ {/* @nexquik showForm stop */} -
-
- {/* @nexquik listChildren start */} - {/* @nexquik listChildren stop */} -
-
); }