<?php

declare(strict_types=1);

namespace App\Scolarite\Infrastructure\Messaging;

use App\Scolarite\Domain\Event\DevoirModifie;
use Psr\Log\LoggerInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;

/**
 * Réagit à la modification d'un devoir publié.
 *
 * @todo #0 Implémenter la notification push/email aux concernés (dépend de Epic 9)
 */
#[AsMessageHandler(bus: 'event.bus')]
final readonly class OnDevoirModifieHandler
{
    public function __construct(
        private LoggerInterface $logger,
    ) {
    }

    public function __invoke(DevoirModifie $event): void
    {
        $this->logger->info('Devoir modifié — notification prévue', [
            'homework_id' => (string) $event->homeworkId,
            'title' => $event->title,
            'due_date' => $event->dueDate->format('Y-m-d'),
        ]);
    }
}
