Criação dos endpoint's da tabela client

This commit is contained in:
Kenio 2025-10-17 10:59:37 -03:00
parent a82d9405b6
commit 5a10ab79b7
16 changed files with 38 additions and 38 deletions

View file

@ -1,8 +1,8 @@
from packages.v1.administrativo.schemas.client_schema import ClientIdSchema from packages.v1.administrativo.schemas.client_schema import ClientIdSchema
from packages.v1.administrativo.repositories.client.client_delete_repository import ClientDeleteRepository from packages.v1.administrativo.repositories.client.client_delete_repository import DeleteRepository
class ClientDeleteAction: class DeleteAction:
""" """
Action para a exclusão de um registro na tabela 'client'. Action para a exclusão de um registro na tabela 'client'.
Utiliza o schema com o ID do cliente e delega a operação ao repositório. Utiliza o schema com o ID do cliente e delega a operação ao repositório.
@ -19,7 +19,7 @@ class ClientDeleteAction:
:return: Resultado da operação de exclusão do repositório. :return: Resultado da operação de exclusão do repositório.
""" """
# Instancia o repositório específico para a exclusão de clientes # Instancia o repositório específico para a exclusão de clientes
delete_repository = ClientDeleteRepository() delete_repository = DeleteRepository()
# Chama o método execute do repositório, passando o schema do cliente # Chama o método execute do repositório, passando o schema do cliente
return delete_repository.execute(client_schema) return delete_repository.execute(client_schema)

View file

@ -1,10 +1,10 @@
from abstracts.action import BaseAction from abstracts.action import BaseAction
# O repositório deve ser adaptado para a listagem (indexação) da tabela 'client' # O repositório deve ser adaptado para a listagem (indexação) da tabela 'client'
from packages.v1.administrativo.repositories.client.client_index_repository import ClientIndexRepository from packages.v1.administrativo.repositories.client.client_index_repository import IndexRepository
from typing import Tuple, List, Dict, Any from typing import Tuple, List, Dict, Any
class ClientIndexAction(BaseAction): class IndexAction(BaseAction):
""" """
Action responsável por orquestrar a listagem (indexação) de todos Action responsável por orquestrar a listagem (indexação) de todos
os registros da tabela 'client' com suporte a paginação. os registros da tabela 'client' com suporte a paginação.
@ -20,8 +20,8 @@ class ClientIndexAction(BaseAction):
:return: Tupla com a lista de clientes e o total de registros. :return: Tupla com a lista de clientes e o total de registros.
""" """
# Instânciamento do repositório de indexação (listagem) de clientes # Instânciamento do repositório de indexação (listagem) de clientes
# Supondo que ClientIndexRepository é onde a lógica de acesso ao BD está (SELECT * FROM client LIMIT first OFFSET skip) # Supondo que IndexRepository é onde a lógica de acesso ao BD está (SELECT * FROM client LIMIT first OFFSET skip)
client_index_repository = ClientIndexRepository() client_index_repository = IndexRepository()
# Execução do repositório para buscar os clientes com paginação # Execução do repositório para buscar os clientes com paginação
# A resposta (response) conteria os campos da DDL: client_id, cns, name, date_register, state, city, responsible, consultant, type_contract # A resposta (response) conteria os campos da DDL: client_id, cns, name, date_register, state, city, responsible, consultant, type_contract

View file

@ -1,8 +1,8 @@
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema
from packages.v1.administrativo.repositories.client.client_save_repository import ClientSaveRepository from packages.v1.administrativo.repositories.client.client_save_repository import SaveRepository
class ClientSaveAction: class SaveAction:
""" """
Action responsável por orquestrar a operação de salvar (inserir ou atualizar) Action responsável por orquestrar a operação de salvar (inserir ou atualizar)
um registro na tabela 'client'. um registro na tabela 'client'.
@ -21,7 +21,7 @@ class ClientSaveAction:
:return: Resultado da operação de salvamento do repositório. :return: Resultado da operação de salvamento do repositório.
""" """
# Instancia o repositório específico para a operação de salvar clientes # Instancia o repositório específico para a operação de salvar clientes
save_repository = ClientSaveRepository() save_repository = SaveRepository()
# Chama o método execute do repositório, passando o objeto schema # Chama o método execute do repositório, passando o objeto schema
return save_repository.execute(client_schema) return save_repository.execute(client_schema)

View file

@ -1,9 +1,9 @@
from abstracts.action import BaseAction from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.client_schema import ClientSchema from packages.v1.administrativo.schemas.client_schema import ClientSchema
from packages.v1.administrativo.repositories.client.client_show_repository import ClientShowRepository from packages.v1.administrativo.repositories.client.client_show_repository import ShowRepository
class ClientShowAction(BaseAction): class ShowAction(BaseAction):
""" """
Action responsável por orquestrar a visualização (show) de um registro Action responsável por orquestrar a visualização (show) de um registro
único na tabela 'client', geralmente utilizando o 'client_id'. único na tabela 'client', geralmente utilizando o 'client_id'.
@ -22,7 +22,7 @@ class ClientShowAction(BaseAction):
:return: O registro de cliente encontrado ou None/erro. :return: O registro de cliente encontrado ou None/erro.
""" """
# Instânciamento do repositório de visualização (show) # Instânciamento do repositório de visualização (show)
show_repository = ClientShowRepository() show_repository = ShowRepository()
# Execução do repositório # Execução do repositório
response = show_repository.execute(client_schema) response = show_repository.execute(client_schema)

View file

@ -1,8 +1,8 @@
from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema
from packages.v1.administrativo.repositories.client.client_update_repository import ClientUpdateRepository from packages.v1.administrativo.repositories.client.client_update_repository import UpdateRepository
class ClientUpdateAction: class UpdateAction:
""" """
Action responsável por orquestrar a operação de atualização (UPDATE) Action responsável por orquestrar a operação de atualização (UPDATE)
de um registro na tabela 'client', identificado pelo seu ID. de um registro na tabela 'client', identificado pelo seu ID.
@ -22,7 +22,7 @@ class ClientUpdateAction:
:return: Resultado da operação de atualização do repositório. :return: Resultado da operação de atualização do repositório.
""" """
# Instancia o repositório específico para a operação de atualização de clientes # Instancia o repositório específico para a operação de atualização de clientes
update_repository = ClientUpdateRepository() update_repository = UpdateRepository()
# Chama o método execute do repositório, passando o ID e o objeto schema # Chama o método execute do repositório, passando o ID e o objeto schema
return update_repository.execute(client_id, client_schema) return update_repository.execute(client_id, client_schema)

View file

@ -106,7 +106,7 @@ class ClientController:
def save(self, client_schema: ClientSaveSchema): def save(self, client_schema: ClientSaveSchema):
#Importação da classe desejada #Importação da classe desejada
save_service = self.dynamic_import.service('client_save_service', 'ClientSaveService') save_service = self.dynamic_import.service('client_save_service', 'SaveService')
# Instânciamento da classe desejada # Instânciamento da classe desejada
self.save_service = save_service() self.save_service = save_service()
@ -121,7 +121,7 @@ class ClientController:
def update(self, client_id: int, client_schema: ClientUpdateSchema): def update(self, client_id: int, client_schema: ClientUpdateSchema):
#Importação da classe desejada #Importação da classe desejada
update_service = self.dynamic_import.service('client_update_service', 'ClientUpdateService') update_service = self.dynamic_import.service('client_update_service', 'UpdateService')
# Instânciamento da classe desejada # Instânciamento da classe desejada
self.update_service = update_service() self.update_service = update_service()

View file

@ -4,7 +4,7 @@ from abstracts.repository import BaseRepository
from fastapi import HTTPException, status from fastapi import HTTPException, status
class ClientDeleteRepository(BaseRepository): class DeleteRepository(BaseRepository):
""" """
Repositório responsável pela operação de exclusão (DELETE) de um Repositório responsável pela operação de exclusão (DELETE) de um
registro na tabela 'client', usando o client_id como critério. registro na tabela 'client', usando o client_id como critério.

View file

@ -2,7 +2,7 @@ from abstracts.repository import BaseRepository
from typing import Tuple, List, Dict, Any from typing import Tuple, List, Dict, Any
class ClientIndexRepository(BaseRepository): class IndexRepository(BaseRepository):
""" """
Repositório responsável por buscar e retornar todos os registros Repositório responsável por buscar e retornar todos os registros
da tabela 'client' (indexação), com suporte a paginação. da tabela 'client' (indexação), com suporte a paginação.

View file

@ -2,7 +2,7 @@ from fastapi import HTTPException, status
from abstracts.repository import BaseRepository from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema # Importação do schema ClientSaveSchema from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema # Importação do schema ClientSaveSchema
class ClientSaveRepository(BaseRepository): class SaveRepository(BaseRepository):
""" """
Repositório responsável pela operação de salvar/atualizar (Upsert) Repositório responsável pela operação de salvar/atualizar (Upsert)
um registro na tabela 'client', utilizando a lógica INSERT...ON DUPLICATE KEY UPDATE. um registro na tabela 'client', utilizando a lógica INSERT...ON DUPLICATE KEY UPDATE.

View file

@ -3,7 +3,7 @@ from packages.v1.administrativo.schemas.client_schema import ClientSchema
from fastapi import HTTPException, status from fastapi import HTTPException, status
class ClientShowRepository(BaseRepository): class ShowRepository(BaseRepository):
""" """
Repositório responsável por buscar um registro único na tabela 'client' Repositório responsável por buscar um registro único na tabela 'client'
utilizando a chave primária 'client_id'. utilizando a chave primária 'client_id'.

View file

@ -4,7 +4,7 @@ from fastapi import HTTPException, status
# A importação de 'datetime' foi removida no código original e não é necessária aqui. # A importação de 'datetime' foi removida no código original e não é necessária aqui.
class ClientUpdateRepository(BaseRepository): class UpdateRepository(BaseRepository):
""" """
Repositório responsável pela atualização (UPDATE) dinâmica de um Repositório responsável pela atualização (UPDATE) dinâmica de um
registro na tabela 'client', identificado pelo 'client_id'. registro na tabela 'client', identificado pelo 'client_id'.

View file

@ -1,8 +1,8 @@
from packages.v1.administrativo.schemas.client_schema import ClientIdSchema from packages.v1.administrativo.schemas.client_schema import ClientIdSchema
from packages.v1.administrativo.actions.client.client_delete_action import ClientDeleteAction from packages.v1.administrativo.actions.client.client_delete_action import DeleteAction
class ClientDeleteService: class DeleteService:
""" """
Service responsável por orquestrar a exclusão de um cliente, Service responsável por orquestrar a exclusão de um cliente,
delegando a execução para a Action correspondente. delegando a execução para a Action correspondente.
@ -17,7 +17,7 @@ class ClientDeleteService:
""" """
# Instânciamento de ação # Instânciamento de ação
delete_action = ClientDeleteAction() delete_action = DeleteAction()
# Executa a ação em questão # Executa a ação em questão
data = delete_action.execute(client_schema) data = delete_action.execute(client_schema)

View file

@ -1,9 +1,9 @@
from fastapi import HTTPException, status from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.client_schema import ClientSchema from packages.v1.administrativo.schemas.client_schema import ClientSchema
from packages.v1.administrativo.actions.client.client_index_action import ClientIndexAction from packages.v1.administrativo.actions.client.client_index_action import IndexAction
class ClientIndexService: class IndexService:
""" """
Service responsável por orquestrar a listagem (indexação) de todos Service responsável por orquestrar a listagem (indexação) de todos
os clientes, delegando a busca para a Action correspondente. os clientes, delegando a busca para a Action correspondente.
@ -19,7 +19,7 @@ class ClientIndexService:
""" """
# Instânciamento de ação # Instânciamento de ação
index_action = ClientIndexAction() index_action = IndexAction()
# Executa a busca de todos os clientes (a Action/Repository fará a busca, potencialmente com paginação) # Executa a busca de todos os clientes (a Action/Repository fará a busca, potencialmente com paginação)
data = index_action.execute() data = index_action.execute()

View file

@ -1,10 +1,10 @@
from actions.dynamic_import.dynamic_import import DynamicImport from actions.dynamic_import.dynamic_import import DynamicImport
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema, ClientCNSSchema from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema, ClientCNSSchema
from packages.v1.administrativo.actions.client.client_save_action import ClientSaveAction from packages.v1.administrativo.actions.client.client_save_action import SaveAction
from fastapi import status, HTTPException from fastapi import status, HTTPException
class ClientSaveService: class SaveService:
""" """
Service responsável por orquestrar o salvamento (INSERT/UPDATE) de um cliente. Service responsável por orquestrar o salvamento (INSERT/UPDATE) de um cliente.
Inclui validações de regra de negócio, como a unicidade do CNS. Inclui validações de regra de negócio, como a unicidade do CNS.
@ -58,7 +58,7 @@ class ClientSaveService:
) )
# Instânciamento de ações # Instânciamento de ações
save_action = ClientSaveAction() save_action = SaveAction()
# Executa a ação de persistência # Executa a ação de persistência
return save_action.execute(client_schema) return save_action.execute(client_schema)

View file

@ -1,9 +1,9 @@
from fastapi import HTTPException, status from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.client_schema import ClientSchema from packages.v1.administrativo.schemas.client_schema import ClientSchema
from packages.v1.administrativo.actions.client.client_show_action import ClientShowAction from packages.v1.administrativo.actions.client.client_show_action import ShowAction
class ClientShowService: class ShowService:
""" """
Service responsável por orquestrar a visualização de um cliente específico Service responsável por orquestrar a visualização de um cliente específico
(geralmente pelo client_id), delegando a execução para a Action. (geralmente pelo client_id), delegando a execução para a Action.
@ -18,7 +18,7 @@ class ClientShowService:
""" """
# Instânciamento de ação # Instânciamento de ação
show_action = ClientShowAction() show_action = ShowAction()
# Executa a ação em questão # Executa a ação em questão
data = show_action.execute(client_schema) data = show_action.execute(client_schema)

View file

@ -1,10 +1,10 @@
from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema, ClientCNSSchema from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema, ClientCNSSchema
from packages.v1.administrativo.actions.client.client_update_action import ClientUpdateAction from packages.v1.administrativo.actions.client.client_update_action import UpdateAction
from actions.dynamic_import.dynamic_import import DynamicImport from actions.dynamic_import.dynamic_import import DynamicImport
from fastapi import status, HTTPException from fastapi import status, HTTPException
class ClientUpdateService: class UpdateService:
""" """
Service responsável por orquestrar a atualização de um cliente, Service responsável por orquestrar a atualização de um cliente,
incluindo validações de regra de negócio antes de delegar a ação. incluindo validações de regra de negócio antes de delegar a ação.
@ -59,7 +59,7 @@ class ClientUpdateService:
) )
# Instânciamento da Action de atualização # Instânciamento da Action de atualização
update_action = ClientUpdateAction() update_action = UpdateAction()
# Executa a ação de atualização # Executa a ação de atualização
return update_action.execute(client_id, client_schema) return update_action.execute(client_id, client_schema)