Divide home/models.py en el paquete home/models/ por secciones
El módulo (~310 líneas, 30 modelos) se convierte en un paquete cuyo __init__.py re-exporta todos los modelos, de modo que `from home.models import X`, el admin y el resto de consumidores siguen funcionando igual. Módulos por sección: pricing (precios/costes de servicios + GuildRenameSettings), store (Category, Item, StripeLog, Pedido), site (contenido/config del sitio), recruit, accounts (activación, token de seguridad, LoginAttempt), voting (VoteSite, VoteLog, HomeApiPoints) e history. Las claves foráneas por clase directa quedan en el mismo módulo; cada submódulo importa solo lo que usa. Se eliminan imports de cabecera muertos (ValidationError, uuid, secrets) y las líneas de import duplicadas del original. Migración-neutral: `makemigrations home --dry-run` -> "No changes detected" (app_label=home y nombres/tablas de modelo intactos). Definición de cada modelo idéntica (extracción por AST). `manage.py check` sin incidencias. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
class VoteSite(models.Model):
|
||||
name = models.CharField(max_length=100, unique=True)
|
||||
url = models.URLField(max_length=200, help_text="URL del sitio de votación")
|
||||
image_url = models.URLField(max_length=300, help_text="URL completa de la imagen")
|
||||
points = models.IntegerField(default=1, help_text="Puntos otorgados por votar")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class VoteLog(models.Model):
|
||||
account_id = models.IntegerField()
|
||||
vote_site = models.ForeignKey('VoteSite', on_delete=models.CASCADE)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
last_vote_time = models.DateTimeField(null=True, blank=True)
|
||||
processed = models.BooleanField(default=False)
|
||||
processed_at = models.DateTimeField(null=True, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f"Voto para {self.vote_site.name} por cuenta {self.account_id}"
|
||||
|
||||
class HomeApiPoints(models.Model):
|
||||
accountID = models.IntegerField(unique=True)
|
||||
vp = models.IntegerField(default=0)
|
||||
dp = models.IntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
db_table = 'home_api_points'
|
||||
|
||||
def __str__(self):
|
||||
return f"Cuenta {self.accountID} - PV: {self.vp}, DP: {self.dp}"
|
||||
Reference in New Issue
Block a user