/**
 * DeleteBlogHandler
 * DeleteBlogCommand handler
 */
export class DeleteBlogHandler {
  constructor(blogRepository) {
    this.blogRepository = blogRepository;
  }

  async handle(command) {
    const validation = command.validate();
    if (!validation.isValid) {
      throw new Error(`Validation failed: ${validation.errors.join(', ')}`);
    }

    // Ellenőrizzük, hogy létezik-e a blog
    const existingBlog = await this.blogRepository.findById(command.id);
    if (!existingBlog) {
      throw new Error('Blog not found');
    }

    // FIGYELEM: Itt kell authorization ellenőrzés!
    // Csak a szerző vagy admin törölheti
    // Ez a feladat része - implementálandó!

    await this.blogRepository.delete(command.id);
    return { success: true, message: 'Blog deleted successfully' };
  }
}
