import { BaseRepository } from '#application/base/baseRepository' import { UUID } from '#application/types' import { CharacterHair } from '#entities/characterHair' class CharacterHairRepository extends BaseRepository { async getFirst() { try { const repository = this.em.getRepository(CharacterHair) return await repository.findOne({ id: { $exists: true } }) } catch (error: any) { this.logger.error(`Failed to get first character hair: ${error instanceof Error ? error.message : String(error)}`) return null } } async getAll(): Promise { try { const repository = this.em.getRepository(CharacterHair) return await repository.findAll() } catch (error: any) { this.logger.error(`Failed to get all character hair: ${error instanceof Error ? error.message : String(error)}`) return [] } } async getAllSelectable(): Promise { try { const repository = this.em.getRepository(CharacterHair) return await repository.find({ isSelectable: true }) } catch (error: any) { this.logger.error(`Failed to get selectable character hair: ${error instanceof Error ? error.message : String(error)}`) return [] } } async getById(id: UUID): Promise { try { const repository = this.em.getRepository(CharacterHair) return await repository.findOne({ id }) } catch (error: any) { this.logger.error(`Failed to get character hair by ID: ${error instanceof Error ? error.message : String(error)}`) return null } } } export default new CharacterHairRepository()