from django.db import models
from django.contrib.auth import get_user_model

class Pedido(models.Model):
    DESTINO_CHOICES = [
        ('sindico', 'Síndico'),
        ('portaria', 'Portaria'),
        ('administracao', 'Administração'),
    ]

    STATUS_CHOICES = [
        ('aguardando', 'Aguardando resposta'),
        ('respondido', 'Respondido'),
        ('encerrado', 'Encerrado'),
    ]

    morador = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='pedidos')
    solicitacao = models.TextField()
    destino = models.CharField(max_length=20, choices=DESTINO_CHOICES)
    data_solicitacao = models.DateField()
    ticket = models.CharField(max_length=12, unique=True, blank=True)  # Gerado automaticamente
    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='aguardando')
    resposta = models.TextField(blank=True, null=True)
    criado_em = models.DateTimeField(auto_now_add=True)
    respondido_em = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return f"Ticket #{self.ticket} - {self.get_destino_display()}"

    def save(self, *args, **kwargs):
        if not self.ticket:
            from uuid import uuid4
            self.ticket = uuid4().hex[:8].upper()
        super().save(*args, **kwargs)
