Files
backend/api/vucem/models.py
2025-09-22 18:43:29 -06:00

61 lines
3.3 KiB
Python

from django.db import models
from api.cuser.models import CustomUser
import uuid
# Create your models here.
class Vucem(models.Model):
"""
Modelo para almacenar información de VUCEM.
"""
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
created_by = models.ForeignKey('cuser.CustomUser', on_delete=models.CASCADE, related_name='vucems_created', help_text="Usuario que creó el VUCEM")
updated_by = models.ForeignKey('cuser.CustomUser', on_delete=models.CASCADE, related_name='vucems_updated', null=True, blank=True, help_text="Usuario que actualizó el VUCEM")
organizacion = models.ForeignKey('organization.Organizacion', on_delete=models.CASCADE, related_name='vucems', help_text="Organización a la que pertenece el VUCEM")
usuario = models.CharField(max_length=100, unique=True, help_text="Usuario de VUCEM")
password = models.CharField(max_length=100, help_text="Contraseña de VUCEM")
patente = models.CharField(max_length=100, unique=True, help_text="Patente de VUCEM")
efirma = models.CharField(max_length=100, blank=True, null=True,help_text="E-Firma de VUCEM")
key = models.FileField(upload_to='vucem_keys/', help_text="Llave privada de VUCEM")
cer = models.FileField(upload_to='vucem_certs/', help_text="Certificado de VUCEM")
is_importador = models.BooleanField(default=False, help_text="Indica si es importador")
acusecove = models.BooleanField(default=False, help_text="Indica si generara acusecove")
acuseedocument = models.BooleanField(default=False, help_text="Indica si generara acusee edocumento")
is_active = models.BooleanField(default=True, help_text="Indica si el registro está activo")
created_at = models.DateTimeField(auto_now_add=True, help_text="Fecha de creación del registro")
updated_at = models.DateTimeField(auto_now=True, help_text="Fecha de última actualización del registro")
class Meta:
verbose_name = 'VUCEM'
verbose_name_plural = 'VUCEMs'
db_table = 'vucem'
def __str__(self):
return self.organizacion.nombre + ' - ' + self.usuario
class CredencialesImportador(models.Model):
"""
Modelo para almacenar información de usuarios importadores.
"""
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
organizacion = models.ForeignKey('organization.Organizacion', on_delete=models.CASCADE, related_name='usuarios_importadores', help_text="Organización a la que pertenece el usuario importador", blank=True, null=True)
vucem = models.ForeignKey(Vucem, on_delete=models.CASCADE, related_name='usuarios_importadores', help_text="VUCEM asociado al usuario importador")
rfc = models.ForeignKey('customs.Importador', on_delete=models.CASCADE, related_name='usuarios_importadores', help_text="RFC del importador asociado al usuario importador")
created_at = models.DateTimeField(auto_now_add=True, help_text="Fecha de creación del registro")
updated_at = models.DateTimeField(auto_now=True, help_text="Fecha de última actualización del registro")
class Meta:
verbose_name = 'Credencial Importador'
verbose_name_plural = 'Credenciales Importadores'
db_table = 'credenciales_importadores'
def __str__(self):
return self.organizacion.nombre + ' - ' + str(self.vucem.usuario)