from abc import ABC, abstractmethod

from spotify_shortcuts.config import Config
from spotipy import Spotify


class Shortcut(ABC):
    @abstractmethod
    def execute(self, client: Spotify, config: Config):
        """Execute the shortcut action."""
        pass

    @abstractmethod
    def get_help(self) -> str:
        """Return a description of the shortcut."""
        pass

    @abstractmethod
    def get_scopes(self) -> list[str]:
        """Return the spotify API scopes required for the shortcut."""
        pass
