from django.db import models import uuid class AdminAccess(models.Model): """Armazena a chave privada única para acesso ao painel.""" private_key = models.CharField(max_length=255, unique=True, default=uuid.uuid4) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f"Key created on {self.created_at}" class Lottery(models.Model): """Configurações específicas de cada tipo de loteria.""" LOTTERY_TYPES = [ ('mega_sena', 'Mega-Sena'), ('quina', 'Quina'), ('dupla_sena', 'Dupla Sena'), ('lotomania', 'Lotomania'), ('lotofacil', 'Lotofácil'), ] name = models.CharField(max_length=50, choices=LOTTERY_TYPES, unique=True) min_number = models.IntegerField(default=1) max_number = models.IntegerField() numbers_to_draw = models.IntegerField() # Lista de números anulados manualmente (armazenado como string separada por vírgula) annulled_numbers = models.TextField(default="", blank=True) # Novas configurações solicitadas analysis_window = models.IntegerField(default=0, help_text="0 para todos os sorteios") ai_predictions = models.TextField(default="", blank=True, help_text="Números quentes sugeridos pela IA") def __str__(self): return self.get_name_display() class DrawResult(models.Model): """Resultados reais dos sorteios da Caixa.""" lottery = models.ForeignKey(Lottery, on_delete=models.CASCADE, related_name='draws') draw_number = models.IntegerField() draw_date = models.DateField() numbers = models.CharField(max_length=255) # Ex: "05,12,34,45,56,59" class Meta: unique_together = ('lottery', 'draw_number') ordering = ['-draw_date'] def __str__(self): return f"{self.lottery.name} - Concurso {self.draw_number}"