# apps/procesos/models.py
from django.db import models
from sesiones.models import SesionOperario
from usuarios.models import Usuario

class ConsumoReal(models.Model):
    pk_consumo = models.AutoField(primary_key=True)
    fk_sesion = models.ForeignKey(SesionOperario, on_delete=models.CASCADE, related_name="consumos")
    att_codigo_material = models.CharField(max_length=50)
    msr_cantidad_real = models.DecimalField(max_digits=10, decimal_places=2)
    att_unidad = models.CharField(max_length=10)
    att_timestamp = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f"{self.att_codigo_material} ({self.msr_cantidad_real} {self.att_unidad})"


class ControlCalidadPeso(models.Model):
    pk_qc = models.AutoField(primary_key=True)
    fk_sesion = models.ForeignKey(SesionOperario, on_delete=models.CASCADE, related_name="controles_calidad")
    msr_peso_medido = models.DecimalField(max_digits=10, decimal_places=3)
    att_resultado = models.CharField(max_length=50)
    fk_usuario_qc = models.ForeignKey(Usuario, on_delete=models.SET_NULL, null=True)
    att_timestamp = models.DateTimeField(auto_now_add=True)
    att_observacion = models.TextField(blank=True, null=True)


class PausaProduccion(models.Model):
    pk_pausa = models.AutoField(primary_key=True)
    fk_sesion = models.ForeignKey(SesionOperario, on_delete=models.CASCADE, related_name="pausas")
    att_tipo_pausa = models.CharField(max_length=100)
    att_motivo = models.TextField(blank=True, null=True)
    att_hora_inicio = models.DateTimeField()
    att_hora_fin = models.DateTimeField(blank=True, null=True)
    fk_usuario_registro = models.ForeignKey(Usuario, on_delete=models.SET_NULL, null=True)


class HistoricoEvento(models.Model):
    pk_evento = models.AutoField(primary_key=True)
    fk_sesion = models.ForeignKey(SesionOperario, on_delete=models.CASCADE, related_name="eventos")
    att_tipo_evento = models.CharField(max_length=50)
    att_descripcion = models.TextField()
    att_timestamp = models.DateTimeField(auto_now_add=True)
    fk_usuario = models.ForeignKey(Usuario, on_delete=models.SET_NULL, null=True)
