49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
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}"
|