namespace Giants.Core.Commands;
///
/// Base des commande permettant d'agir sur le modele
///
/// Le type de resultat que retourne cette commande
public abstract class BaseCommand where T : BaseCommandResult
{
protected abstract T LocalExecute();
public required Random Random { get; init; }
/// Executer la commande, si nécessaire il faut avoir rempli les parametres en amont
public T Execute()
{
// C'est ici que sera validé l'exécution
return LocalExecute();
}
}