import { BaseRepository } from '#application/base/baseRepository' import { appLogger } from '#application/logger' import { User } from '#entities/user' class UserRepository extends BaseRepository { async getById(id: number) { try { const repository = this.em.getRepository(User) return await repository.findOne({ id }) } catch (error: any) { appLogger.error(`Failed to get user by ID: ${error instanceof Error ? error.message : String(error)}`) return null } } async getByUsername(username: string) { try { const repository = this.em.getRepository(User) return await repository.findOne({ username }) } catch (error: any) { appLogger.error(`Failed to get user by username: ${error instanceof Error ? error.message : String(error)}`) return null } } async getByEmail(email: string) { try { const repository = this.em.getRepository(User) return await repository.findOne({ email }) } catch (error: any) { appLogger.error(`Failed to get user by email: ${error instanceof Error ? error.message : String(error)}`) return null } } } export default new UserRepository()