Browse Source

Feat(Assinatura): migracao dos modelos de PDF-alvo e dedupe AB#1473

Gerada por makemigrations no container padrao de teste — duas tabelas novas
no app isolado, nenhuma alteracao em tabela do core.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pull/3858/head
kemuel 4 weeks ago
parent
commit
218956017c
  1. 45
      sapl/integracao_hub/migrations/0003_assinaturarecebida_documentoparaassinatura.py

45
sapl/integracao_hub/migrations/0003_assinaturarecebida_documentoparaassinatura.py

@ -0,0 +1,45 @@
# Generated by Django 2.2.28 on 2026-08-20 17:26
from django.db import migrations, models
import django.db.models.deletion
import sapl.integracao_hub.models
class Migration(migrations.Migration):
dependencies = [
('materia', '0094_add_anexoproposicao'),
('integracao_hub', '0002_anexoproposicao'),
]
operations = [
migrations.CreateModel(
name='DocumentoParaAssinatura',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('arquivo', models.FileField(upload_to=sapl.integracao_hub.models._caminho_pdf_alvo, verbose_name='PDF-alvo da assinatura')),
('hash_sha256', models.CharField(max_length=64, verbose_name='SHA-256 do PDF-alvo')),
('hash_origem', models.CharField(max_length=64, verbose_name='SHA-256 do texto_original usado na geração')),
('gerado_em', models.DateTimeField(auto_now=True, verbose_name='Gerado em')),
('materia', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='documento_para_assinatura', to='materia.MateriaLegislativa', verbose_name='Matéria Legislativa')),
],
options={
'verbose_name': 'Documento para Assinatura',
'verbose_name_plural': 'Documentos para Assinatura',
},
),
migrations.CreateModel(
name='AssinaturaRecebida',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('chave_idempotencia', models.UUIDField(unique=True, verbose_name='Chave de Idempotência')),
('hash_assinado', models.CharField(max_length=64, verbose_name='SHA-256 do PDF assinado recebido')),
('recebido_em', models.DateTimeField(auto_now_add=True, verbose_name='Recebido em')),
('materia', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='materia.MateriaLegislativa', verbose_name='Matéria Legislativa')),
],
options={
'verbose_name': 'Assinatura Recebida do Hub',
'verbose_name_plural': 'Assinaturas Recebidas do Hub',
},
),
]
Loading…
Cancel
Save