from abc import (
    ABCMeta,
    abstractmethod
)
from typing import (
    List,
    Tuple
)


class FiscalRepository(object):
    __metaclass__ = ABCMeta

    @abstractmethod
    def get_orders(
            self,
            end_date    # type: int
    ):
        # type: (...) -> List[Tuple[int, str]]

        raise NotImplementedError()

    @abstractmethod
    def fill_fiscal_backup_database(
            self,
            suffix_date,    # type: str
            orders          # type: List[int]
    ):
        # type: (...) -> None

        raise NotImplementedError()

    @abstractmethod
    def delete_fiscals(
            self,
            orders  # type: List[int]
    ):
        # type: (List[int]) -> None

        raise NotImplementedError()
