from actions.dynamic_import.dynamic_import import DynamicImport # NOTE: O novo esquema deve ser criado para o Log. # Assumimos que a UserSaveSchema foi substituída por LogSaveSchema, # que conteria os campos client_id e file. # from packages.v1.administrativo.schemas.log_schema import LogSaveSchema from packages.v1.administrativo.actions.log.log_save_action import SaveAction from fastapi import status, HTTPException class SaveService: # Mantendo o padrão de nome de classe, mas renomeando a classe principal # para refletir a ação de 'Salvar' (Save) em vez de 'Usuário Salvar' (UserSave). # O nome do arquivo já indica 'log_save_service'. def __init__(self): # Action responsável por carregar as services de acordo com o estado self.dynamic_import = DynamicImport() # Define o pacote que deve ser carregado self.dynamic_import.set_package("administrativo") # Define a tabela que o pacote pertence self.dynamic_import.set_table("log") pass # O esquema de entrada deve refletir os campos da tabela 'log' # (client_id e file, já que date_post é gerado no banco) # def execute(self, log_schema: LogSaveSchema): # Usando 'schema' para manter a abstração, já que o schema exato não está definido def execute(self, schema): # NOTE: A lógica de validação de email foi REMOVIDA # porque não é aplicável à tabela 'log' (não há campo 'email'). # A validação de 'client_id' ou 'file' deve ocorrer no schema (Pydantic). # Instanciamento de ações com prefixo 'log' e nome mantido save_action = SaveAction() # Retorna o log salvo return save_action.execute(schema) # NOTE: Foi mantido o padrão 'SaveService' para a classe principal. # Se o nome original 'UserSaveService' for um padrão rigoroso, # o nome da classe pode ser ajustado para 'LogSaveService'. # No entanto, o padrão de design geralmente usa o nome da ação (Save) + Service.