Files
catops/cntmanage/flightslot/models/hourbuildings.py

113 lines
2.2 KiB
Python

from django.utils.translation import gettext_lazy as _
from django.db import models
from datetime import timedelta
from polymorphic.models import PolymorphicModel
from ..models.weekpref import WeekPreference
from ..models.aircrafts import AircraftTypes
class HourBuilding(models.Model):
id = models.BigAutoField(
primary_key=True
)
weekpref = models.ForeignKey(
WeekPreference,
null=False,
on_delete=models.CASCADE
)
aircraft = models.CharField(
null=False,
choices=AircraftTypes
)
monday = models.BooleanField(
default=True,
null=False
)
tuesday = models.BooleanField(
default=True,
null=False
)
wednesday = models.BooleanField(
default=True,
null=False
)
thursday = models.BooleanField(
default=True,
null=False
)
friday = models.BooleanField(
default=True,
null=False
)
saturday = models.BooleanField(
default=True,
null=False
)
sunday = models.BooleanField(
default=True,
null=False
)
notes = models.TextField(
max_length=140,
null=True,
blank=True
)
def __str__(self):
return f"Hour Building: {self.aircraft}"
class HourBuildingLegBase(PolymorphicModel):
id = models.BigAutoField(
primary_key=True
)
hb = models.ForeignKey(
HourBuilding,
on_delete=models.CASCADE
)
time = models.DurationField(
null=False,
default = timedelta(hours=1)
)
class HourBuildingLegFlight(HourBuildingLegBase):
departure = models.CharField(
null=False,
blank=False,
default="LILV",
max_length=4
)
destination = models.CharField(
null=False,
blank=False,
default="LILV",
max_length=4
)
def __str__(self):
return f"Flight Leg: {self.departure} -> {self.destination}"
class HourBuildingLegStop(HourBuildingLegBase):
location = models.CharField(
null=False,
blank=False,
default="LILV",
max_length=4
)
refuel = models.BooleanField(
default=False
)