import datetime

from django.contrib.auth.models import User
from django.db import models

# Create your models here.
class Extenos(models.Model):
    enlace=models.URLField()
    titulo=models.CharField(max_length=120)
    externo=models.BooleanField(default=False)

    def __str__(self):
        return self.titulo

class Banco(models.Model):
    nombre=models.CharField(max_length=60)

    def __str__(self):
        return self.nombre

class Placas(models.Model):
    numero=models.CharField(max_length=7, unique=True)
    fecha_entrega=models.DateField(null=True,blank=True)
    edicion = models.DateTimeField(auto_now=True, null=True)
    cedula=models.CharField(max_length=13,null=True,blank=True)
    nombres=models.CharField(max_length=60,null=True,blank=True)
    apellidos=models.CharField(max_length=60,null=True,blank=True)
    estado=models.BooleanField(default=False,null=True,blank=True)
    fecha_ingreso=models.DateField(null=True,blank=True)
    usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
    duplicado=models.BooleanField(default=False)

    cedula_propietario=models.CharField(max_length=13,null=True,blank=True)
    nombres_propietario = models.CharField(max_length=60, null=True, blank=True)
    apellidos_propietario = models.CharField(max_length=60, null=True, blank=True)
    numero_tramite = models.IntegerField(default=0)
    primera_vez=models.BooleanField(default=False)
    numero_pago=models.CharField(default=0, max_length=30)
    banco=models.ForeignKey(Banco,null=True,blank=True, on_delete=models.CASCADE)
    fecha_pago=models.DateField(null=True,blank=True)
    valor_pago=models.DecimalField(max_digits=9,decimal_places=2, default=0)

    def __str__(self):
        return "%s - %s %s "%(self.numero,self.nombres, self.apellidos)

    def save(
        self, force_insert=False, force_update=False, using=None, update_fields=None
    ):
        if int(self.numero_pago) >0:
            self.primera_vez=True
        self.numero=str.upper(self.numero)
        super(Placas,self).save()

class DuplicadoPlacas(models.Model):
    placa=models.ForeignKey(Placas,on_delete=models.CASCADE)
    fecha_entrega=models.DateField(null=True,blank=True)
    cedula=models.CharField(max_length=13,null=True,blank=True)
    nombres=models.CharField(max_length=60,null=True,blank=True)
    apellidos=models.CharField(max_length=60,null=True,blank=True)
    estado=models.BooleanField(default=False,null=True,blank=True)
    fecha_ingreso=models.DateField(null=True,blank=True)
    usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
    eliminado=models.BooleanField(default=False)

    def __str__(self):
        return "%s - %s %s "%(self.placa.numero,self.nombres, self.apellidos)



class PlacaProvisional(models.Model):
    fecha_solicitud=models.DateField(null=True,blank=True)
    numero=models.CharField(max_length=10,null=True,blank=True)
    provincia=models.CharField(max_length=30, default="EL ORO")
    agencia = models.CharField(max_length=30, default="GADM EL GUABO")
    propietario=models.CharField(max_length=60,null=True,blank=True)
    fecha_emision=models.DateField(null=True,blank=True)
    fecha_caducidad=models.DateField(null=True,blank=True)
    tipo_servicio=models.CharField(max_length=30,null=True,blank=True)
    tipo=models.CharField(max_length=10,null=True,blank=True)
    usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)


    def save(
        self, force_insert=False, force_update=False, using=None, update_fields=None
    ):
        self.numero = str.upper(self.numero)
        super(PlacaProvisional,self).save()



