UNPKG

@coursebuilder/adapter-drizzle

Version:

Drizzle adapter for Course Builder.

1,306 lines (1,304 loc) 520 kB
import * as drizzle_orm from 'drizzle-orm'; import * as _auth_core_adapters from '@auth/core/adapters'; import * as drizzle_orm_mysql_core from 'drizzle-orm/mysql-core'; import { MySqlTableFn, MySqlDatabase } from 'drizzle-orm/mysql-core'; import { CourseBuilderAdapter } from '@coursebuilder/core/adapters'; import { PaymentsProviderConfig } from '@coursebuilder/core/types'; declare const guid: (size?: number | undefined) => string; declare function getCourseBuilderSchema(mysqlTable: MySqlTableFn): { readonly accounts: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "Account"; schema: undefined; columns: { userId: drizzle_orm_mysql_core.MySqlColumn<{ name: "userId"; tableName: "Account"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; type: drizzle_orm_mysql_core.MySqlColumn<{ name: "type"; tableName: "Account"; dataType: "string"; columnType: "MySqlVarChar"; data: _auth_core_adapters.AdapterAccountType; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; provider: drizzle_orm_mysql_core.MySqlColumn<{ name: "provider"; tableName: "Account"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; providerAccountId: drizzle_orm_mysql_core.MySqlColumn<{ name: "providerAccountId"; tableName: "Account"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; refresh_token: drizzle_orm_mysql_core.MySqlColumn<{ name: "refresh_token"; tableName: "Account"; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; access_token: drizzle_orm_mysql_core.MySqlColumn<{ name: "access_token"; tableName: "Account"; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; oauth_token: drizzle_orm_mysql_core.MySqlColumn<{ name: "oauth_token"; tableName: "Account"; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; oauth_token_secret: drizzle_orm_mysql_core.MySqlColumn<{ name: "oauth_token_secret"; tableName: "Account"; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; expires_at: drizzle_orm_mysql_core.MySqlColumn<{ name: "expires_at"; tableName: "Account"; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; token_type: drizzle_orm_mysql_core.MySqlColumn<{ name: "token_type"; tableName: "Account"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; scope: drizzle_orm_mysql_core.MySqlColumn<{ name: "scope"; tableName: "Account"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; id_token: drizzle_orm_mysql_core.MySqlColumn<{ name: "id_token"; tableName: "Account"; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; session_state: drizzle_orm_mysql_core.MySqlColumn<{ name: "session_state"; tableName: "Account"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; refresh_token_expires_in: drizzle_orm_mysql_core.MySqlColumn<{ name: "refresh_token_expires_in"; tableName: "Account"; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly accountsRelations: drizzle_orm.Relations<"Account", { user: drizzle_orm.One<"User", true>; }>; readonly permissions: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "Permission"; schema: undefined; columns: { id: drizzle_orm_mysql_core.MySqlColumn<{ name: "id"; tableName: "Permission"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; name: drizzle_orm_mysql_core.MySqlColumn<{ name: "name"; tableName: "Permission"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; description: drizzle_orm_mysql_core.MySqlColumn<{ name: "description"; tableName: "Permission"; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; active: drizzle_orm_mysql_core.MySqlColumn<{ name: "active"; tableName: "Permission"; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "Permission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "updatedAt"; tableName: "Permission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; deletedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "deletedAt"; tableName: "Permission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly permissionsRelations: drizzle_orm.Relations<"Permission", {}>; readonly rolePermissions: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "RolePermission"; schema: undefined; columns: { roleId: drizzle_orm_mysql_core.MySqlColumn<{ name: "roleId"; tableName: "RolePermission"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; permissionId: drizzle_orm_mysql_core.MySqlColumn<{ name: "permissionId"; tableName: "RolePermission"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; active: drizzle_orm_mysql_core.MySqlColumn<{ name: "active"; tableName: "RolePermission"; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "RolePermission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "updatedAt"; tableName: "RolePermission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; deletedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "deletedAt"; tableName: "RolePermission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly rolePermissionsRelations: drizzle_orm.Relations<"RolePermission", { role: drizzle_orm.One<"Role", true>; permission: drizzle_orm.One<"Permission", true>; }>; readonly roles: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "Role"; schema: undefined; columns: { id: drizzle_orm_mysql_core.MySqlColumn<{ name: "id"; tableName: "Role"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; organizationId: drizzle_orm_mysql_core.MySqlColumn<{ name: "organizationId"; tableName: "Role"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; name: drizzle_orm_mysql_core.MySqlColumn<{ name: "name"; tableName: "Role"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; description: drizzle_orm_mysql_core.MySqlColumn<{ name: "description"; tableName: "Role"; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; active: drizzle_orm_mysql_core.MySqlColumn<{ name: "active"; tableName: "Role"; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "Role"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "updatedAt"; tableName: "Role"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; deletedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "deletedAt"; tableName: "Role"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly rolesRelations: drizzle_orm.Relations<"Role", { userRoles: drizzle_orm.Many<"UserRole">; }>; readonly sessions: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "Session"; schema: undefined; columns: { sessionToken: drizzle_orm_mysql_core.MySqlColumn<{ name: "sessionToken"; tableName: "Session"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; userId: drizzle_orm_mysql_core.MySqlColumn<{ name: "userId"; tableName: "Session"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; expires: drizzle_orm_mysql_core.MySqlColumn<{ name: "expires"; tableName: "Session"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly sessionsRelations: drizzle_orm.Relations<"Session", { user: drizzle_orm.One<"User", true>; }>; readonly userPermissions: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "UserPermission"; schema: undefined; columns: { userId: drizzle_orm_mysql_core.MySqlColumn<{ name: "userId"; tableName: "UserPermission"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; organizationId: drizzle_orm_mysql_core.MySqlColumn<{ name: "organizationId"; tableName: "UserPermission"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; permissionId: drizzle_orm_mysql_core.MySqlColumn<{ name: "permissionId"; tableName: "UserPermission"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; active: drizzle_orm_mysql_core.MySqlColumn<{ name: "active"; tableName: "UserPermission"; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "UserPermission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "updatedAt"; tableName: "UserPermission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; deletedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "deletedAt"; tableName: "UserPermission"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly userPermissionsRelations: drizzle_orm.Relations<"UserPermission", { user: drizzle_orm.One<"User", true>; permission: drizzle_orm.One<"Permission", true>; }>; readonly userRoles: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "UserRole"; schema: undefined; columns: { userId: drizzle_orm_mysql_core.MySqlColumn<{ name: "userId"; tableName: "UserRole"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; roleId: drizzle_orm_mysql_core.MySqlColumn<{ name: "roleId"; tableName: "UserRole"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; active: drizzle_orm_mysql_core.MySqlColumn<{ name: "active"; tableName: "UserRole"; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; organizationId: drizzle_orm_mysql_core.MySqlColumn<{ name: "organizationId"; tableName: "UserRole"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "UserRole"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; updatedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "updatedAt"; tableName: "UserRole"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; deletedAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "deletedAt"; tableName: "UserRole"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly userRolesRelations: drizzle_orm.Relations<"UserRole", { user: drizzle_orm.One<"User", true>; role: drizzle_orm.One<"Role", true>; }>; readonly users: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "User"; schema: undefined; columns: { id: drizzle_orm_mysql_core.MySqlColumn<{ name: "id"; tableName: "User"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; name: drizzle_orm_mysql_core.MySqlColumn<{ name: "name"; tableName: "User"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; role: drizzle_orm_mysql_core.MySqlColumn<{ name: "role"; tableName: "User"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; email: drizzle_orm_mysql_core.MySqlColumn<{ name: "email"; tableName: "User"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; fields: drizzle_orm_mysql_core.MySqlColumn<{ name: "fields"; tableName: "User"; dataType: "json"; columnType: "MySqlJson"; data: Record<string, any>; driverParam: string; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; emailVerified: drizzle_orm_mysql_core.MySqlColumn<{ name: "emailVerified"; tableName: "User"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; image: drizzle_orm_mysql_core.MySqlColumn<{ name: "image"; tableName: "User"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "User"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly usersRelations: drizzle_orm.Relations<"User", { profiles: drizzle_orm.Many<"Profile">; accounts: drizzle_orm.Many<"Account">; purchases: drizzle_orm.Many<"Purchase">; communicationPreferences: drizzle_orm.Many<"CommunicationPreference">; roles: drizzle_orm.Many<"UserRole">; userPermissions: drizzle_orm.Many<"UserPermission">; contributions: drizzle_orm.Many<"ContentContribution">; createdContent: drizzle_orm.Many<"ContentResource">; comments: drizzle_orm.Many<"Comment">; prefs: drizzle_orm.Many<"UserPrefs">; organizationMemberships: drizzle_orm.Many<"OrganizationMembership">; }>; readonly verificationTokens: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "VerificationToken"; schema: undefined; columns: { identifier: drizzle_orm_mysql_core.MySqlColumn<{ name: "identifier"; tableName: "VerificationToken"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; token: drizzle_orm_mysql_core.MySqlColumn<{ name: "token"; tableName: "VerificationToken"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; expires: drizzle_orm_mysql_core.MySqlColumn<{ name: "expires"; tableName: "VerificationToken"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "VerificationToken"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; }; dialect: "mysql"; }>; readonly coupon: drizzle_orm_mysql_core.MySqlTableWithColumns<{ name: "Coupon"; schema: undefined; columns: { id: drizzle_orm_mysql_core.MySqlColumn<{ name: "id"; tableName: "Coupon"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; organizationId: drizzle_orm_mysql_core.MySqlColumn<{ name: "organizationId"; tableName: "Coupon"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; code: drizzle_orm_mysql_core.MySqlColumn<{ name: "code"; tableName: "Coupon"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; createdAt: drizzle_orm_mysql_core.MySqlColumn<{ name: "createdAt"; tableName: "Coupon"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; expires: drizzle_orm_mysql_core.MySqlColumn<{ name: "expires"; tableName: "Coupon"; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; fields: drizzle_orm_mysql_core.MySqlColumn<{ name: "fields"; tableName: "Coupon"; dataType: "json"; columnType: "MySqlJson"; data: Record<string, any>; driverParam: string; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; maxUses: drizzle_orm_mysql_core.MySqlColumn<{ name: "maxUses"; tableName: "Coupon"; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; default: drizzle_orm_mysql_core.MySqlColumn<{ name: "default"; tableName: "Coupon"; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; merchantCouponId: drizzle_orm_mysql_core.MySqlColumn<{ name: "merchantCouponId"; tableName: "Coupon"; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; generated: undefined; }, object>; status: drizzle_orm_mysql_core.MySqlColumn<{ name: "status"; tableName: "Coupon"; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; generated: undefined; }, object>; usedCount: drizzle_orm_mysql_core.MySqlColumn<{ name: "usedCount"; tableName: "Coupon"; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false;