Files
shopship/apps/orders/api/serializers.py
T

53 lines
1.5 KiB
Python
Raw Normal View History

2026-08-24 15:54:08 +03:30
from rest_framework import serializers
from apps.orders.models import Order, OrderStage, OrderStageLog
class OrderStageSerializer(serializers.ModelSerializer):
class Meta:
model = OrderStage
fields = [
"id",
"label",
"template",
"sort_order",
"requires_extra_input",
"extra_input_label",
"updated_at",
]
read_only_fields = ["updated_at"]
def validate_template(self, template):
if template is None:
return template
request = self.context["request"]
if template.user_id != request.user.id:
raise serializers.ValidationError("این قالب متعلق به شما نیست.")
return template
class OrderStageLogSerializer(serializers.ModelSerializer):
class Meta:
model = OrderStageLog
fields = ["id", "stage", "stage_label", "message_body", "extra_input_value", "created_at"]
read_only_fields = fields
class OrderSerializer(serializers.ModelSerializer):
current_stage_label = serializers.CharField(source="current_stage.label", read_only=True, default="")
class Meta:
model = Order
fields = [
"id",
"customer_name",
"customer_phone",
"tracking_code",
"current_stage",
"current_stage_label",
"is_completed",
"created_at",
"updated_at",
]
read_only_fields = ["current_stage", "is_completed", "created_at", "updated_at"]