monitoring-api/packages/v1/administrativo/actions/client/client_save_action.py

27 lines
No EOL
1.2 KiB
Python

from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema
from packages.v1.administrativo.repositories.client.client_save_repository import ClientSaveRepository
class ClientSaveAction:
"""
Action responsável por orquestrar a operação de salvar (inserir ou atualizar)
um registro na tabela 'client'.
"""
def execute(self, client_schema: ClientSaveSchema):
"""
Executa a lógica de salvamento do cliente.
O schema 'ClientSaveSchema' deve conter todos os campos necessários
para a operação de persistência, baseados na DDL:
cns, name, date_register (opcional na entrada, pois tem DEFAULT),
state, city, responsible, consultant, e type_contract.
:param client_schema: Schema contendo os dados do cliente a serem salvos.
: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()
# Chama o método execute do repositório, passando o objeto schema
return save_repository.execute(client_schema)