from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema from packages.v1.administrativo.repositories.client.client_save_repository import SaveRepository class SaveAction: """ 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 = SaveRepository() # Chama o método execute do repositório, passando o objeto schema return save_repository.execute(client_schema)