/** * Domain Repository: IUserRepository * * Repository interface for User entity operations. */ import type { AuthenticatedUserDTO } from '../../application/dto/AuthenticatedUserDTO'; export interface UserCredentials { email: string; passwordHash: string; salt: string; } export interface StoredUser { id: string; email: string; displayName: string; passwordHash: string; salt: string; primaryDriverId?: string; createdAt: Date; } export interface IUserRepository { /** * Find user by email */ findByEmail(email: string): Promise; /** * Find user by ID */ findById(id: string): Promise; /** * Create a new user */ create(user: StoredUser): Promise; /** * Update user */ update(user: StoredUser): Promise; /** * Check if email exists */ emailExists(email: string): Promise; }