from django.db import models

from django.db import models
import os

def get_image_path(instance, filename):
    return os.path.join('escudos', str(instance.id), filename)

class Equipo(models.Model):
    nombre = models.CharField(max_length=200)
    escudo = models.ImageField(upload_to='escudos', blank=True, null=True)
    
    def __unicode__(self):
        nombre = 'None'
        escudo = 'None'
        if self.escudo is not None: escudo = ""
        if self.nombre is not None: nombre = self.nombre
        return nombre
    
    class Meta:
        ordering = ['nombre']

class Partido(models.Model):
    fecha = models.DateField(blank=False,null=False)
    liga = models.IntegerField(blank=False, null=False, default=1)
    temporada = models.IntegerField(blank=False, null=False, default=0)
    jornada = models.IntegerField(blank=False, null=False)
    jugado = models.BooleanField(default=False)
    local = models.ForeignKey('futstats.Equipo', blank=False, null=False, related_name='partido_local')
    visitante = models.ForeignKey('futstats.Equipo', blank=False, null=False, related_name='partido_visitante')
    goles_local = models.IntegerField(default=0)
    goles_visitante = models.IntegerField(default=0)
    tarjetas_amarillas_local = models.IntegerField(default=0)
    tarjetas_amarillas_visitante = models.IntegerField(default=0)
    tarjetas_rojas_local = models.IntegerField(default=0)
    tarjetas_rojas_visitante = models.IntegerField(default=0)
    faltas_recibidas_local = models.IntegerField(default=0)
    faltas_recibidas_visitante = models.IntegerField(default=0)
    faltas_cometidas_local = models.IntegerField(default=0)
    faltas_cometidas_visitante = models.IntegerField(default=0)
    balones_perdidos_local = models.IntegerField(default=0)
    balones_perdidos_visitante = models.IntegerField(default=0)
    balones_recuperados_local = models.IntegerField(default=0)
    balones_recuperados_visitante = models.IntegerField(default=0)
    fuera_juego_local = models.IntegerField(default=0)
    fuera_juego_visitante = models.IntegerField(default=0)
    penalties_local = models.IntegerField(default=0)
    penalties_visitante = models.IntegerField(default=0)
    intervenciones_portero_local = models.IntegerField(default=0)
    intervenciones_portero_visitante = models.IntegerField(default=0)
    posesion_local = models.IntegerField(default=0)
    posesion_visitante = models.IntegerField(default=0)
    remates_local = models.IntegerField(default=0)
    remates_visitante = models.IntegerField(default=0)
    ganador = models.CharField(max_length=1, default="X")

    def __unicode__(self):
        return self.local.nombre+' vs '+self.visitante.nombre+' | Resultado: '+str(self.goles_local)+'-'+str(self.goles_visitante)+' | Quiniela:'+str(self.ganador)
 
class Stats(models.Model):
    temporada = models.IntegerField(blank=False, null=False, default=0)
    jornada = models.IntegerField(blank=False, null=False)
    liga = models.IntegerField(blank=False, null=False, default=1)
    equipo = models.ForeignKey('futstats.Equipo', blank=False, null=False, related_name='jornada_equipo')
    ganados = models.IntegerField(default=0)
    perdidos = models.IntegerField(default=0)
    empatados = models.IntegerField(default=0)
    goles_favor = models.IntegerField(default=0)
    goles_contra = models.IntegerField(default=0)
    goles = models.FloatField(default=0.0)
    tarjetas_amarillas = models.FloatField(default=0.0)
    tarjetas_rojas = models.FloatField(default=0.0)
    faltas_recibidas = models.FloatField(default=0.0)
    faltas_cometidas = models.FloatField(default=0.0)
    balones_perdidos = models.FloatField(default=0.0)
    balones_recuperados = models.FloatField(default=0.0)
    fuera_juego = models.FloatField(default=0.0)
    penalties = models.FloatField(default=0.0)
    intervenciones_portero = models.FloatField(default=0.0)
    posesion = models.FloatField(default=0.0)
    remates = models.FloatField(default=0.0)
    puntos = models.IntegerField(default=0)

    def __unicode__(self):
        return "Temporada:"+str(self.temporada)+' | Jornada: '+str(self.jornada)+'|'+str(self.equipo.nombre)+' | Puntos:'+str(self.puntos)

class Pronostico(models.Model):
    partido = models.ForeignKey('futstats.Partido', related_name='pronostico_partido', blank=True, null=True, on_delete=models.SET_NULL) 
    ganador = models.CharField(max_length=200)
    prob = models.FloatField(default=0.0)
    def __unicode__(self):
        return "Partido:"+str(self.partido)+' | Pronostico: '+str(self.ganador)
