import { Server } from 'socket.io' import prisma from '#application/prisma' import { TSocket } from '#application/types' import characterRepository from '#repositories/characterRepository' export default class CharacterHairCreateEvent { constructor( private readonly io: Server, private readonly socket: TSocket ) {} public listen(): void { this.socket.on('gm:characterHair:create', this.handleEvent.bind(this)) } private async handleEvent(data: undefined, callback: (response: boolean, characterType?: any) => void): Promise { try { const character = await characterRepository.getById(this.socket.characterId as number) if (!character) return callback(false) if (character.role !== 'gm') { return callback(false) } const newCharacterHair = await prisma.characterHair.create({ data: { name: 'New hair' } }) callback(true, newCharacterHair) } catch (error) { console.error('Error creating character hair:', error) callback(false) } } }