diff --git a/apps/console b/apps/console index 8a796ab11d..5127b5be0f 160000 --- a/apps/console +++ b/apps/console @@ -1 +1 @@ -Subproject commit 8a796ab11dd6663be5e582e7bac49f0aabd92dc3 +Subproject commit 5127b5be0ff4c2c4bb1f54839ae87900f56ece2d diff --git a/apps/web/server/routers/viewer/eventTypes.tsx b/apps/web/server/routers/viewer/eventTypes.tsx index 86f358544d..274074b76b 100644 --- a/apps/web/server/routers/viewer/eventTypes.tsx +++ b/apps/web/server/routers/viewer/eventTypes.tsx @@ -116,7 +116,7 @@ export const eventTypesRouter = createProtectedRouter() const data: Prisma.EventTypeCreateInput = { ...rest, - userId: teamId ? undefined : userId, + owner: teamId ? undefined : { connect: { id: userId } }, users: { connect: { id: userId, diff --git a/packages/lib/package.json b/packages/lib/package.json index 51e24ef612..a98a9bf83c 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@calcom/dayjs": "*", - "@prisma/client": "^3.15.2", + "@prisma/client": "^4.0.0", "bcryptjs": "^2.4.3", "ical.js": "^1.4.0", "ics": "^2.31.0", diff --git a/packages/prisma/migrations/20220628184929_adds_missing_owner_relationship/migration.sql b/packages/prisma/migrations/20220628184929_adds_missing_owner_relationship/migration.sql new file mode 100644 index 0000000000..67eaed26be --- /dev/null +++ b/packages/prisma/migrations/20220628184929_adds_missing_owner_relationship/migration.sql @@ -0,0 +1,2 @@ +-- AddForeignKey +ALTER TABLE "EventType" ADD CONSTRAINT "EventType_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/packages/prisma/migrations/20220628190334_adds_missing_oncascades/migration.sql b/packages/prisma/migrations/20220628190334_adds_missing_oncascades/migration.sql new file mode 100644 index 0000000000..0c705b1d60 --- /dev/null +++ b/packages/prisma/migrations/20220628190334_adds_missing_oncascades/migration.sql @@ -0,0 +1,41 @@ +-- DropForeignKey +ALTER TABLE "DestinationCalendar" DROP CONSTRAINT "DestinationCalendar_bookingId_fkey"; + +-- DropForeignKey +ALTER TABLE "DestinationCalendar" DROP CONSTRAINT "DestinationCalendar_eventTypeId_fkey"; + +-- DropForeignKey +ALTER TABLE "DestinationCalendar" DROP CONSTRAINT "DestinationCalendar_userId_fkey"; + +-- DropForeignKey +ALTER TABLE "EventType" DROP CONSTRAINT "EventType_teamId_fkey"; + +-- DropForeignKey +ALTER TABLE "EventType" DROP CONSTRAINT "EventType_userId_fkey"; + +-- DropForeignKey +ALTER TABLE "EventTypeCustomInput" DROP CONSTRAINT "EventTypeCustomInput_eventTypeId_fkey"; + +-- DropForeignKey +ALTER TABLE "Membership" DROP CONSTRAINT "Membership_teamId_fkey"; + +-- AddForeignKey +ALTER TABLE "EventType" ADD CONSTRAINT "EventType_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "EventType" ADD CONSTRAINT "EventType_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "DestinationCalendar" ADD CONSTRAINT "DestinationCalendar_eventTypeId_fkey" FOREIGN KEY ("eventTypeId") REFERENCES "EventType"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "DestinationCalendar" ADD CONSTRAINT "DestinationCalendar_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "DestinationCalendar" ADD CONSTRAINT "DestinationCalendar_bookingId_fkey" FOREIGN KEY ("bookingId") REFERENCES "Booking"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Membership" ADD CONSTRAINT "Membership_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "EventTypeCustomInput" ADD CONSTRAINT "EventTypeCustomInput_eventTypeId_fkey" FOREIGN KEY ("eventTypeId") REFERENCES "EventType"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/packages/prisma/migrations/20220628191702_adds_default_date_to_feedback/migration.sql b/packages/prisma/migrations/20220628191702_adds_default_date_to_feedback/migration.sql new file mode 100644 index 0000000000..e538745984 --- /dev/null +++ b/packages/prisma/migrations/20220628191702_adds_default_date_to_feedback/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Feedback" ALTER COLUMN "date" SET DEFAULT CURRENT_TIMESTAMP; diff --git a/packages/prisma/package.json b/packages/prisma/package.json index 797d4b58a5..40292fcf0b 100644 --- a/packages/prisma/package.json +++ b/packages/prisma/package.json @@ -21,14 +21,14 @@ }, "devDependencies": { "npm-run-all": "^4.1.5", - "prisma": "^3.15.2", + "prisma": "^4.0.0", "ts-node": "^10.6.0", "zod": "^3.16.0", "zod-prisma": "^0.5.4" }, "dependencies": { "@calcom/lib": "*", - "@prisma/client": "^3.15.2" + "@prisma/client": "^4.0.0" }, "main": "index.ts", "types": "index.d.ts", diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index 4f7a77343c..2b2cfee779 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -8,7 +8,7 @@ datasource db { generator client { provider = "prisma-client-js" - previewFeatures = ["filterJson", "interactiveTransactions"] + previewFeatures = ["interactiveTransactions"] } generator zod { @@ -42,8 +42,9 @@ model EventType { length Int hidden Boolean @default(false) users User[] @relation("user_eventtype") + owner User? @relation("owner", fields: [userId], references: [id], onDelete: Cascade) userId Int? - team Team? @relation(fields: [teamId], references: [id]) + team Team? @relation(fields: [teamId], references: [id], onDelete: Cascade) teamId Int? hashedLink HashedLink? bookings Booking[] @@ -179,11 +180,12 @@ model User { apiKeys ApiKey[] accounts Account[] sessions Session[] + Feedback Feedback[] + ownedEventTypes EventType[] @relation("owner") workflows Workflow[] routingForms App_RoutingForms_Form[] @relation("routing-form") - Feedback Feedback[] @@map(name: "users") } @@ -209,7 +211,7 @@ model Membership { userId Int accepted Boolean @default(false) role MembershipRole - team Team @relation(fields: [teamId], references: [id]) + team Team @relation(fields: [teamId], references: [id], onDelete: Cascade) user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@id([userId, teamId]) @@ -342,7 +344,7 @@ enum EventTypeCustomInputType { model EventTypeCustomInput { id Int @id @default(autoincrement()) eventTypeId Int - eventType EventType @relation(fields: [eventTypeId], references: [id]) + eventType EventType @relation(fields: [eventTypeId], references: [id], onDelete: Cascade) label String type EventTypeCustomInputType required Boolean @@ -376,6 +378,7 @@ enum PaymentType { model Payment { id Int @id @default(autoincrement()) uid String @unique + // TODO: Use an App relationship instead of PaymentType enum? type PaymentType bookingId Int booking Booking? @relation(fields: [bookingId], references: [id], onDelete: Cascade) @@ -518,7 +521,7 @@ model App_RoutingForms_FormResponse { model Feedback { id Int @id @default(autoincrement()) - date DateTime + date DateTime @default(now()) userId Int user User @relation(fields: [userId], references: [id], onDelete: Cascade) rating String diff --git a/yarn.lock b/yarn.lock index a5e2eff0ac..c08cd40941 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2560,12 +2560,12 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== -"@prisma/client@^3.15.2": - version "3.15.2" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-3.15.2.tgz#2181398147afc79bfe0d83c03a88dc45b49bd365" - integrity sha512-ErqtwhX12ubPhU4d++30uFY/rPcyvjk+mdifaZO5SeM21zS3t4jQrscy8+6IyB0GIYshl5ldTq6JSBo1d63i8w== +"@prisma/client@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.0.0.tgz#ed2f46930a1da0d8ae88d7965485973576b04270" + integrity sha512-g1h2OGoRo7anBVQ9Cw3gsbjwPtvf7i0pkGxKeZICtwkvE5CZXW+xZF4FZdmrViYkKaAShbISL0teNpu9ecpf4g== dependencies: - "@prisma/engines-version" "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" + "@prisma/engines-version" "3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11" "@prisma/debug@3.15.2": version "3.15.2" @@ -2585,15 +2585,15 @@ ms "2.1.3" strip-ansi "6.0.1" -"@prisma/engines-version@3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e": - version "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz#bf5e2373ca68ce7556b967cb4965a7095e93fe53" - integrity sha512-e3k2Vd606efd1ZYy2NQKkT4C/pn31nehyLhVug6To/q8JT8FpiMrDy7zmm3KLF0L98NOQQcutaVtAPhzKhzn9w== +"@prisma/engines-version@3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11": + version "3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11.tgz#4b5efe5eee2feef12910e4627a572cd96ed83236" + integrity sha512-PiZhdD624SrYEjyLboI0X7OugNbxUzDJx9v/6ldTKuqNDVUCmRH/Z00XwDi/dgM4FlqOSO+YiUsSiSKjxxG8cw== -"@prisma/engines@3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e": - version "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz#f691893df506b93e3cb1ccc15ec6e5ac64e8e570" - integrity sha512-NHlojO1DFTsSi3FtEleL9QWXeSF/UjhCW0fgpi7bumnNZ4wj/eQ+BJJ5n2pgoOliTOGv9nX2qXvmHap7rJMNmg== +"@prisma/engines@3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11": + version "3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11.tgz#82f0018153cffa05d61422f9c0c7b0479b180f75" + integrity sha512-u/rG4lDHALolWBLr3yebZ+N2qImp3SDMcu7bHNJuRDaYvYEXy/MqfNRNEgd9GoPsXL3gofYf0VzJf2AmCG3YVw== "@prisma/generator-helper@^3.13.0": version "3.15.2" @@ -13988,12 +13988,12 @@ prisma-field-encryption@^1.4.0-beta.2: object-path "^0.11.8" zod "^3.15.1" -prisma@^3.15.2: - version "3.15.2" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-3.15.2.tgz#4ebe32fb284da3ac60c49fbc16c75e56ecf32067" - integrity sha512-nMNSMZvtwrvoEQ/mui8L/aiCLZRCj5t6L3yujKpcDhIPk7garp8tL4nMx2+oYsN0FWBacevJhazfXAbV1kfBzA== +prisma@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.0.0.tgz#4ddb8fcd4f64d33aff8c198a6986dcce66dc8152" + integrity sha512-Dtsar03XpCBkcEb2ooGWO/WcgblDTLzGhPcustbehwlFXuTMliMDRzXsfygsgYwQoZnAUKRd1rhpvBNEUziOVw== dependencies: - "@prisma/engines" "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" + "@prisma/engines" "3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11" prismjs@^1.27.0: version "1.28.0"