from fastapi import HTTPException, status from packages.v1.administrativo.schemas.client_schema import ClientSchema from packages.v1.administrativo.actions.client.client_index_action import ClientIndexAction class ClientIndexService: """ Service responsável por orquestrar a listagem (indexação) de todos os clientes, delegando a busca para a Action correspondente. """ # O método execute pode ser adaptado para receber 'first' e 'skip' se a Action/Repository suportar paginação. # No entanto, mantendo o padrão da assinatura do arquivo de referência, ele não recebe parâmetros aqui. def execute(self): """ Executa o serviço de listagem de clientes. :return: Lista de registros de clientes. """ # Instânciamento de ação index_action = ClientIndexAction() # Executa a busca de todos os clientes (a Action/Repository fará a busca, potencialmente com paginação) data = index_action.execute() # Verifica se foram localizados registros if not data: # Retorna uma exceção raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail='Não foi possível localizar os clientes' ) # Retorna as informações localizadas return data