#encoding:utf-8
from django.db import models

class TimeStampModel(models.Model):

	fecha_creacion = models.DateTimeField(auto_now_add = True)
	fecha_actualizacion = models.DateTimeField(auto_now = True)

	class Meta:
		abstract = True


class Practica_algoritmo(TimeStampModel):
    nombre= models.CharField('Nombre', max_length=700,)

    algoritmo = models.CharField('Algoritmo', max_length=50,)

    condicion = models.IntegerField('Condicion')

    condicion_algoritmo = models.IntegerField('Condicion Algoritmo')

    def __unicode__(self):
        return self.nombre





class Ejercicio_algoritmo(TimeStampModel):

    practica_algoritmo=models.ForeignKey(Practica_algoritmo)

    n_generaciones= models.IntegerField('N° Generacions')

    n_individuos= models.IntegerField('N° Individuos')

    max_valor= models.IntegerField('Max Valor')

    min_valor= models.IntegerField('Min Valor')

    porcentaje_cruce= models.FloatField('% Cruce')

    porcentaje_mutacion = models.FloatField('% Mutacion')

    def __unicode__(self):
        return "%s - %s" %(self.practica_algoritmo.nombre, self.n_generaciones)




class Generacion_ejercicio(TimeStampModel):

    ejercicio_algoritmo=models.ForeignKey(Ejercicio_algoritmo)

    generacion= models.IntegerField('Generacion')

    individuo= models.CharField('Individuo', max_length=15,)

    val_individuo= models.IntegerField('Valor individuo')

    val_objetivo = models.FloatField('Val. Fun. Objetivo')



class Resultado_ejercicio(TimeStampModel):

    ejercicio_algoritmo=models.ForeignKey(Ejercicio_algoritmo)

    generacion= models.IntegerField('Generacion')

    val_objetivo = models.FloatField('Val. Fun. Objetivo')

    individuo= models.IntegerField('Individuo')



    def __unicode__(self):
        return self.nombre

    def __unicode__(self):
        return self.valor_x
