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.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'.
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.
"""
# 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
return delete_repository.execute(client_schema)

View file

@ -1,10 +1,10 @@
from abstracts.action import BaseAction
# 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
class ClientIndexAction(BaseAction):
class IndexAction(BaseAction):
"""
Action responsável por orquestrar a listagem (indexação) de todos
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.
"""
# 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)
client_index_repository = ClientIndexRepository()
# Supondo que IndexRepository é onde a lógica de acesso ao BD está (SELECT * FROM client LIMIT first OFFSET skip)
client_index_repository = IndexRepository()
# 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

View file

@ -1,8 +1,8 @@
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)
um registro na tabela 'client'.
@ -21,7 +21,7 @@ class ClientSaveAction:
:return: Resultado da operação de salvamento do repositório.
"""
# 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
return save_repository.execute(client_schema)

View file

@ -1,9 +1,9 @@
from abstracts.action import BaseAction
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
ú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.
"""
# Instânciamento do repositório de visualização (show)
show_repository = ClientShowRepository()
show_repository = ShowRepository()
# Execução do repositório
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.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)
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.
"""
# 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
return update_repository.execute(client_id, client_schema)

View file

@ -106,7 +106,7 @@ class ClientController:
def save(self, client_schema: ClientSaveSchema):
#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
self.save_service = save_service()
@ -121,7 +121,7 @@ class ClientController:
def update(self, client_id: int, client_schema: ClientUpdateSchema):
#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
self.update_service = update_service()

View file

@ -4,7 +4,7 @@ from abstracts.repository import BaseRepository
from fastapi import HTTPException, status
class ClientDeleteRepository(BaseRepository):
class DeleteRepository(BaseRepository):
"""
Repositório responsável pela operação de exclusão (DELETE) de um
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
class ClientIndexRepository(BaseRepository):
class IndexRepository(BaseRepository):
"""
Repositório responsável por buscar e retornar todos os registros
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 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)
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
class ClientShowRepository(BaseRepository):
class ShowRepository(BaseRepository):
"""
Repositório responsável por buscar um registro único na tabela 'client'
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.
class ClientUpdateRepository(BaseRepository):
class UpdateRepository(BaseRepository):
"""
Repositório responsável pela atualização (UPDATE) dinâmica de um
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.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,
delegando a execução para a Action correspondente.
@ -17,7 +17,7 @@ class ClientDeleteService:
"""
# Instânciamento de ação
delete_action = ClientDeleteAction()
delete_action = DeleteAction()
# Executa a ação em questão
data = delete_action.execute(client_schema)

View file

@ -1,9 +1,9 @@
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
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
os clientes, delegando a busca para a Action correspondente.
@ -19,7 +19,7 @@ class ClientIndexService:
"""
# 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)
data = index_action.execute()

View file

@ -1,10 +1,10 @@
from actions.dynamic_import.dynamic_import import DynamicImport
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
class ClientSaveService:
class SaveService:
"""
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.
@ -58,7 +58,7 @@ class ClientSaveService:
)
# Instânciamento de ações
save_action = ClientSaveAction()
save_action = SaveAction()
# Executa a ação de persistência
return save_action.execute(client_schema)

View file

@ -1,9 +1,9 @@
from fastapi import HTTPException, status
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
(geralmente pelo client_id), delegando a execução para a Action.
@ -18,7 +18,7 @@ class ClientShowService:
"""
# Instânciamento de ação
show_action = ClientShowAction()
show_action = ShowAction()
# Executa a ação em questão
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.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 fastapi import status, HTTPException
class ClientUpdateService:
class UpdateService:
"""
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.
@ -59,7 +59,7 @@ class ClientUpdateService:
)
# Instânciamento da Action de atualização
update_action = ClientUpdateAction()
update_action = UpdateAction()
# Executa a ação de atualização
return update_action.execute(client_id, client_schema)