from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
from apps.lotes.models import Semeadura

# Create your models here.
class Estufa(models.Model):
    semeadura = models.ForeignKey(
        Semeadura, on_delete=models.CASCADE, null=True, related_name='estufas')
    data_estufa = models.DateField(null=True, blank=True)
    quantidade_mortalidade = models.DecimalField(
        max_digits=10, decimal_places=3)
    # Alterado para BooleanField com valor padrão de False
    finalizado = models.BooleanField(default=False)
    registrado_por = models.ForeignKey(
        User, on_delete=models.SET_NULL, null=True, blank=True, related_name='estufas_registradas'
    )
    objects = models.Manager()

    def get_numero_lote(self):
        return self.semeadura.lote.numero_lote if self.semeadura and self.semeadura.lote else "N/A"

    get_numero_lote.short_description = "Número do Lote"

    class Meta:
        verbose_name = "Mortalidade"
        verbose_name_plural = "Mortalidades"

    def __str__(self):
        return f"{self.semeadura} - {self.data_estufa}"


class Selecao(models.Model):
    semeadura = models.ForeignKey(
        Semeadura, on_delete=models.CASCADE, null=True, related_name='selecao')
    data_selecao = models.DateField(null=True, blank=True)
    quantidade_selecao = models.DecimalField(
        max_digits=10, decimal_places=3)
    venda = models.BooleanField(default=False)
    registrado_por = models.ForeignKey(
        User, on_delete=models.SET_NULL, null=True, blank=True, related_name='selecoes_registradas'
    )
    
    objects = models.Manager()

    def get_numero_lote(self):
        return self.semeadura.lote.numero_lote if self.semeadura and self.semeadura.lote else "N/A"

    get_numero_lote.short_description = "Número do Lote"

    class Meta:
        verbose_name = "Seleção"
        verbose_name_plural = "Seleções"

    def __str__(self):
        return f"{self.semeadura} - {self.data_selecao}"



class LogFinalizacaoEstufa(models.Model):
    semeadura = models.ForeignKey(Semeadura, on_delete=models.CASCADE, null=True)
    numero_lote = models.CharField(max_length=50, null=True, blank=True)
    data_lote = models.DateField(null=True, blank=True)
    data_exclusao = models.DateField(default=timezone.now)
    hora_exclusao = models.TimeField(default=timezone.now)
    usuario_exclusao = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
    nome_usuario_exclusao = models.CharField(max_length=255, null=True, blank=True)
    motivo_exclusao = models.CharField(max_length=255, null=True, blank=True)
    motivo_exclusao_outros = models.TextField(null=True, blank=True)
    objects = models.Manager()

    class Meta:
        verbose_name = "Log de Finalização"
        verbose_name_plural = "Log de Finalização"

    def __str__(self):
        return f"{self.semeadura} - {self.data_estufa}"