from django.db import models
from django.core.exceptions import ValidationError
from PIL import Image

#Validar tamanho da imagem, para nao quebrar layout
def validate_image_size(value):
    # Defina os tamanhos máximos desejados
    max_width = 500  # Largura máxima
    max_height = 500  # Altura máxima

    image = Image.open(value)
    width, height = image.size

    if width > max_width or height > max_height:
        raise ValidationError(f'A imagem deve ter no máximo {max_width}x{max_height} pixels.')
#Validar tamanho da imagem, para nao quebrar layout END

#Edição e adição dos itens na vitrine de mudas
class VitrineMudas(models.Model):
    class Meta:
        verbose_name = "Vitrine de Mudas"
        verbose_name_plural = "Vitrine de Mudas"

    nome = models.CharField(max_length=100, null=False, blank=False)
    nome_cientifico = models.CharField(max_length=100, null=False, blank=False)
    bioma = models.CharField(max_length=200, null=True, blank=False)
    germinacao = models.CharField(max_length=100, null=True, blank=False)
    desenvolvimento_viveiro = models.CharField(max_length=100, null=True, blank=False)
    n_sementes_kg = models.CharField(max_length=100, null=True, blank=False)
    semeadura = models.CharField(max_length=100, null=True, blank=False)
    imagem = models.ImageField(upload_to='Img_vitrine/', blank=True)
    publicar = models.BooleanField(default=False)
    def __str__(self):
        return "Informações da Vitrine"
    #Edição e adição dos itens na vitrine de mudas END

#Edição e adição do banner inicial da pagina Index
class BannerIndex(models.Model):
    class Meta:
        verbose_name = "Banner Inicial"
        verbose_name_plural = "Banner Inicial"

    nome = models.CharField(max_length=100, null=True, blank=False)
    banner_img = models.ImageField(upload_to='Img_vitrine/', blank=False)
    publicada = models.BooleanField(default=False)

    def __str__(self):
        return "Informações de Banner"
    #Edição e adição do banner inicial da pagina Index END

#Edição e adição da primeira seção de conteudo do index
class SustentabilidadeSection(models.Model):
    class Meta:
        verbose_name = "Primeira Seção Sustentabilidade"
        verbose_name_plural = "Primeira Seção Sustentabilidade"

    primeiro_titulo = models.CharField(max_length=100, null=True, blank=False)
    primeiro_titulo_cor = models.CharField(max_length=100, null=True, blank=False)
    primeiro_paragrafo = models.TextField(null=True, blank=False)
    primeira_imagem = models.ImageField(upload_to='sustentabilidade/', blank=False)

    segundo_titulo_cor = models.CharField(max_length=100, null=True, blank=False)
    segundo_paragrafo = models.TextField(null=True, blank=False)
    segunda_imagem = models.ImageField(upload_to='sustentabilidade/', blank=False)

    def __str__(self):
        return "Informações de Sustentabilidade"
    #Edição e adição da primeira seção de conteudo do index END


    
#Edição e adição da segunda seção do index "Carrousel"

class CarrouselSectionIndex(models.Model):
    class Meta:
        verbose_name = "Segunda Seção Carrousel"
        verbose_name_plural = "Segunda Seção Carrousel"

    carrousel_img_1 = models.ImageField(upload_to='carrousel/', blank=False)
    nome = models.CharField(max_length=100, null=True, blank=True,)
    nome_cientifico = models.CharField(max_length=100, null=True, blank=True,)
    def __str__(self):
        return "Informações de Carrousel"


#Edição e adição da terceira seção "Nossos Projetos"
class NossosProjetosSection(models.Model):
    class Meta:
        verbose_name = "Terceira Seção Projetos"
        verbose_name_plural = "Terceira Seção Projetos"

    primeiro_titulo = models.CharField(max_length=100, null=True, blank=False)
    primeiro_titulo_cor = models.CharField(max_length=100, null=True, blank=False)
    primeiro_paragrafo = models.TextField(null=True, blank=False)
    primeira_imagem = models.ImageField(upload_to='nossos_projetos/', blank=False)

    def __str__(self):
        return "Informações de Nossos Projetos"
    #Edição e adição da terceira seção "Nossos Projetos" END 

#Edição e adição da quarta area "Nossa Gente"
class NossaGenteSection(models.Model):
    class Meta:
        verbose_name = "Quarta Seção Nossa Gente"
        verbose_name_plural = "Quarta Seção Nossa Gente"

    primeiro_titulo = models.CharField(max_length=100, null=True, blank=False)
    primeiro_titulo_cor = models.CharField(max_length=100, null=True, blank=False)
    primeiro_paragrafo = models.TextField(null=True, blank=False)
    primeira_imagem = models.ImageField(upload_to='nossa_gente/', blank=False)

    segundo_paragrafo = models.TextField(null=True, blank=False)
    segunda_imagem = models.ImageField(upload_to='nossa_gente/', blank=False)

    def __str__(self):
        return "Informações de Equipe"
    #Edição e adição da quarta area "Nossa Gente" END

#Edição e adição da Pagina Proposta
class PropositosIndex(models.Model):
    class Meta:
        verbose_name = "Pagina Proposito"
        verbose_name_plural = "Pagina Proposito"

    titulo = models.CharField(max_length=20, null=False, blank=False)

    primeiro_titulo = models.CharField(max_length=100, null=True, blank=False)
    primeiro_titulo_cor = models.CharField(max_length=100, null=True, blank=False)
    primeiro_paragrafo = models.TextField(null=True, blank=False)
    primeira_imagem = models.ImageField(upload_to='proposito/', blank=False)

    segundo_titulo = models.CharField(max_length=100, null=True, blank=False)
    segundo_titulo_cor = models.CharField(max_length=100, null=True, blank=False)
    segundo_paragrafo = models.TextField(null=True, blank=False)
    segunda_imagem = models.ImageField(upload_to='proposito/', blank=False)

    terceiro_titulo = models.CharField(max_length=100, null=True, blank=False)
    terceiro_titulo_cor = models.CharField(max_length=100, null=True, blank=False)
    terceiro_paragrafo = models.TextField(null=True, blank=False)
    terceira_imagem = models.ImageField(upload_to='proposito/', blank=False)

    def __str__(self):
        return "Informações de Proposito"
    #Edição e adição da Pagina Proposta END

#Edição e adição da Pagina Historia
class HistoriaIndex(models.Model):
    class Meta:
        verbose_name = "Pagina Historia"
        verbose_name_plural = "Pagina Historia"

    titulo = models.CharField(max_length=100, null=False, blank=False)
    data = models.DateField(null=False, blank=False)
    texto = models.CharField(max_length=1000, null=False, blank=False)
    imagem = models.ImageField(upload_to='historia/',null=True, blank=False)

    def __str__(self):
        return "Informações de História"

#Edição e adição da Pagina Historia END

#Edição e adição da Pagina Contatos
class ContatosIndex(models.Model):
    class Meta:
        verbose_name = "Pagina Contatos"
        verbose_name_plural = "Pagina Contatos"

    endereco = models.CharField(max_length=150, null=False, blank=False)
    email = models.CharField(max_length=150, null=False, blank=False)
    telefone = models.CharField(max_length=150, null=False, blank=False)

    def __str__(self):
        return "Informações de Contato"

class Noticia(models.Model):
    titulo = models.CharField(max_length=200)
    conteudo = models.TextField()
    data_publicacao = models.DateTimeField(auto_now_add=True)
    imagem = models.ImageField(upload_to='noticia_imagens/', null=True, blank=True)

    def __str__(self):
        return self.titulo