1
0

Extended the Models

Mildly concerned about things coming back to bite.

Signed-off-by: Pratyush Desai <pratyush.desai@liberta.casa>
This commit is contained in:
Pratyush Desai 2024-12-20 15:09:47 +05:30
parent 1c097640a7
commit 3c2fe30f41
Signed by untrusted user: pratyush
GPG Key ID: DBA5BB7505946FAD
4 changed files with 194 additions and 27 deletions

View File

@ -1,3 +1,11 @@
from django.contrib import admin
# Register your models here.
from .models import Game, Player, Mod, Server
admin.site.register(Game)
admin.site.register(Server)
admin.site.register(Player)
admin.site.register(Mod)

View File

@ -0,0 +1,134 @@
# Generated by Django 5.1.4 on 2024-12-20 09:39
import django.db.models.deletion
import django.utils.timezone
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("gameserver", "0002_remove_game_command_line_remove_mod_command_line"),
]
operations = [
migrations.AddField(
model_name="game",
name="command_line",
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AddField(
model_name="mod",
name="command_line",
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AddField(
model_name="server",
name="current_players",
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name="server",
name="is_private",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="server",
name="is_started",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="server",
name="last_collection_utc",
field=models.DateTimeField(blank=True, null=True),
),
migrations.AddField(
model_name="server",
name="last_heartbeat_utc",
field=models.DateTimeField(blank=True, null=True),
),
migrations.AddField(
model_name="server",
name="maximum_players",
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name="server",
name="process_id",
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name="server",
name="spawned_at_utc",
field=models.DateTimeField(
auto_now_add=True, default=django.utils.timezone.now
),
preserve_default=False,
),
migrations.AlterField(
model_name="player",
name="score",
field=models.IntegerField(default=0),
),
migrations.AlterField(
model_name="server",
name="port",
field=models.IntegerField(default=69),
),
migrations.CreateModel(
name="SpawnedServerInfo",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("process_id", models.IntegerField()),
("port", models.IntegerField()),
(
"mod",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="gameserver.mod"
),
),
],
),
migrations.CreateModel(
name="State",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("created_at_utc", models.DateTimeField(auto_now_add=True)),
("playtime", models.DurationField(default="00:00:00")),
("servers", models.ManyToManyField(to="gameserver.server")),
],
),
migrations.CreateModel(
name="StateResponse",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("man_minutes_played", models.IntegerField()),
("running_since_utc", models.DateTimeField()),
("servers", models.ManyToManyField(to="gameserver.server")),
],
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 5.1.4 on 2024-12-20 10:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("gameserver", "0003_game_command_line_mod_command_line_and_more"),
]
operations = [
migrations.AddField(
model_name="game",
name="description",
field=models.TextField(blank=True, null=True),
),
migrations.AddField(
model_name="server",
name="container_id",
field=models.CharField(blank=True, max_length=255, null=True),
),
]

View File

@ -4,7 +4,8 @@ from django.db import models
class Game(models.Model):
name = models.CharField(max_length=255)
friendly_name = models.CharField(max_length=255)
# command_line = models.CharField(max_length=255)
command_line = models.CharField(max_length=255, null=True, blank=True)
description = models.TextField(null=True, blank=True)
def __str__(self):
return self.friendly_name
@ -16,40 +17,41 @@ class Server(models.Model):
game_type = models.CharField(max_length=255)
mod = models.ForeignKey('Mod', on_delete=models.CASCADE)
players = models.ManyToManyField('Player')
# spawned_at_utc = models.DateTimeField(auto_now_add=True)
# last_collection_utc = models.DateTimeField(null=True, blank=True)
# last_heartbeat_utc = models.DateTimeField()
# process_id = models.IntegerField()
# port = models.IntegerField()
# is_started = models.BooleanField()
# is_private = models.BooleanField()
# current_players = models.IntegerField()
# maximum_players = models.IntegerField()
spawned_at_utc = models.DateTimeField(auto_now_add=True)
last_collection_utc = models.DateTimeField(null=True, blank=True)
last_heartbeat_utc = models.DateTimeField(null=True, blank=True)
process_id = models.IntegerField(null=True)
port = models.IntegerField(default=69)
is_started = models.BooleanField(default=False)
is_private = models.BooleanField(default=False)
current_players = models.IntegerField(default=0)
maximum_players = models.IntegerField(default=0)
container_id = models.CharField(max_length=255, null=True, blank=True)
class Player(models.Model):
name = models.CharField(max_length=255)
score = models.IntegerField()
score = models.IntegerField(default=0)
class Mod(models.Model):
name = models.CharField(max_length=255)
friendly_name = models.CharField(max_length=255)
# command_line = models.CharField(max_length=255)
command_line = models.CharField(max_length=255, null=True, blank=True)
# class SpawnedServerInfo(models.Model):
# process_id = models.IntegerField()
# port = models.IntegerField()
# mod = models.ForeignKey('Mod', on_delete=models.CASCADE)
class SpawnedServerInfo(models.Model):
process_id = models.IntegerField()
port = models.IntegerField()
mod = models.ForeignKey('Mod', on_delete=models.CASCADE)
# class StateResponse(models.Model):
# servers = models.ManyToManyField('Server')
# man_minutes_played = models.IntegerField()
# running_since_utc = models.DateTimeField()
class StateResponse(models.Model):
servers = models.ManyToManyField('Server')
man_minutes_played = models.IntegerField()
running_since_utc = models.DateTimeField()
# class State(models.Model):
# servers = models.ManyToManyField('Server')
# created_at_utc = models.DateTimeField(auto_now_add=True)
# playtime = models.DurationField(default='00:00:00')
class State(models.Model):
servers = models.ManyToManyField('Server')
created_at_utc = models.DateTimeField(auto_now_add=True)
playtime = models.DurationField(default='00:00:00')
# def increase_playtime(self, time_to_add):
# self.playtime += time_to_add
def increase_playtime(self, time_to_add):
self.playtime += time_to_add