from django.db import models
from datetime import datetime
from apps.especies.models import Especies
from apps.clientes.models import ClientesModels, EmpresasModels
from django.contrib.auth.models import User
from django.utils import timezone

# Tabela de Cadastro de Lote


class CadastroLote(models.Model):
    especie = models.ForeignKey(Especies, on_delete=models.CASCADE, null=True)
    numero_lote = models.CharField(max_length=50, blank=True)
    camera_fria = models.CharField(max_length=100, blank=True)
    nf_fiscal = models.CharField(max_length=100, blank=True)
    data_lote = models.DateField(null=True, blank=True)
    fornecedor = models.CharField(max_length=100, blank=False)
    ano = models.IntegerField(
        max_length=100, blank=False, null=True)  # Adicione este campo
    qtd_sementes_minimo = models.DecimalField(max_digits=10, decimal_places=3)
    qtd_sementes_maximo = models.DecimalField(max_digits=10, decimal_places=3)
    entrada_sementes_kg = models.DecimalField(max_digits=10, decimal_places=3)
    estimativa_minima = models.DecimalField(
        max_digits=10, decimal_places=3, null=True, blank=True)
    estimativa_maxima = models.DecimalField(
        max_digits=10, decimal_places=3, null=True, blank=True)
    estimativa_media = models.DecimalField(
        max_digits=10, decimal_places=3, null=True, blank=True)
    ano = models.IntegerField(null=True, blank=True)  # Adicione esta linha
    quebra_dormencia = models.CharField(max_length=100, blank=True)
    registrado_por = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)  # Novo campo
    objects = models.Manager()

    def __str__(self):
        return f"{self.numero_lote}"

class Semeadura(models.Model):
    lote = models.ForeignKey(CadastroLote, on_delete=models.CASCADE, null=True)
    cliente = models.ForeignKey(ClientesModels, on_delete=models.SET_NULL, null=True, blank=True)
    empresa = models.ForeignKey(EmpresasModels, on_delete=models.SET_NULL, null=True, blank=True)
    numero_muda = models.CharField(max_length=50, blank=True)
    data_semeia = models.DateField(null=True, blank=True)
    metodo_semeadura = models.CharField(max_length=100, blank=False)
    local_semeadura = models.CharField(max_length=100, blank=False)
    abertura = models.CharField(max_length=100, blank=False)
    qtd_sementes_utilizada = models.DecimalField(
        max_digits=10, decimal_places=3)
    sobra_sementes = models.DecimalField(max_digits=10, decimal_places=3)
    nova_media = models.DecimalField(
        max_digits=10, decimal_places=3, null=True, blank=True)
    registrado_por = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)

    objects = models.Manager()

    def __str__(self):
        return f"{self.qtd_sementes_utilizada} Kg"

    def save(self, *args, **kwargs):
        # Substitua a vírgula por ponto na string
        self.qtd_sementes_utilizada = str(
            self.qtd_sementes_utilizada).replace(',', '.')
        super().save(*args, **kwargs)
    

class LogExclusaoLote(models.Model):
    lote_id = models.IntegerField(default=0)
    numero_lote = models.CharField(max_length=50, null=True, blank=True)
    data_lote = models.DateField(null=True, blank=True)
    fornecedor = models.CharField(max_length=100, 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()
    