1
0

Add base models for testing

Attempt to figure out the necessary data models
and applicable fields.

Signed-off-by: Pratyush Desai <pratyush.desai@liberta.casa>
This commit is contained in:
Pratyush Desai 2024-12-20 14:47:10 +05:30
parent 480f7d0386
commit 1c097640a7
Signed by untrusted user: pratyush
GPG Key ID: DBA5BB7505946FAD
7 changed files with 182 additions and 6 deletions

View File

@ -0,0 +1,94 @@
# Generated by Django 5.1.4 on 2024-12-20 09:11
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="Game",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=255)),
("friendly_name", models.CharField(max_length=255)),
("command_line", models.CharField(max_length=255)),
],
),
migrations.CreateModel(
name="Mod",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=255)),
("friendly_name", models.CharField(max_length=255)),
("command_line", models.CharField(max_length=255)),
],
),
migrations.CreateModel(
name="Player",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=255)),
("score", models.IntegerField()),
],
),
migrations.CreateModel(
name="Server",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("port", models.IntegerField()),
("game_type", models.CharField(max_length=255)),
(
"game",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="gameserver.game",
),
),
(
"mod",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="gameserver.mod"
),
),
("players", models.ManyToManyField(to="gameserver.player")),
],
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 5.1.4 on 2024-12-20 09:30
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("gameserver", "0001_initial"),
]
operations = [
migrations.RemoveField(
model_name="game",
name="command_line",
),
migrations.RemoveField(
model_name="mod",
name="command_line",
),
]

View File

@ -1,8 +1,55 @@
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)
def __str__(self):
return self.friendly_name
class Server(models.Model):
pass
class Player(model.Model):
pass
class StatisticsResponse(models.Model):
pass
game = models.ForeignKey(Game, on_delete=models.CASCADE)
port = models.IntegerField()
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()
class Player(models.Model):
name = models.CharField(max_length=255)
score = models.IntegerField()
class Mod(models.Model):
name = models.CharField(max_length=255)
friendly_name = models.CharField(max_length=255)
# command_line = models.CharField(max_length=255)
# 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 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

8
gameserver/urls.py Normal file
View File

@ -0,0 +1,8 @@
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
]

View File

@ -1 +1,6 @@
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the GibCasa index.")

View File

@ -31,7 +31,7 @@ ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
"gameserver",
"gameserver.apps.GameserverConfig",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",

View File

@ -2,6 +2,7 @@ from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("gameserver/", include("gameserver.urls")),
path("admin/", admin.site.urls),
]