mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2026-02-05 07:45:18 -05:00
lol
This commit is contained in:
@@ -224,3 +224,152 @@ class FlatRideStats(TrackedModel):
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"Flat Ride Stats for {self.ride.name}"
|
||||
|
||||
|
||||
# Transport Type Choices for Transportation Rides
|
||||
TRANSPORT_TYPES = [
|
||||
("TRAIN", "Train"),
|
||||
("MONORAIL", "Monorail"),
|
||||
("SKYLIFT", "Skylift / Chairlift"),
|
||||
("FERRY", "Ferry / Boat"),
|
||||
("PEOPLEMOVER", "PeopleMover"),
|
||||
("CABLE_CAR", "Cable Car"),
|
||||
("TRAM", "Tram"),
|
||||
]
|
||||
|
||||
|
||||
@pghistory.track()
|
||||
class KiddieRideStats(TrackedModel):
|
||||
"""
|
||||
Statistics specific to kiddie rides (category=KR).
|
||||
|
||||
Tracks age-appropriate ride characteristics and theming.
|
||||
"""
|
||||
|
||||
ride = models.OneToOneField(
|
||||
"rides.Ride",
|
||||
on_delete=models.CASCADE,
|
||||
related_name="kiddie_stats",
|
||||
help_text="Ride these kiddie ride statistics belong to",
|
||||
)
|
||||
|
||||
min_age = models.PositiveIntegerField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Minimum recommended age in years",
|
||||
)
|
||||
|
||||
max_age = models.PositiveIntegerField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Maximum recommended age in years",
|
||||
)
|
||||
|
||||
educational_theme = models.CharField(
|
||||
max_length=200,
|
||||
blank=True,
|
||||
help_text="Educational theme if applicable (e.g., 'Dinosaurs', 'Space')",
|
||||
)
|
||||
|
||||
character_theme = models.CharField(
|
||||
max_length=200,
|
||||
blank=True,
|
||||
help_text="Character theme if applicable (e.g., 'Paw Patrol', 'Peppa Pig')",
|
||||
)
|
||||
|
||||
guardian_required = models.BooleanField(
|
||||
default=False,
|
||||
help_text="Whether a guardian must be present during the ride",
|
||||
)
|
||||
|
||||
adult_ride_along = models.BooleanField(
|
||||
default=True,
|
||||
help_text="Whether adults can ride along with children",
|
||||
)
|
||||
|
||||
seats_per_vehicle = models.PositiveIntegerField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Number of seats per ride vehicle",
|
||||
)
|
||||
|
||||
class Meta(TrackedModel.Meta):
|
||||
verbose_name = "Kiddie Ride Statistics"
|
||||
verbose_name_plural = "Kiddie Ride Statistics"
|
||||
ordering = ["ride"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"Kiddie Ride Stats for {self.ride.name}"
|
||||
|
||||
|
||||
@pghistory.track()
|
||||
class TransportationStats(TrackedModel):
|
||||
"""
|
||||
Statistics specific to transportation rides (category=TR).
|
||||
|
||||
Tracks route, capacity, and vehicle information.
|
||||
"""
|
||||
|
||||
ride = models.OneToOneField(
|
||||
"rides.Ride",
|
||||
on_delete=models.CASCADE,
|
||||
related_name="transport_stats",
|
||||
help_text="Ride these transportation statistics belong to",
|
||||
)
|
||||
|
||||
transport_type = models.CharField(
|
||||
max_length=20,
|
||||
choices=TRANSPORT_TYPES,
|
||||
default="TRAIN",
|
||||
help_text="Type of transportation",
|
||||
)
|
||||
|
||||
route_length_ft = models.DecimalField(
|
||||
max_digits=8,
|
||||
decimal_places=2,
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Total route length in feet",
|
||||
)
|
||||
|
||||
stations_count = models.PositiveIntegerField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Number of stations/stops on the route",
|
||||
)
|
||||
|
||||
vehicle_capacity = models.PositiveIntegerField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Passenger capacity per vehicle",
|
||||
)
|
||||
|
||||
vehicles_count = models.PositiveIntegerField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Total number of vehicles in operation",
|
||||
)
|
||||
|
||||
round_trip_duration_minutes = models.PositiveIntegerField(
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Duration of a complete round trip in minutes",
|
||||
)
|
||||
|
||||
scenic_highlights = models.TextField(
|
||||
blank=True,
|
||||
help_text="Notable scenic views or attractions along the route",
|
||||
)
|
||||
|
||||
is_one_way = models.BooleanField(
|
||||
default=False,
|
||||
help_text="Whether this is a one-way transportation (vs round-trip)",
|
||||
)
|
||||
|
||||
class Meta(TrackedModel.Meta):
|
||||
verbose_name = "Transportation Statistics"
|
||||
verbose_name_plural = "Transportation Statistics"
|
||||
ordering = ["ride"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"Transportation Stats for {self.ride.name}"
|
||||
|
||||
Reference in New Issue
Block a user