from abc import (
    ABC,
    abstractmethod,
)
from typing import Optional

from .dto import AuthenticationData


class AuthenticationService(ABC):

    @abstractmethod
    def authenticate(
        self,
        username: int,
        password: str,
    ) -> Optional[AuthenticationData]:

        raise NotImplementedError()
