from django.db import models
from django.utils.timezone import now
from django.contrib.auth.models import User
from phonenumber_field.modelfields import PhoneNumberField

@classmethod
def model_field_exists(cls, field):
    try:
        cls._meta.get_field(field)
        return True
    except:
            return False

models.Model.field_exists = model_field_exists

class Client(models.Model):
    fecha_de_creacion = models.DateTimeField(default=now)
    nombre = models.CharField(max_length=128,blank=False,null=False)
    razon_social = models.CharField(max_length=512,blank=False,null=False)
    rfc = models.CharField(max_length=13,blank=False,null=False)
    direccion = models.CharField(max_length=512,blank=False,null=False)
    cp = models.CharField(max_length=512,blank=False,null=False)
    contacto = models.CharField(max_length=512,blank=False,null=False)
    telefono = PhoneNumberField(null=True,blank=True)
    logo = models.ImageField(upload_to="logos/",blank=True,null=True)
    admins = models.ManyToManyField(User)
    activo = models.BooleanField(default=True)

    def __str__(self):
        return self.nombre

    class Meta:
        ordering = ['nombre']
        verbose_name_plural = "Clientes"