import type { InferSelectModel } from "drizzle-orm"; import { env } from "../env"; import * as mysqlSchema from "./mysql"; import * as pgSchema from "./postgresql"; import * as sqliteSchema from "./sqlite"; export type PostgreSqlSchema = typeof pgSchema; export type MySqlSchema = typeof mysqlSchema; type Schema = typeof sqliteSchema; const schema = env.DB_DRIVER === "mysql2" ? (mysqlSchema as unknown as Schema) : env.DB_DRIVER === "node-postgres" ? (pgSchema as unknown as Schema) : sqliteSchema; // Sadly we can't use export * from here as we have multiple possible exports export const { accounts, apiKeys, apps, boardGroupPermissions, boardUserPermissions, boards, groupMembers, groupPermissions, groups, iconRepositories, icons, integrationGroupPermissions, integrationItems, integrationSecrets, integrationUserPermissions, integrations, invites, items, medias, onboarding, searchEngines, sections, serverSettings, sessions, users, verificationTokens, sectionCollapseStates, layouts, itemLayouts, sectionLayouts, trustedCertificateHostnames, cronJobConfigurations, } = schema; export type User = InferSelectModel; export type Account = InferSelectModel; export type Session = InferSelectModel; export type VerificationToken = InferSelectModel; export type Integration = InferSelectModel; export type IntegrationSecret = InferSelectModel;