# 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)'), ), ]