# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from tarot import users_pb2 as tarot_dot_users__pb2


class UsersStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.CreateCustomer = channel.unary_unary(
                '/tarot.Users/CreateCustomer',
                request_serializer=tarot_dot_users__pb2.CreateCustomerRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerProfile.FromString,
                )
        self.GetCustomer = channel.unary_unary(
                '/tarot.Users/GetCustomer',
                request_serializer=tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerProfile.FromString,
                )
        self.UpdateCustomerLanguage = channel.unary_unary(
                '/tarot.Users/UpdateCustomerLanguage',
                request_serializer=tarot_dot_users__pb2.CustomerLanguageRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerProfile.FromString,
                )
        self.CreateTelegramUser = channel.unary_unary(
                '/tarot.Users/CreateTelegramUser',
                request_serializer=tarot_dot_users__pb2.TelegramUser.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.TelegramUser.FromString,
                )
        self.GetTelegramUser = channel.unary_unary(
                '/tarot.Users/GetTelegramUser',
                request_serializer=tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.TelegramUser.FromString,
                )
        self.UpdateTelegramUser = channel.unary_unary(
                '/tarot.Users/UpdateTelegramUser',
                request_serializer=tarot_dot_users__pb2.TelegramUser.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.TelegramUser.FromString,
                )
        self.UpdateSpreadProfile = channel.unary_unary(
                '/tarot.Users/UpdateSpreadProfile',
                request_serializer=tarot_dot_users__pb2.SpreadProfile.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.SpreadProfile.FromString,
                )
        self.GetSpreadProfile = channel.unary_unary(
                '/tarot.Users/GetSpreadProfile',
                request_serializer=tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.SpreadProfile.FromString,
                )
        self.GetCustomerBalance = channel.unary_unary(
                '/tarot.Users/GetCustomerBalance',
                request_serializer=tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerBalance.FromString,
                )
        self.GetCustomerTransactions = channel.unary_unary(
                '/tarot.Users/GetCustomerTransactions',
                request_serializer=tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerTransactions.FromString,
                )
        self.TopUpBalance = channel.unary_unary(
                '/tarot.Users/TopUpBalance',
                request_serializer=tarot_dot_users__pb2.TopUpBalanceRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerBalance.FromString,
                )
        self.InitiateInternalPurchase = channel.unary_unary(
                '/tarot.Users/InitiateInternalPurchase',
                request_serializer=tarot_dot_users__pb2.InternalPurchaseRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerTransaction.FromString,
                )
        self.CommitInternalPurchase = channel.unary_unary(
                '/tarot.Users/CommitInternalPurchase',
                request_serializer=tarot_dot_users__pb2.CommitInternalPurchaseRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerTransaction.FromString,
                )
        self.RevertInternalPurchase = channel.unary_unary(
                '/tarot.Users/RevertInternalPurchase',
                request_serializer=tarot_dot_users__pb2.CommitInternalPurchaseRequest.SerializeToString,
                response_deserializer=tarot_dot_users__pb2.CustomerTransaction.FromString,
                )
        self.RegisterReferral = channel.unary_unary(
                '/tarot.Users/RegisterReferral',
                request_serializer=tarot_dot_users__pb2.RegisterReferralRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )


class UsersServicer(object):
    """Missing associated documentation comment in .proto file."""

    def CreateCustomer(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCustomer(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateCustomerLanguage(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateTelegramUser(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTelegramUser(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateTelegramUser(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateSpreadProfile(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSpreadProfile(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCustomerBalance(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCustomerTransactions(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def TopUpBalance(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InitiateInternalPurchase(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CommitInternalPurchase(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RevertInternalPurchase(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RegisterReferral(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_UsersServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CreateCustomer': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateCustomer,
                    request_deserializer=tarot_dot_users__pb2.CreateCustomerRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerProfile.SerializeToString,
            ),
            'GetCustomer': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCustomer,
                    request_deserializer=tarot_dot_users__pb2.GetCustomerRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerProfile.SerializeToString,
            ),
            'UpdateCustomerLanguage': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateCustomerLanguage,
                    request_deserializer=tarot_dot_users__pb2.CustomerLanguageRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerProfile.SerializeToString,
            ),
            'CreateTelegramUser': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateTelegramUser,
                    request_deserializer=tarot_dot_users__pb2.TelegramUser.FromString,
                    response_serializer=tarot_dot_users__pb2.TelegramUser.SerializeToString,
            ),
            'GetTelegramUser': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTelegramUser,
                    request_deserializer=tarot_dot_users__pb2.GetCustomerRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.TelegramUser.SerializeToString,
            ),
            'UpdateTelegramUser': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateTelegramUser,
                    request_deserializer=tarot_dot_users__pb2.TelegramUser.FromString,
                    response_serializer=tarot_dot_users__pb2.TelegramUser.SerializeToString,
            ),
            'UpdateSpreadProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateSpreadProfile,
                    request_deserializer=tarot_dot_users__pb2.SpreadProfile.FromString,
                    response_serializer=tarot_dot_users__pb2.SpreadProfile.SerializeToString,
            ),
            'GetSpreadProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.GetSpreadProfile,
                    request_deserializer=tarot_dot_users__pb2.GetCustomerRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.SpreadProfile.SerializeToString,
            ),
            'GetCustomerBalance': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCustomerBalance,
                    request_deserializer=tarot_dot_users__pb2.GetCustomerRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerBalance.SerializeToString,
            ),
            'GetCustomerTransactions': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCustomerTransactions,
                    request_deserializer=tarot_dot_users__pb2.GetCustomerRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerTransactions.SerializeToString,
            ),
            'TopUpBalance': grpc.unary_unary_rpc_method_handler(
                    servicer.TopUpBalance,
                    request_deserializer=tarot_dot_users__pb2.TopUpBalanceRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerBalance.SerializeToString,
            ),
            'InitiateInternalPurchase': grpc.unary_unary_rpc_method_handler(
                    servicer.InitiateInternalPurchase,
                    request_deserializer=tarot_dot_users__pb2.InternalPurchaseRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerTransaction.SerializeToString,
            ),
            'CommitInternalPurchase': grpc.unary_unary_rpc_method_handler(
                    servicer.CommitInternalPurchase,
                    request_deserializer=tarot_dot_users__pb2.CommitInternalPurchaseRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerTransaction.SerializeToString,
            ),
            'RevertInternalPurchase': grpc.unary_unary_rpc_method_handler(
                    servicer.RevertInternalPurchase,
                    request_deserializer=tarot_dot_users__pb2.CommitInternalPurchaseRequest.FromString,
                    response_serializer=tarot_dot_users__pb2.CustomerTransaction.SerializeToString,
            ),
            'RegisterReferral': grpc.unary_unary_rpc_method_handler(
                    servicer.RegisterReferral,
                    request_deserializer=tarot_dot_users__pb2.RegisterReferralRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'tarot.Users', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Users(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def CreateCustomer(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/CreateCustomer',
            tarot_dot_users__pb2.CreateCustomerRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetCustomer(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/GetCustomer',
            tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateCustomerLanguage(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/UpdateCustomerLanguage',
            tarot_dot_users__pb2.CustomerLanguageRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateTelegramUser(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/CreateTelegramUser',
            tarot_dot_users__pb2.TelegramUser.SerializeToString,
            tarot_dot_users__pb2.TelegramUser.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTelegramUser(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/GetTelegramUser',
            tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
            tarot_dot_users__pb2.TelegramUser.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateTelegramUser(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/UpdateTelegramUser',
            tarot_dot_users__pb2.TelegramUser.SerializeToString,
            tarot_dot_users__pb2.TelegramUser.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateSpreadProfile(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/UpdateSpreadProfile',
            tarot_dot_users__pb2.SpreadProfile.SerializeToString,
            tarot_dot_users__pb2.SpreadProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetSpreadProfile(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/GetSpreadProfile',
            tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
            tarot_dot_users__pb2.SpreadProfile.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetCustomerBalance(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/GetCustomerBalance',
            tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerBalance.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetCustomerTransactions(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/GetCustomerTransactions',
            tarot_dot_users__pb2.GetCustomerRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerTransactions.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def TopUpBalance(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/TopUpBalance',
            tarot_dot_users__pb2.TopUpBalanceRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerBalance.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def InitiateInternalPurchase(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/InitiateInternalPurchase',
            tarot_dot_users__pb2.InternalPurchaseRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerTransaction.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CommitInternalPurchase(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/CommitInternalPurchase',
            tarot_dot_users__pb2.CommitInternalPurchaseRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerTransaction.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RevertInternalPurchase(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/RevertInternalPurchase',
            tarot_dot_users__pb2.CommitInternalPurchaseRequest.SerializeToString,
            tarot_dot_users__pb2.CustomerTransaction.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RegisterReferral(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tarot.Users/RegisterReferral',
            tarot_dot_users__pb2.RegisterReferralRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
