import { z } from '../zod' import { Workspace as WorkspacePrisma, Plan, MemberInWorkspace as MemberInWorkspacePrisma, WorkspaceRole, User as UserPrisma, WorkspaceInvitation as WorkspaceInvitationPrisma, } from '@typebot.io/prisma' export const workspaceMemberSchema = z.object({ workspaceId: z.string(), user: z.object({ name: z.string().nullable(), email: z.string().nullable(), image: z.string().nullable(), }), role: z.nativeEnum(WorkspaceRole), }) satisfies z.ZodType< Omit & { user: Pick } > export const workspaceInvitationSchema = z.object({ createdAt: z.date(), updatedAt: z.date(), email: z.string(), type: z.nativeEnum(WorkspaceRole), }) satisfies z.ZodType< Omit > export const workspaceSchema = z.object({ id: z.string(), createdAt: z.date(), updatedAt: z.date(), name: z.string(), icon: z.string().nullable(), plan: z.nativeEnum(Plan), stripeId: z.string().nullable(), additionalChatsIndex: z.number(), additionalStorageIndex: z.number(), chatsLimitFirstEmailSentAt: z.date().nullable(), chatsLimitSecondEmailSentAt: z.date().nullable(), storageLimitFirstEmailSentAt: z.date().nullable(), storageLimitSecondEmailSentAt: z.date().nullable(), customChatsLimit: z.number().nullable(), customStorageLimit: z.number().nullable(), customSeatsLimit: z.number().nullable(), isQuarantined: z.boolean(), isSuspended: z.boolean(), isPastDue: z.boolean(), isVerified: z.boolean().nullable(), }) satisfies z.ZodType export type Workspace = z.infer export type WorkspaceMember = z.infer export type WorkspaceInvitation = z.infer