inital commit
This commit is contained in:
59
adventrues/serializers.py
Normal file
59
adventrues/serializers.py
Normal file
@@ -0,0 +1,59 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from .models import AdventureCategory, AdventureImage, AdventureOffering
|
||||
|
||||
|
||||
class AdventureCategorySerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = AdventureCategory
|
||||
fields = ("id", "name", "slug", "description")
|
||||
|
||||
|
||||
class AdventureImageSerializer(serializers.ModelSerializer):
|
||||
image_url = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = AdventureImage
|
||||
fields = ("id", "image_url", "alt_text", "sort_order", "is_primary")
|
||||
|
||||
def get_image_url(self, obj):
|
||||
if not obj.image:
|
||||
return ""
|
||||
request = self.context.get("request")
|
||||
if request:
|
||||
return request.build_absolute_uri(obj.image.url)
|
||||
return obj.image.url
|
||||
|
||||
|
||||
class AdventureOfferingSerializer(serializers.ModelSerializer):
|
||||
category = AdventureCategorySerializer(read_only=True)
|
||||
category_id = serializers.PrimaryKeyRelatedField(
|
||||
queryset=AdventureCategory.objects.all(),
|
||||
source="category",
|
||||
write_only=True,
|
||||
)
|
||||
vendor_slug = serializers.CharField(source="vendor.slug", read_only=True)
|
||||
vendor_business_name = serializers.CharField(source="vendor.business_name", read_only=True)
|
||||
images = AdventureImageSerializer(many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = AdventureOffering
|
||||
fields = (
|
||||
"id",
|
||||
"public_id",
|
||||
"title",
|
||||
"description",
|
||||
"meeting_point",
|
||||
"duration_minutes",
|
||||
"capacity",
|
||||
"price_per_person",
|
||||
"is_active",
|
||||
"category",
|
||||
"category_id",
|
||||
"vendor_slug",
|
||||
"vendor_business_name",
|
||||
"images",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
)
|
||||
read_only_fields = ("created_at", "updated_at")
|
||||
Reference in New Issue
Block a user