diff --git a/apps/viewer/src/features/chat/api/sendMessage.ts b/apps/viewer/src/features/chat/api/sendMessage.ts index 461d0f064..f7ac28ce6 100644 --- a/apps/viewer/src/features/chat/api/sendMessage.ts +++ b/apps/viewer/src/features/chat/api/sendMessage.ts @@ -24,7 +24,6 @@ import { } from '../helpers' import { env, isDefined, omit } from '@typebot.io/lib' import { prefillVariables } from '@/features/variables/prefillVariables' -import { checkChatsUsage } from '@/features/usage/checkChatsUsage' import { injectVariablesFromExistingResult } from '@/features/variables/injectVariablesFromExistingResult' import { deepParseVariables } from '@/features/variables/deepParseVariable' import { parseVariables } from '@/features/variables/parseVariables' @@ -246,9 +245,8 @@ const getTypebot = async ( id: true, plan: true, additionalChatsIndex: true, - chatsLimitFirstEmailSentAt: true, - chatsLimitSecondEmailSentAt: true, customChatsLimit: true, + isQuarantined: true, }, }, }, @@ -274,19 +272,17 @@ const getTypebot = async ( message: 'Typebot not found', }) - if ('isClosed' in parsedTypebot && parsedTypebot.isClosed) + const isQuarantined = + typebotQuery && + 'typebot' in typebotQuery && + typebotQuery.typebot.workspace.isQuarantined + + if (('isClosed' in parsedTypebot && parsedTypebot.isClosed) || isQuarantined) throw new TRPCError({ code: 'BAD_REQUEST', message: 'Typebot is closed', }) - typebotQuery && 'typebot' in typebotQuery - ? await checkChatsUsage({ - typebotId: parsedTypebot.id, - workspace: typebotQuery.typebot.workspace, - }) - : false - return parsedTypebot } diff --git a/packages/prisma/mysql/schema.prisma b/packages/prisma/mysql/schema.prisma index 5b5e977ee..0c0cfd757 100644 --- a/packages/prisma/mysql/schema.prisma +++ b/packages/prisma/mysql/schema.prisma @@ -95,6 +95,7 @@ model Workspace { customChatsLimit Int? customStorageLimit Int? customSeatsLimit Int? + isQuarantined Boolean @default(false) themeTemplates ThemeTemplate[] } diff --git a/packages/prisma/postgresql/migrations/20230420143512_add_quarantined_field/migration.sql b/packages/prisma/postgresql/migrations/20230420143512_add_quarantined_field/migration.sql new file mode 100644 index 000000000..079bcfc5b --- /dev/null +++ b/packages/prisma/postgresql/migrations/20230420143512_add_quarantined_field/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Workspace" ADD COLUMN "isQuarantined" BOOLEAN NOT NULL DEFAULT false; diff --git a/packages/prisma/postgresql/schema.prisma b/packages/prisma/postgresql/schema.prisma index e4b6c7e87..816215855 100644 --- a/packages/prisma/postgresql/schema.prisma +++ b/packages/prisma/postgresql/schema.prisma @@ -89,6 +89,7 @@ model Workspace { customChatsLimit Int? customStorageLimit Int? customSeatsLimit Int? + isQuarantined Boolean @default(false) themeTemplates ThemeTemplate[] } diff --git a/packages/schemas/features/workspace.ts b/packages/schemas/features/workspace.ts index 371e6e6db..a4080227a 100644 --- a/packages/schemas/features/workspace.ts +++ b/packages/schemas/features/workspace.ts @@ -48,6 +48,7 @@ export const workspaceSchema = z.object({ customChatsLimit: z.number().nullable(), customStorageLimit: z.number().nullable(), customSeatsLimit: z.number().nullable(), + isQuarantined: z.boolean(), }) satisfies z.ZodType export type Workspace = z.infer