<?php

require_once APP_ROOT . '/src/Database.php';
require_once APP_ROOT . '/src/Parsedown.php';
require_once APP_ROOT . '/src/ErrorHandler.php';
require_once APP_ROOT . '/src/EmailObfuscator.php';

class AboutController
{
    private string $defaultContent = "Ce site XAMXAM a été créé pour répertorier et valoriser les mémoires de l'erg – École de Recherches Graphiques de Bruxelles.\n\nL'objectif est à la fois d'offrir une vitrine aux projets des anciennes étudiantes et de mettre en lumière la diversité des disciplines et des parcours qui façonnent l'histoire de l'école à travers les âges, depuis près de 100 ans.";

    public static function create(): self
    {
        return new self();
    }

    public function handle(): array
    {
        try {
            $db = Database::getInstance();
            $aboutPage = $db->getPage('about');
            $rawContent = $aboutPage ? $aboutPage['content'] : '';
            if (empty(trim($rawContent)) || trim($rawContent) === 'Contenu à venir') {
                $rawContent = $this->defaultContent;
            }
            $contacts   = $db->getAproposContent('contacts');
            $contacts   = is_array($contacts) && !empty($contacts) ? $contacts : null;
        } catch (Exception $e) {
            ErrorHandler::log('about_page', $e);
            $rawContent = $this->defaultContent;
            $contacts   = null;
        }

        $pd = new Parsedown();
        $pd->setSafeMode(true);

        return [
            'currentNav'      => 'apropos',
            'aboutHtml'       => EmailObfuscator::obfuscateHtml($pd->text($rawContent)),
            'contacts'        => $contacts,
            'pageTitle'       => 'À Propos – XAMXAM',
            'metaDescription' => "À propos de XAMXAM, le répertoire des mémoires de fin d'études de l'erg – École de Recherches Graphiques de Bruxelles.",
            'extraCss'        => ['/assets/css/apropos.css'],
            'bodyClass'       => 'apropos-body',
        ];
    }
}
