fix/de los tickets T2026-05-027, T2025-09-004 y T2025-09-056

This commit is contained in:
2026-06-15 11:18:58 -06:00
parent 7644446267
commit 23ed52c78a
29 changed files with 2992 additions and 987 deletions

View File

@@ -0,0 +1,99 @@
# Migración T2026-05-027: estados de descarga de 3 valores (pendiente/descargado/error)
# y contador de intentos automáticos para EDocument y Cove.
#
# NO aplicar en automático. Después de aplicarla, ejecutar el backfill:
# backend/scripts/t2026_05_027/02_backfill_estados.sql
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('customs', '0019_pedimento_consultar_vucem'),
]
operations = [
# --- EDocument ---
migrations.AddField(
model_name='edocument',
name='edocument_estado',
field=models.CharField(choices=[('pendiente', 'Pendiente'), ('descargado', 'Descargado'), ('error', 'Error')], default='pendiente', help_text='Estado de descarga del e-documento: pendiente, descargado o error', max_length=12),
),
migrations.AddField(
model_name='edocument',
name='acuse_estado',
field=models.CharField(choices=[('pendiente', 'Pendiente'), ('descargado', 'Descargado'), ('error', 'Error')], default='pendiente', help_text='Estado de descarga del acuse: pendiente, descargado o error', max_length=12),
),
migrations.AddField(
model_name='edocument',
name='edocument_intentos',
field=models.PositiveSmallIntegerField(default=0, help_text='Intentos automáticos de descarga del e-documento (un ciclo de orquestación = un intento)'),
),
migrations.AddField(
model_name='edocument',
name='acuse_intentos',
field=models.PositiveSmallIntegerField(default=0, help_text='Intentos automáticos de descarga del acuse (un ciclo de orquestación = un intento)'),
),
migrations.AddField(
model_name='edocument',
name='ultimo_intento_at',
field=models.DateTimeField(blank=True, help_text='Fecha del último intento automático de descarga', null=True),
),
migrations.AddField(
model_name='edocument',
name='ultimo_error',
field=models.TextField(blank=True, help_text='Detalle del último error de descarga', null=True),
),
migrations.AlterField(
model_name='edocument',
name='edocument_descargado',
field=models.BooleanField(default=False, help_text='Indica si el e-documento ha sido descargado (legado, derivado de edocument_estado)'),
),
migrations.AlterField(
model_name='edocument',
name='acuse_descargado',
field=models.BooleanField(default=False, help_text='Indica si el acuse del e-documento ha sido descargado (legado, derivado de acuse_estado)'),
),
# --- Cove ---
migrations.AddField(
model_name='cove',
name='cove_estado',
field=models.CharField(choices=[('pendiente', 'Pendiente'), ('descargado', 'Descargado'), ('error', 'Error')], default='pendiente', help_text='Estado de descarga de la cove: pendiente, descargado o error', max_length=12),
),
migrations.AddField(
model_name='cove',
name='acuse_cove_estado',
field=models.CharField(choices=[('pendiente', 'Pendiente'), ('descargado', 'Descargado'), ('error', 'Error')], default='pendiente', help_text='Estado de descarga del acuse de la cove: pendiente, descargado o error', max_length=12),
),
migrations.AddField(
model_name='cove',
name='cove_intentos',
field=models.PositiveSmallIntegerField(default=0, help_text='Intentos automáticos de descarga de la cove (un ciclo de orquestación = un intento)'),
),
migrations.AddField(
model_name='cove',
name='acuse_cove_intentos',
field=models.PositiveSmallIntegerField(default=0, help_text='Intentos automáticos de descarga del acuse de la cove (un ciclo de orquestación = un intento)'),
),
migrations.AddField(
model_name='cove',
name='ultimo_intento_at',
field=models.DateTimeField(blank=True, help_text='Fecha del último intento automático de descarga', null=True),
),
migrations.AddField(
model_name='cove',
name='ultimo_error',
field=models.TextField(blank=True, help_text='Detalle del último error de descarga', null=True),
),
migrations.AlterField(
model_name='cove',
name='cove_descargado',
field=models.BooleanField(default=False, help_text='Indica si la cove ha sido descargada (legado, derivado de cove_estado)'),
),
migrations.AlterField(
model_name='cove',
name='acuse_cove_descargado',
field=models.BooleanField(default=False, help_text='Indica si el acuse de la cove ha sido descargado (legado, derivado de acuse_cove_estado)'),
),
]