# -*- coding: utf-8 -*-


class BaseManager(object):
    """
    BaseManager for extending and creating custom Managers.
    """
    _model_class = None

    def __init__(self, model_class, *args, **kwargs):
        if not model_class:
            raise ValueError('You need to specify a model class for the manager')

        self._model_class = model_class

    def save(self, document):
        raise NotImplementedError

    def bulk_save(self, documents):
        raise NotImplementedError

    def get(self, key):
        raise NotImplementedError

    def delete(self, keys):
        raise NotImplementedError

    def search(self, *args, **kwargs):
        raise NotImplementedError
