| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import type { |
| AuditEntryRow, |
| ChatHistoryRow, |
| HealthDataRow, |
| NewAuditEntry, |
| NewChatHistory, |
| NewHealthData, |
| NewScanLog, |
| NewUserInput, |
| SessionWithUserRow, |
| UserPublicRow, |
| UserRow, |
| UserSettingsRow, |
| UserSettingsUpdate, |
| } from './types'; |
|
|
| export interface DbAdapter { |
| |
|
|
| |
| migrate(): Promise<void>; |
|
|
| |
| |
| |
| |
| |
| seedAdmin(): Promise<void>; |
|
|
| |
| close(): Promise<void>; |
|
|
| |
| driver(): 'postgres' | 'sqlite'; |
|
|
| |
|
|
| findUserByEmail(email: string): Promise<UserRow | null>; |
| findUserById(id: string): Promise<UserRow | null>; |
| findUserPublicById(id: string): Promise<UserPublicRow | null>; |
|
|
| insertUser(user: NewUserInput): Promise<void>; |
|
|
| |
| updateUserPassword(id: string, passwordHash: string): Promise<void>; |
|
|
| |
| setVerificationCode( |
| id: string, |
| code: string | null, |
| expires: string | null, |
| ): Promise<void>; |
|
|
| |
| markEmailVerified(id: string): Promise<void>; |
|
|
| |
| setResetToken( |
| id: string, |
| token: string | null, |
| expires: string | null, |
| ): Promise<void>; |
|
|
| |
| setLastLogin(id: string): Promise<void>; |
|
|
| |
| |
| |
| |
| |
| deleteUser(id: string): Promise<void>; |
|
|
| |
|
|
| insertSession( |
| token: string, |
| userId: string, |
| expiresAt: string, |
| ): Promise<void>; |
|
|
| |
| |
| |
| |
| |
| findSessionWithUser(token: string): Promise<SessionWithUserRow | null>; |
|
|
| deleteSession(token: string): Promise<void>; |
| deleteSessionsForUser(userId: string): Promise<void>; |
| pruneExpiredSessions(): Promise<void>; |
|
|
| |
|
|
| insertAuditLog(entry: NewAuditEntry): Promise<void>; |
|
|
| |
| |
| |
| |
| |
| listAuditForUser(userId: string, limit: number): Promise<AuditEntryRow[]>; |
|
|
| |
|
|
| insertHealthData(input: NewHealthData & { id: string }): Promise<void>; |
| listHealthDataForUser(userId: string, type?: string): Promise<HealthDataRow[]>; |
| deleteHealthData(id: string, userId: string): Promise<void>; |
|
|
| |
|
|
| insertChatHistory(input: NewChatHistory): Promise<void>; |
| listChatHistoryForUser(userId: string, limit: number): Promise<ChatHistoryRow[]>; |
| getChatHistory(id: string, userId: string): Promise<ChatHistoryRow | null>; |
| deleteChatHistory(id: string, userId: string): Promise<void>; |
|
|
| |
|
|
| getUserSettings(userId: string): Promise<UserSettingsRow | null>; |
| upsertUserSettings(update: UserSettingsUpdate): Promise<void>; |
|
|
| |
|
|
| insertScanLog(entry: NewScanLog): Promise<void>; |
|
|
| |
|
|
| |
| listUsers(opts: { limit: number; offset: number }): Promise<UserPublicRow[]>; |
| countUsers(): Promise<number>; |
|
|
| setUserActive( |
| id: string, |
| isActive: boolean, |
| disabledReason?: string | null, |
| ): Promise<void>; |
|
|
| setUserAdmin(id: string, isAdmin: boolean): Promise<void>; |
| } |
|
|