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"]