Módulo: rest-models

En este módulo se encuentra definida la estructura de la base de datos en un modelo orientado a objetos utilizando el Django ORM original.

Autores

  • Version 1.0: Antonio Cipagauta, 05-38040 | Douglas Torres, 11-11027
  • Version 2.0: Lautaro Villalón, 12-10427 | Yarima Luciani, 13-10770

Clase Activo:

Guarda cada componente activo sin repeticiones.

class Activo(models.Model):
    componente = models.TextField(verbose_name=('Componente activo'),unique=True)

Clase Medicina:

Guarda cada medicina asociada a un componente activo.

class Medicina(models.Model):
    nombre = models.TextField(verbose_name=('Nombre de marca'))
    activo = models.ForeignKey(Activo, related_name='componente-activo+', null=True, on_delete=models.CASCADE)

Clase Presentacion:

Guarda la presentación y registro sanitario asociado a una medicina.

Versión 2.0: Tabla sin utilizar por ser innecesaria hasta los momentos. Guardar las presentaciones ocupa más espacio del permitido por las limitaciones gratuitas de Heroku. Definida igualmente para expansión futura.

class Presentacion(models.Model):
    presentacion = models.TextField(verbose_name=('Presentacion'))
    registro = models.TextField(verbose_name=('Registro sanitario'))
    medicina = models.ForeignKey(Medicina, related_name='formato',null=True, on_delete=models.CASCADE)

Clase Tweet:

Guarda cada tweet con su URL y tipo de clasificación (Oferta/Demanda), asociado a una medicina.

Versión 2.0: Guarda fecha de búsqueda de cada tweet para optimizar las búsquedas y calcular la expiración. Define una función que permite obtener el id de cada tweet a partir de su URL.

class Tweet(models.Model):
    link = models.TextField(verbose_name=('Link'),unique=True)
    clasificacion = models.TextField(verbose_name=('Clasificacion'))
    medicina = models.ForeignKey(Medicina, related_name='Medicina', null=True, on_delete=models.CASCADE)
    fecha = models.DateTimeField(auto_now_add=True, blank=True)

def getId(self):
    tweetId = self.link.split("/")[-1]
    return int(tweetId)