<?php

declare(strict_types=1);

namespace App\Administration\Infrastructure\School;

use Ramsey\Uuid\Uuid;

/**
 * Service temporaire pour résoudre le schoolId à partir du tenant.
 *
 * TODO: Ce service sera remplacé quand le module Schools sera implémenté.
 * Actuellement, il génère un UUID déterministe basé sur le tenantId,
 * ce qui suppose qu'un tenant = une école.
 *
 * Quand le module multi-écoles sera implémenté :
 * 1. Ce service lira le schoolId depuis le contexte utilisateur
 * 2. Les données existantes devront être migrées vers les vraies écoles
 */
final readonly class SchoolIdResolver
{
    /**
     * Résout le schoolId pour le tenant courant.
     *
     * @param string $tenantId L'identifiant du tenant
     *
     * @return string L'identifiant de l'école (UUID)
     */
    public function resolveForTenant(string $tenantId): string
    {
        // Génère un UUID déterministe basé sur le tenantId
        // Cela garantit que le même tenantId donne toujours le même schoolId
        return Uuid::uuid5(Uuid::NAMESPACE_DNS, "school-{$tenantId}")->toString();
    }
}
