from abc import ABCMeta, abstractmethod

from nperipherals_core.model.device import Device
from nperipherals_core.model.device_status import CashDrawerStatus


class CashDrawer(Device):
    __metaclass__ = ABCMeta

    @abstractmethod
    def open_drawer(self):
        # type: () -> None
        raise NotImplementedError()

    @abstractmethod
    def get_drawer_status(self):
        # type: () -> CashDrawerStatus
        raise NotImplementedError()
