from abc import ABCMeta, abstractmethod
from six import add_metaclass

@add_metaclass(ABCMeta)
class GlobalPromStatsWorkerDataInterface(object):
  """
  Interface that represents all data store interactions required by the global prom stats worker.
  """
  @abstractmethod
  def get_repository_count(self):
    """ Returns the number of repositories in the database. """
    pass

  @abstractmethod
  def get_active_user_count(self):
    """ Returns the number of active users in the database. """
    pass

  @abstractmethod
  def get_active_org_count(self):
    """ Returns the number of active organizations in the database. """
    pass

  @abstractmethod
  def get_robot_count(self):
    """ Returns the number of robots in the database. """
    pass