38545-vm/core/models.py
2026-02-18 03:04:30 +00:00

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}"