diff --git a/tournaments/models.py b/tournaments/models.py index a70cf63..45597f0 100644 --- a/tournaments/models.py +++ b/tournaments/models.py @@ -19,10 +19,69 @@ class CustomUser(AbstractUser): def __str__(self): return self.username +class Event(models.Model): + club = models.ForeignKey(Club, on_delete=models.CASCADE) + class Tournament(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) - club = models.ForeignKey(Club, on_delete=models.CASCADE) + event = models.ForeignKey(Event, on_delete=models.CASCADE) name = models.CharField(max_length=200) + date = models.DateField(null=True, blank=True) + private = models.BooleanField() def __str__(self): return self.name + +class Round(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + index = models.IntegerField(null=True, blank=True) + tournament = models.ForeignKey(Club, on_delete=models.CASCADE) + # winner = models.ForeignKey('self', on_delete=models.CASCADE) + loser = models.ForeignKey('self', on_delete=models.CASCADE) + +class GroupStage(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + index = models.IntegerField(null=True, blank=True) + +class Match(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + round = models.ForeignKey(Round, on_delete=models.CASCADE) + index = models.IntegerField(null=True, blank=True) + format = models.IntegerField(null=True, blank=True) + group_stage = models.ForeignKey(GroupStage, on_delete=models.CASCADE) + court = models.IntegerField(null=True, blank=True) + start_date = models.DateField(null=True, blank=True) + end_date = models.DateField(null=True, blank=True) + +class TeamState(models.Model): + score_team = models.CharField(max_length=200) + walk_out = models.IntegerField(null=True, blank=True) #id, int of the walked_out team + lucky_loser = models.BooleanField() + serve = models.BooleanField() + match = models.ForeignKey(Match, on_delete=models.CASCADE) + has_won = models.BooleanField() + +class TeamRegistration(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + match = models.ForeignKey(Club, on_delete=models.CASCADE) + registration_date = models.DateField(null=True, blank=True) + call_date = models.DateField(null=True, blank=True) + initial_position = models.IntegerField(null=True, blank=True) + group_stage_position = models.IntegerField(null=True, blank=True) + group_stage = models.ForeignKey(GroupStage, on_delete=models.CASCADE) + logo = models.CharField(max_length=200, null=True, blank=True) + +# class Group(models.Model): +# id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) +# # player = models.ForeignKey(Club, on_delete=models.CASCADE) + +class PlayerRegistration(models.Model): + first_name = models.CharField(max_length=200) + last_name = models.CharField(max_length=200) + licence_id = models.CharField(max_length=200) + rank = models.IntegerField(null=True, blank=True) + has_paid = models.BooleanField() + + team = models.ForeignKey(TeamRegistration, on_delete=models.CASCADE) + teamState = models.ManyToManyField(TeamState) + # player = models.ForeignKey(Club, on_delete=models.CASCADE)