import { Injectable, NotFoundException, } from '@nestjs/common'; import { UserRepository } from '../../domain/repositories/user.repository.interface'; @Injectable() export class DeleteUserHandler { constructor( private readonly userRepository: UserRepository, ) {} async execute(id: string): Promise { const user = await this.userRepository.findById(id); if (!user) { throw new NotFoundException('User not found.'); } user.delete(); await this.userRepository.update(user); // TODO: // Publish UserDeletedEvent } }