<?php

declare(strict_types=1);

namespace App\Module\Core\Domain\Exception;

use DomainException;

/**
 * Levee lorsqu'une operation mettrait fin a la presence d'au moins un
 * administrateur sur l'instance.
 *
 * L'invariant "au moins un admin doit exister" est protege au niveau du
 * domaine afin qu'aucun flux (API, CLI, import) ne puisse le contourner.
 * La traduction HTTP (422 ou 403) est laissee a la couche infrastructure.
 */
final class LastAdminProtectionException extends DomainException
{
    /**
     * Construit l'exception avec un message par defaut ou un message fourni par l'appelant.
     */
    public function __construct(string $message = 'Impossible : au moins un administrateur doit rester sur l\'instance.')
    {
        parent::__construct($message);
    }
}
