<?php

declare(strict_types=1);

namespace App\Scolarite\Application\Port;

/**
 * Port pour lire les noms d'affichage des matières et enseignants.
 *
 * Permet à la couche Application de résoudre les noms sans dépendre
 * directement des repositories du bounded context Administration.
 */
interface ScheduleDisplayReader
{
    /**
     * @param string ...$subjectIds Identifiants des matières
     *
     * @return array<string, array{name: string, color: string|null}> Map subjectId => {name, color}
     */
    public function subjectDisplay(string $tenantId, string ...$subjectIds): array;

    /**
     * @param string ...$teacherIds Identifiants des enseignants
     *
     * @return array<string, string> Map teacherId => "Prénom Nom"
     */
    public function teacherNames(string $tenantId, string ...$teacherIds): array;
}
