import { Server } from 'socket.io' import { TSocket } from '../../../../utilities/types' import prisma from '../../../../utilities/prisma' 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) } } }