71 lines
1.9 KiB
Python
71 lines
1.9 KiB
Python
from django.db import models
|
|
from django.contrib.auth.models import User
|
|
from django.db.models.fields import CharField, IntegerField
|
|
|
|
|
|
# Create your models here.
|
|
class Province(models.Model):
|
|
id = models.IntegerField(primary_key = True)
|
|
name = models.CharField(max_length = 100, blank = False)
|
|
faction = models.IntegerField() # 0 - Neutral, 1 - Allies, 2 - Axis
|
|
map = models.CharField(max_length=255)
|
|
mov_speed = models.IntegerField()
|
|
ats = models.JSONField(null=True)
|
|
|
|
class Meta:
|
|
ordering = ['id']
|
|
|
|
def __str__(self):
|
|
return f"{self.name} - {self.faction}"
|
|
|
|
|
|
class AssaultTroop(models.Model):
|
|
id = models.IntegerField(primary_key = True)
|
|
name = models.CharField(max_length = 100, blank = False)
|
|
faction = models.IntegerField() # 0 - Neutral, 1 - Allies, 2 - Axis
|
|
type = models.IntegerField()
|
|
province = models.IntegerField() # Province ID (-1 for not deployed)
|
|
orders = models.JSONField(null=True)
|
|
owner = models.ForeignKey(
|
|
'auth.User',
|
|
related_name='ats',
|
|
on_delete=models.CASCADE
|
|
)
|
|
|
|
class Meta:
|
|
ordering = ['id']
|
|
|
|
def __str__(self):
|
|
return f"{self.name} - {self.province},{self.faction}"
|
|
|
|
|
|
|
|
class Player(models.Model):
|
|
id = models.IntegerField(primary_key = True)
|
|
name = models.CharField(max_length = 50, blank = False)
|
|
faction = models.IntegerField()
|
|
server = CharField(max_length = 20, blank = False)
|
|
|
|
class Meta:
|
|
ordering = ['id']
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
|
|
class Server(models.Model):
|
|
id = IntegerField(primary_key = True)
|
|
players = IntegerField() # total current players
|
|
capacity = IntegerField() # max player capacity
|
|
region = CharField(max_length = 3, blank = False) # 3 letter abb. for region
|
|
address = CharField(max_length = 20, blank = False)
|
|
|
|
class Meta:
|
|
ordering = ['id']
|
|
|
|
def __str__(self):
|
|
return f"{self.address} - {self.region}"
|
|
|
|
|