Skip to content

Commit 71c4ed0

Browse files
Merge pull request #5 from PythonFloripa/dev
Dev
2 parents a692033 + f487ea1 commit 71c4ed0

File tree

5 files changed

+19
-3
lines changed

5 files changed

+19
-3
lines changed

src/application/process_certificate_notification.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ def execute(self, notifications: CertificateNotificationBatch) -> ProcessedCerti
4848
str(updated_certificate.id),
4949
updated_certificate
5050
)
51+
52+
updated_certificate.authenticity_verification_url = notification.authenticity_verification_url
53+
updated_certificate.validation_code = notification.validation_code
54+
5155
updated_certificates.append(updated_certificate)
5256

5357
logger.info(f"Certificado atualizado com sucesso - Order ID: {notification.order_id}")
@@ -117,4 +121,4 @@ def _check_and_generate_certificate_url(self, certificate_key: str, certificate_
117121
else:
118122
# Se não existe, retorna string vazia
119123
logger.warning(f"Certificado não encontrado no S3 para a chave: {certificate_key}")
120-
return ""
124+
return ""

src/domain/dto/certificate_notification.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ class CertificateNotificationResponse(BaseModel):
55
"""
66
Modelo de resposta da fila de notificação de certificados.
77
Representa o resultado do processamento de um certificado.
8-
[{"order_id": 452, "product_id": 316, "product_name": "Evento de Teste", "email": "[email protected]", "certificate_key": "certificates/316/452/Jardel_GodinhoEvento_de_Teste_AD9-B58-BFA.png", "success": true}, {"order_id": 317, "product_id": 316, "product_name": "Evento de Teste", "email": "[email protected]", "certificate_key": "certificates/316/317/Jardel_GodinhoEvento_de_Teste_443-C8D-B05.png", "success": true}]
98
"""
10-
order_id: int = Field(..., description="ID da ordem processada")
9+
order_id: int = Field(..., description="ID da ordem processada")
10+
validation_code: str = Field(..., description="Código de validação do certificado")
11+
authenticity_verification_url: str = Field(..., description="URL para verificação de autenticidade do certificado")
1112
product_id: int = Field(..., description="ID do produto")
1213
product_name: str = Field(..., description="Nome do produto")
1314
email: str = Field(..., description="Email do participante")

src/domain/dto/tech_floripa_notification.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ class CertificateNotificationItem(BaseModel):
1010
"""
1111
id: str = Field(..., description="ID do certificado (convertido de UUID para string)")
1212
order_id: int = Field(..., description="ID do pedido")
13+
validation_code: str = Field(..., description="Código de validação do certificado")
14+
authenticity_verification_url: str = Field(..., description="URL para verificação de autenticidade do certificado")
1315
product_id: int = Field(..., description="ID do produto")
1416
product_name: str = Field(..., description="Nome do produto")
1517
certificate_url: str | None = Field(None, description="URL do certificado")
@@ -55,6 +57,8 @@ def from_certificates(cls, certificates: List[Any]) -> 'TechFloripaNotification'
5557
CertificateNotificationItem(
5658
id=cert.id, # Será convertido automaticamente pelo validator
5759
order_id=cert.order_id,
60+
validation_code=cert.validation_code,
61+
authenticity_verification_url=cert.authenticity_verification_url,
5862
product_id=cert.product_id,
5963
product_name=cert.product_name,
6064
certificate_url=cert.certificate_url,

src/domain/entity/certificate.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ class Certificate(BaseModel):
88
certificate_key: Optional[str] = None
99
certificate_url: Optional[str] = None
1010
generated_date: Optional[str] = None
11+
validation_code : Optional[str] = None
12+
authenticity_verification_url : Optional[str] = None
1113
order_id: int
1214
order_date: str
1315
product_id: int

src/infrastructure/repository/certificate_repository_impl.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@ def update(self, entity_id: str, entity: Certificate) -> Optional[Certificate]:
8484
if 'order_id' in update_data:
8585
del update_data['order_id']
8686

87+
if 'authenticity_verification_url' in update_data:
88+
del update_data['authenticity_verification_url']
89+
if 'validation_code' in update_data:
90+
del update_data['validation_code']
91+
8792
# Constrói a expressão de atualização
8893
update_expression = "SET "
8994
expression_values = {}

0 commit comments

Comments
 (0)