<?php

declare(strict_types=1);

namespace App\Administration\Domain\Model\SchoolClass;

/**
 * Statut du cycle de vie d'une classe.
 */
enum ClassStatus: string
{
    case ACTIVE = 'active';
    case ARCHIVED = 'archived';

    /**
     * Détermine si la classe peut recevoir des élèves.
     */
    public function peutRecevoirEleves(): bool
    {
        return $this === self::ACTIVE;
    }

    /**
     * Détermine si la classe est visible dans les listes actives.
     */
    public function estVisible(): bool
    {
        return $this === self::ACTIVE;
    }

    /**
     * Retourne le libellé pour affichage.
     */
    public function label(): string
    {
        return match ($this) {
            self::ACTIVE => 'Active',
            self::ARCHIVED => 'Archivée',
        };
    }
}
