sessions, or something

This commit is contained in:
2025-08-09 16:28:49 +02:00
parent 4c70a3f72d
commit 21d5f56a39
30 changed files with 683 additions and 38 deletions
+33
View File
@@ -0,0 +1,33 @@
from django.db import models
from django.contrib.auth.models import User
import uuid
import random
from datetime import datetime
class Session(models.Model):
def __str__(self):
return f"Session {self.session_id} - Host: {self.host.username}"
@property
def is_open(self):
return datetime.now() < self.opens
opens = models.DateTimeField(null=True, default=None)
session_id = models.UUIDField(default=uuid.uuid4, editable=False)
host = models.ForeignKey(User, on_delete=models.CASCADE)
players_wanted = models.ManyToManyField(User, related_name='players_wanted')
players_connected= models.ManyToManyField(User, related_name='players_joined', blank=True)
seed = models.IntegerField(default=random.randint(1, 1000000))
status = models.CharField(
max_length=30,
choices=[
('lobby', 'Lobby'),
('voting', 'Voting'),
('waiting_for_next_track', 'Waiting for Next Track'),
('paused', 'Paused'),
('voting_done', 'Voting Done'),
],
default='lobby'
)
current_track = models.ForeignKey('Track', on_delete=models.SET_NULL, null=True, blank=True)
voting_open = models.BooleanField(default=False)