from rest_framework import serializers

from apps.core.i18n import localized_field
from apps.products.models import Product


class ProductSerializer(serializers.ModelSerializer):
    name = serializers.SerializerMethodField()
    description = serializers.SerializerMethodField()
    store_name = serializers.CharField(source="store.name_en", read_only=True)

    class Meta:
        model = Product
        fields = [
            "id", "store", "store_name", "category",
            "name", "name_en", "name_ar",
            "description", "description_en", "description_ar",
            "image", "price", "original_price", "discount_percent",
            "is_featured", "created_at",
        ]

    def get_name(self, obj):
        return localized_field(obj, "name")

    def get_description(self, obj):
        return localized_field(obj, "description")
