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:
parent
480f7d0386
commit
1c097640a7
94
gameserver/migrations/0001_initial.py
Normal file
94
gameserver/migrations/0001_initial.py
Normal 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")),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
@ -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",
|
||||||
|
),
|
||||||
|
]
|
@ -1,8 +1,55 @@
|
|||||||
from django.db import models
|
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):
|
class Server(models.Model):
|
||||||
pass
|
game = models.ForeignKey(Game, on_delete=models.CASCADE)
|
||||||
class Player(model.Model):
|
port = models.IntegerField()
|
||||||
pass
|
game_type = models.CharField(max_length=255)
|
||||||
class StatisticsResponse(models.Model):
|
mod = models.ForeignKey('Mod', on_delete=models.CASCADE)
|
||||||
pass
|
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
8
gameserver/urls.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
from django.urls import path
|
||||||
|
|
||||||
|
from . import views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path("", views.index, name="index"),
|
||||||
|
]
|
||||||
|
|
@ -1 +1,6 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
|
|
||||||
|
def index(request):
|
||||||
|
return HttpResponse("Hello, world. You're at the GibCasa index.")
|
@ -31,7 +31,7 @@ ALLOWED_HOSTS = []
|
|||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
"gameserver",
|
"gameserver.apps.GameserverConfig",
|
||||||
"django.contrib.admin",
|
"django.contrib.admin",
|
||||||
"django.contrib.auth",
|
"django.contrib.auth",
|
||||||
"django.contrib.contenttypes",
|
"django.contrib.contenttypes",
|
||||||
|
@ -2,6 +2,7 @@ from django.contrib import admin
|
|||||||
from django.urls import include, path
|
from django.urls import include, path
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
path("gameserver/", include("gameserver.urls")),
|
||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user