from django.db import models
import datetime
from django.utils import timezone
import time

class Experiments(models.Model):

    id = models.AutoField(primary_key=True)
    operador = models.CharField(max_length=50)
    experimento = models.CharField(max_length=50)
    alturaInicial = models.IntegerField(default=0)
    alturaMaxima = models.IntegerField(default=0)
    duracion = models.DurationField()
    duracionMaxima = models.DurationField(default=datetime.timedelta(seconds=0))
    umbralInicial = models.IntegerField(default=500)
    temperatura = models.FloatField(default=10.0)
    comentarios = models.CharField(max_length=100,default='')
    fecha = models.DateTimeField(auto_now=True)
    turbidez = models.FloatField(default=0)

class Measurements(models.Model):

    id = models.AutoField(primary_key=True)
    time = models.FloatField()
    height = models.FloatField()
    sensor1 = models.FloatField(null=True)
    sensor2 = models.FloatField(null=True)
    sensor3 = models.FloatField(null=True)
    experiment = models.ForeignKey(Experiments,on_delete=models.CASCADE)

class Experimentos_Colbun(models.Model):

    id = models.AutoField(primary_key=True)
    fecha = models.DateTimeField(default=timezone.now)
    duracion = models.DurationField()

class Mediciones(models.Model):

    id = models.AutoField(primary_key=True)
    altura = models.FloatField(default=0)
    tiempo = models.FloatField(default=0)
    v_lectura = models.FloatField(default=0)
    experimento = models.ForeignKey(Experimentos_Colbun,on_delete=models.CASCADE)

class Alertas(models.Model):
    
    id = models.AutoField(primary_key=True)
    fecha = models.DateTimeField(default=timezone.now)
    descripcion = models.CharField(max_length=100,default='')

class Calibraciones(models.Model):

    id = models.AutoField(primary_key=True)
    fecha = models.DateTimeField(default=timezone.now)
    genko = models.CharField(max_length=25,null=False)
    
    class Meta:
        managed = False
        
class Calibracion_Mediciones(models.Model):

    id = models.AutoField(primary_key=True)
    altura = models.FloatField(default=0)
    tiempo = models.IntegerField(default=int(time.time()))
    v_lectura = models.FloatField(default=0)
    experimento = models.ForeignKey(Calibraciones,on_delete=models.CASCADE)

    class Meta:
        managed = False

class Calibracion_Metadata(models.Model):
    id = models.AutoField(primary_key=True)
    metadatos = models.TextField(null=True,default=None)
    genko = models.CharField(max_length=25,null=False)

    class Meta:
        managed = False

class Experimentos_Colbun_externa(models.Model):

    id = models.AutoField(primary_key=True)
    fecha = models.DateTimeField(default=timezone.now)
    duracion = models.DurationField()
    genko = models.CharField(default="",max_length=20)

    class Meta:
        managed = False
        db_table = "Experimentos"

class Mediciones_externa(models.Model):

    id = models.AutoField(primary_key=True)
    altura = models.FloatField(default=0)
    tiempo = models.FloatField(default=0)
    v_lectura = models.FloatField(default=0)
    experimento = models.ForeignKey(Experimentos_Colbun_externa,on_delete=models.CASCADE)

    class Meta:
        managed = False
        db_table = "Mediciones"
        
class Metadatos(models.Model):
    id = models.AutoField(primary_key=True)
    metadatos = models.TextField(null=True,default=None)
    genko = models.CharField(max_length=25,null=False)

    class Meta:
        managed = False
