<?php

declare(strict_types=1);

namespace App\Framework\Console;

enum SpinnerStyle: string
{
    case DOTS = 'dots';
    case LINE = 'line';
    case BOUNCE = 'bounce';
    case ARROW = 'arrow';

    /**
     * Gibt die Frames für den gewählten Stil zurück
     */
    public function getFrames(): array
    {
        return match($this) {
            self::DOTS => ['.  ', '.. ', '...', ' ..', '  .', '   '],
            self::LINE => ['|', '/', '-', '\\'],
            self::BOUNCE => ['⠈', '⠐', '⠠', '⢀', '⡀', '⠄', '⠂', '⠁'],
            self::ARROW => ['←', '↖', '↑', '↗', '→', '↘', '↓', '↙']
        };
    }
}
