from abc import ABCMeta, abstractmethod

from customer_services.model import Customer


class CustomerRepository(object):
    __metaclass__ = ABCMeta

    @abstractmethod
    def get_customer(self, phone):
        # type: (str) -> Customer
    
        raise NotImplementedError

    @abstractmethod
    def add_customer(self, customer):
        # type: (Customer) -> None
    
        raise NotImplementedError

    @abstractmethod
    def update_customer(self, customer):
        # type: (Customer) -> None
    
        raise NotImplementedError
