bloonsworld/app/users/models.py

33 lines
1.3 KiB
Python

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from bloonsa_game.models import Level
class Player(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
# Savedata
bloonsa_levelsPlayed = models.ManyToManyField(Level, blank=True, related_name="levelsPlayed")
bloonsa_levelsBeaten = models.ManyToManyField(Level, blank=True, related_name="levelsBeaten")
# Logging
creationIP = models.GenericIPAddressField()
latestIP = models.GenericIPAddressField()
creationDate = models.DateTimeField(default=timezone.now)
latestActivity = models.DateTimeField(default=timezone.now)
suspectedCheater = models.BooleanField(default=False)
# States
suspended = models.BooleanField(default=False)
banned = models.BooleanField(default=False)
admin = models.BooleanField(default=False)
def __str__(self):
return f"{self.user} - {self.latestIP}"
class Bloonsa_LevelRating(models.Model):
level = models.ForeignKey(Level, on_delete=models.CASCADE)
player = models.ForeignKey(Player, on_delete=models.CASCADE)
rating = models.SmallIntegerField()
def __str__(self):
return f"{self.player.user} <{self.rating}> {self.level}"