from rest_framework import serializers class CheckInTokenSerializer(serializers.Serializer): token = serializers.CharField(trim_whitespace=True, allow_blank=False) def validate(self, attrs): unknown_fields = set(self.initial_data) - set(self.fields) if unknown_fields: raise serializers.ValidationError( {field: ["Unexpected field."] for field in sorted(unknown_fields)} ) return attrs class CheckInPreviewResponseSerializer(serializers.Serializer): status = serializers.CharField() reservation_id = serializers.IntegerField() performance_id = serializers.IntegerField() show_title = serializers.CharField() starts_at = serializers.DateTimeField() party_size = serializers.IntegerField() class CheckInConfirmResponseSerializer(serializers.Serializer): status = serializers.CharField() reservation_id = serializers.IntegerField(source="preview.reservation_id") performance_id = serializers.IntegerField(source="preview.performance_id") party_size = serializers.IntegerField(source="preview.party_size") checked_in_at = serializers.DateTimeField(source="check_in.checked_in_at") checked_in_by = serializers.IntegerField(source="check_in.checked_in_by_id")