This commit is contained in:
pacnpal
2026-01-02 07:58:58 -05:00
parent b243b17af7
commit 1adba1b804
36 changed files with 6345 additions and 6 deletions

View File

@@ -233,12 +233,16 @@ class HybridParkSerializer(serializers.ModelSerializer):
# Company fields
operator_name = serializers.CharField(source="operator.name", read_only=True)
operator_id = serializers.IntegerField(source="operator.id", read_only=True, allow_null=True)
property_owner_name = serializers.CharField(source="property_owner.name", read_only=True, allow_null=True)
# Image URLs for display
banner_image_url = serializers.SerializerMethodField()
card_image_url = serializers.SerializerMethodField()
# Computed property
is_closing = serializers.SerializerMethodField()
# Computed fields for filtering
opening_year = serializers.IntegerField(read_only=True)
search_text = serializers.CharField(read_only=True)
@@ -309,6 +313,11 @@ class HybridParkSerializer(serializers.ModelSerializer):
return obj.card_image.image.url
return None
@extend_schema_field(serializers.BooleanField())
def get_is_closing(self, obj):
"""Check if park has an announced closing date in the future."""
return obj.is_closing
class Meta:
model = Park
fields = [
@@ -321,7 +330,10 @@ class HybridParkSerializer(serializers.ModelSerializer):
"park_type",
# Dates and computed fields
"opening_date",
"opening_date_precision",
"closing_date",
"closing_date_precision",
"is_closing",
"opening_year",
"operating_season",
# Location fields
@@ -333,12 +345,17 @@ class HybridParkSerializer(serializers.ModelSerializer):
"longitude",
# Company relationships
"operator_name",
"operator_id",
"property_owner_name",
# Statistics
"size_acres",
"average_rating",
"ride_count",
"coaster_count",
# Contact info
"phone",
"email",
"timezone",
# Images
"banner_image_url",
"card_image_url",