Files
DroneWars/game/models.py
Matteo Rosati 9587995354 simplify apps
2026-02-11 21:05:49 +01:00

41 lines
1.1 KiB
Python

from django.conf import settings
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
class Building(models.Model):
geojson_id = models.IntegerField()
health = models.FloatField()
class PlayerInfo(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name="player_info",
)
energy = models.PositiveIntegerField()
class UserProfile(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name="profile",
)
display_name = models.CharField(max_length=150, unique=True)
def __str__(self):
return f"{self.display_name} ({self.user.username})" # type: ignore[attr-defined]
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_profile_for_user(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(
user=instance,
display_name=instance.username,
)
PlayerInfo.objects.create(user=instance, energy=10_000)