import { BaseRepository } from '#application/base/baseRepository' import { UUID } from '#application/types' import { Chat } from '#entities/chat' class ChatRepository extends BaseRepository { async getById(id: UUID): Promise { try { const repository = this.em.getRepository(Chat) return await repository.find({ id }) } catch (error: any) { this.logger.error(`Failed to get chat by ID: ${error instanceof Error ? error.message : String(error)}`) return [] } } async getAll(): Promise { try { const repository = this.em.getRepository(Chat) return await repository.findAll() } catch (error: any) { this.logger.error(`Failed to get all chats: ${error instanceof Error ? error.message : String(error)}`) return [] } } async getByCharacterId(characterId: UUID): Promise { try { const repository = this.em.getRepository(Chat) return await repository.find({ character: characterId }) } catch (error: any) { this.logger.error(`Failed to get chats by character ID: ${error instanceof Error ? error.message : String(error)}`) return [] } } async getByZoneId(zoneId: UUID): Promise { try { const repository = this.em.getRepository(Chat) return await repository.find({ zone: zoneId }) } catch (error: any) { this.logger.error(`Failed to get chats by zone ID: ${error instanceof Error ? error.message : String(error)}`) return [] } } } export default new ChatRepository()