Saltar a contenido

Modelos de Inventario

Modelos relacionados con el catálogo de propiedades.

Casa

Representa una vivienda en el inventario.

class Casa(models.Model):
    # Identificación
    clave = models.CharField(max_length=50, unique=True)
    proyecto = models.CharField(max_length=100)
    tipo_vivienda = models.CharField(max_length=50)
    modelo = models.CharField(max_length=50, blank=True)

    # Ubicación
    plaza = models.CharField(max_length=50)
    direccion = models.TextField()
    colonia = models.CharField(max_length=100)
    cp = models.CharField(max_length=10)
    latitude = models.DecimalField(max_digits=9, decimal_places=6, null=True)
    longitude = models.DecimalField(max_digits=9, decimal_places=6, null=True)

    # Características
    recamaras = models.IntegerField()
    banos = models.DecimalField(max_digits=3, decimal_places=1)
    superficie_terreno = models.DecimalField(max_digits=10, decimal_places=2)
    superficie_construccion = models.DecimalField(max_digits=10, decimal_places=2)

    # Precios
    precio_venta = models.DecimalField(max_digits=12, decimal_places=2)
    precio_contado = models.DecimalField(max_digits=12, decimal_places=2)
    enganche = models.DecimalField(max_digits=12, decimal_places=2)

    # Estado
    estatus = models.CharField(max_length=50)
    disponible = models.BooleanField(default=True)

    # Auditoría
    usuario_creacion = models.ForeignKey(User, on_delete=models.PROTECT)
    fecha_creacion = models.DateTimeField(auto_now_add=True)
    fecha_modificacion = models.DateTimeField(auto_now=True)

    class Meta:
        db_table = 'inventario_casa'
        ordering = ['-fecha_creacion']
        indexes = [
            models.Index(fields=['plaza', 'disponible']),
            models.Index(fields=['clave']),
        ]

PreInventario

Propiedades en proceso de ingreso al inventario.

class PreInventario(models.Model):
    clave = models.CharField(max_length=50)
    proyecto = models.CharField(max_length=100)
    estatus = models.CharField(max_length=50)
    fecha_ingreso = models.DateField()
    observaciones = models.TextField(blank=True)

VisitaRecuperacion

Registro de visitas para recuperación de propiedades.

class VisitaRecuperacion(models.Model):
    casa = models.ForeignKey(Casa, on_delete=models.CASCADE)
    fecha_visita = models.DateField()
    tipo_visita = models.CharField(max_length=50)
    observaciones = models.TextField()
    responsable = models.ForeignKey(User, on_delete=models.PROTECT)

AnexoCasa

Archivos adjuntos de casas.

class AnexoCasa(AnexoBase):
    casa = models.ForeignKey(Casa, on_delete=models.CASCADE,
                            related_name='anexos')

Ver: Módulo Inventario