32 lines
1.1 KiB
Python

from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils import timezone
import datetime
class CustomUser(AbstractUser):
birth_date = models.DateField(null=True, blank=True)
player_number = models.IntegerField(default=999)
@property
def age(self):
if not self.birth_date:
return None
today = datetime.date.today()
return today.year - self.birth_date.year - ((today.month, today.day) < (self.birth_date.month, self.birth_date.day))
class InvitationCode(models.Model):
code = models.CharField(max_length=255, unique=True)
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
def is_valid(self):
if not self.is_active:
return False
two_weeks_ago = timezone.now() - datetime.timedelta(weeks=2)
if self.created_at < two_weeks_ago:
return False
return True
def __str__(self):
return self.code