import { Server } from 'socket.io' import prisma from '#application/prisma' import { TSocket } from '#application/types' import characterRepository from '#repositories/characterRepository' export default class ItemCreateEvent { constructor( private readonly io: Server, private readonly socket: TSocket ) {} public listen(): void { this.socket.on('gm:item:create', this.handleEvent.bind(this)) } private async handleEvent(data: undefined, callback: (response: boolean, item?: 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 newItem = await prisma.item.create({ data: { name: 'New Item', itemType: 'WEAPON', stackable: false, rarity: 'COMMON', spriteId: null } }) callback(true, newItem) } catch (error) { console.error('Error creating item:', error) callback(false) } } }