fix(): Ajuste no cadastro de arquivos

This commit is contained in:
Kenio 2025-11-05 12:40:31 -03:00
parent 5b29506c09
commit 6f91dc257e
2 changed files with 7 additions and 7 deletions

View file

@ -147,13 +147,13 @@ class SaveMultipleRepository:
# Usamos 'exclude_unset' para evitar campos opcionais que não foram enviados # Usamos 'exclude_unset' para evitar campos opcionais que não foram enviados
doc_data = doc.model_dump( doc_data = doc.model_dump(
exclude_unset=True, exclude_unset=True,
exclude={"arquivo_base64"}, # <<< Exclui o Base64 ANTES de ir pro banco exclude={"arquivo"}, # <<< Exclui o Base64 ANTES de ir pro banco
) )
# --- NOVO FLUXO DE ARQUIVOS (Base64 -> Disco) --- # --- NOVO FLUXO DE ARQUIVOS (Base64 -> Disco) ---
# O campo 'arquivo_base64' foi excluído do doc_data acima. # O campo 'arquivo' foi excluído do doc_data acima.
# Agora verificamos se ele existe no objeto original (doc) # Agora verificamos se ele existe no objeto original (doc)
base64_content = getattr(doc, "arquivo_base64", None) base64_content = getattr(doc, "arquivo", None)
file_url_path = None file_url_path = None
if base64_content and doc.nome_documento: if base64_content and doc.nome_documento:
@ -177,7 +177,7 @@ class SaveMultipleRepository:
doc_data[campo] = None doc_data[campo] = None
# 4. Criação e Persistência no Banco # 4. Criação e Persistência no Banco
# Note: doc_data NÃO tem mais 'arquivo_base64'. Ele tem 'url' (path do disco). # Note: doc_data NÃO tem mais 'arquivo'. Ele tem 'url' (path do disco).
new_documento = AtoDocumento(**doc_data, ato_principal_id=new_ato_id) new_documento = AtoDocumento(**doc_data, ato_principal_id=new_ato_id)
db.add(new_documento) db.add(new_documento)

View file

@ -18,7 +18,7 @@ from actions.validations.text import Text
class AtoDocumentoSchema(BaseModel): class AtoDocumentoSchema(BaseModel):
ato_documento_id: Optional[int] = None ato_documento_id: Optional[int] = None
ato_principal_id: Optional[int] = None # bigint NOT NULL ato_principal_id: Optional[int] = None # bigint NOT NULL
arquivo_base64: Optional[str] = None arquivo: Optional[str] = None
nome_documento: Optional[str] = None # varchar(255) NOT NULL nome_documento: Optional[str] = None # varchar(255) NOT NULL
tipo_documento: Optional[str] = None # varchar(50) NOT NULL tipo_documento: Optional[str] = None # varchar(50) NOT NULL
created_at: Optional[datetime] = None created_at: Optional[datetime] = None
@ -55,7 +55,7 @@ class AtoDocumentoIdSchema(BaseModel):
class AtoDocumentoSaveSchema(BaseModel): class AtoDocumentoSaveSchema(BaseModel):
# Campos obrigatórios # Campos obrigatórios
ato_principal_id: Optional[int] = None ato_principal_id: Optional[int] = None
arquivo_base64: Optional[str] = None arquivo: Optional[str] = None
nome_documento: constr(max_length=255) nome_documento: constr(max_length=255)
tipo_documento: constr(max_length=50) tipo_documento: constr(max_length=50)
@ -102,7 +102,7 @@ class AtoDocumentoSaveSchema(BaseModel):
class AtoDocumentoUpdateSchema(BaseModel): class AtoDocumentoUpdateSchema(BaseModel):
# Todos os campos são opcionais no UPDATE # Todos os campos são opcionais no UPDATE
ato_principal_id: Optional[int] = None ato_principal_id: Optional[int] = None
arquivo_base64: Optional[str] = None arquivo: Optional[str] = None
nome_documento: Optional[constr(max_length=255)] = None nome_documento: Optional[constr(max_length=255)] = None
tipo_documento: Optional[constr(max_length=50)] = None tipo_documento: Optional[constr(max_length=50)] = None