<?php
declare(strict_types=1);

namespace Infolab;

/**
 * Helper d'écriture dans `activity_log`. Best-effort : un échec d'écriture
 * (FK morte, BDD inaccessible) ne doit pas casser la requête en cours.
 * On loggue dans stderr et on continue.
 */
final class ActivityLogger
{
    public static function log(
        string $verb,
        string $summary,
        ?int $projectId = null,
        ?int $memberId = null,
        string $actorLabel = 'Vous',
    ): void {
        try {
            Database::insert('activity_log', [
                'project_id'  => $projectId,
                'member_id'   => $memberId,
                'actor_label' => $actorLabel,
                'verb'        => $verb,
                // Tronque à 255 par sécurité — la colonne est en VARCHAR(255).
                'summary'     => mb_substr($summary, 0, 255),
            ]);
        } catch (\Throwable $e) {
            error_log('[ActivityLogger] insert failed: ' . $e->getMessage());
        }
    }
}
