from abc import ABCMeta, abstractmethod

from model.repository import LogRepositoryModel
from model.services import EventDispatcherService


class BaseInteractor(object):
    __metaclass__ = ABCMeta

    def __init__(self, log_repository, event_dispatcher):
        # type: (LogRepositoryModel, EventDispatcherService) -> None
        self.log_repository = log_repository
        self.event_dispatcher = event_dispatcher

    @abstractmethod
    def execute(self, data):
        raise NotImplementedError()
