from rest_framework import serializers

from apps.core.i18n import localized_field
from apps.events.models import Event


class EventListSerializer(serializers.ModelSerializer):
    name = serializers.SerializerMethodField()

    class Meta:
        model = Event
        fields = [
            "id", "name", "name_en", "name_ar",
            "cover", "logo", "start_date", "end_date",
            "venue_name",
        ]

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


class EventDetailSerializer(serializers.ModelSerializer):
    name = serializers.SerializerMethodField()
    description = serializers.SerializerMethodField()

    class Meta:
        model = Event
        fields = [
            "id", "name", "name_en", "name_ar",
            "description", "description_en", "description_ar",
            "cover", "logo", "start_date", "end_date",
            "venue_name", "address", "latitude", "longitude",
            "created_at",
        ]

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

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