diff --git a/apps/docs/openapi/builder/_spec_.json b/apps/docs/openapi/builder/_spec_.json index 458e61934..046367d6b 100644 --- a/apps/docs/openapi/builder/_spec_.json +++ b/apps/docs/openapi/builder/_spec_.json @@ -1133,10 +1133,6 @@ "type": "string", "format": "date-time" }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, "typebotId": { "type": "string" }, @@ -1188,7 +1184,6 @@ "required": [ "id", "createdAt", - "updatedAt", "typebotId", "variables", "isCompleted", diff --git a/packages/db/mysql/schema.prisma b/packages/db/mysql/schema.prisma index da1fbaccf..89c375087 100644 --- a/packages/db/mysql/schema.prisma +++ b/packages/db/mysql/schema.prisma @@ -242,7 +242,6 @@ model PublicTypebot { model Result { id String @id @default(cuid()) createdAt DateTime @default(now()) - updatedAt DateTime @default(now()) @updatedAt typebotId String variables Json isCompleted Boolean diff --git a/packages/db/postgresql/migrations/20230307144424_remove_updated_at_on_result/migration.sql b/packages/db/postgresql/migrations/20230307144424_remove_updated_at_on_result/migration.sql new file mode 100644 index 000000000..3c1233040 --- /dev/null +++ b/packages/db/postgresql/migrations/20230307144424_remove_updated_at_on_result/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Result" DROP COLUMN "updatedAt"; diff --git a/packages/db/postgresql/schema.prisma b/packages/db/postgresql/schema.prisma index 54ce63134..fd8940da4 100644 --- a/packages/db/postgresql/schema.prisma +++ b/packages/db/postgresql/schema.prisma @@ -223,7 +223,6 @@ model PublicTypebot { model Result { id String @id @default(cuid()) createdAt DateTime @default(now()) - updatedAt DateTime @default(now()) @updatedAt typebotId String variables Json isCompleted Boolean diff --git a/packages/models/features/result.ts b/packages/models/features/result.ts index 80d1f1148..4cb5a8c11 100644 --- a/packages/models/features/result.ts +++ b/packages/models/features/result.ts @@ -9,7 +9,6 @@ export const resultSchema = schemaForType()( z.object({ id: z.string(), createdAt: z.date(), - updatedAt: z.date(), typebotId: z.string(), variables: z.array(variableWithValueSchema), isCompleted: z.boolean(), diff --git a/packages/scripts/cleanDatabase.ts b/packages/scripts/cleanDatabase.ts index 9a784ed2d..5255ffd31 100644 --- a/packages/scripts/cleanDatabase.ts +++ b/packages/scripts/cleanDatabase.ts @@ -10,9 +10,48 @@ export const cleanDatabase = async () => { await deleteOldChatSessions() await deleteExpiredAppSessions() await deleteExpiredVerificationTokens() + const isFirstOfMonth = new Date().getDate() === 1 + if (isFirstOfMonth) { + await deleteArchivedTypebots() + await deleteArchivedResults() + } console.log('Done!') } +const deleteArchivedTypebots = async () => { + const lastDayOfPreviousMonth = new Date() + lastDayOfPreviousMonth.setMonth(lastDayOfPreviousMonth.getMonth() - 1) + lastDayOfPreviousMonth.setDate(0) + + const { count } = await prisma.typebot.deleteMany({ + where: { + updatedAt: { + lte: lastDayOfPreviousMonth, + }, + isArchived: true, + }, + }) + + console.log(`Deleted ${count} archived typebots.`) +} + +const deleteArchivedResults = async () => { + const lastDayOfPreviousMonth = new Date() + lastDayOfPreviousMonth.setMonth(lastDayOfPreviousMonth.getMonth() - 1) + lastDayOfPreviousMonth.setDate(0) + + const { count } = await prisma.result.deleteMany({ + where: { + createdAt: { + lte: lastDayOfPreviousMonth, + }, + isArchived: true, + }, + }) + + console.log(`Deleted ${count} archived results.`) +} + const deleteOldChatSessions = async () => { const threeDaysAgo = new Date() threeDaysAgo.setDate(threeDaysAgo.getDate() - 3)