incentive plan structure in quota serializer - V3

This commit is contained in:
2025-09-02 15:54:42 +03:30
parent 136e650e50
commit e6192928ec

View File

@@ -20,17 +20,28 @@ class QuotaSerializer(serializers.ModelSerializer):
).data
representation['product'] = {"product": instance.product.name, "product_id": instance.product.id}
plans = [{
"id": item.id,
"quota": item.quota.id,
"incentive_plan": item.incentive_plan.id,
"livestock_type": item.livestock_type.id,
"quantity_kg": item.quantity_kg
} for item in instance.incentive_assignments.all()]
# quota incentive plan data
incentive_plan_map = {}
for assign in instance.incentive_assignments.all():
plan_id = assign.incentive_plan.id
if plan_id not in incentive_plan_map:
incentive_plan_map[plan_id] = {
"id": assign.id,
"name": assign.incentive_plan.name,
"incentive_plan": plan_id,
"live_stocks": []
}
representation['incentive_plan'] = plans
if assign.livestock_type:
incentive_plan_map[plan_id]['live_stocks'].append({
"id": assign.livestock_type.id,
"name": assign.livestock_type.name,
"quantity": assign.quantity_kg
})
representation['attribute_values'] = product_serializers.AttributeValueSerializer( # noqa
representation['incentive_plan'] = list(incentive_plan_map.values())
representation['attribute_values'] = product_serializers.AttributeValueSerializer(
instance.attribute_values.all(),
many=True
).data