from rest_framework import serializers
import uuid
from .models import Event


class EventSerializer(serializers.ModelSerializer):
    class Meta:
        model = Event
        fields = "__all__"
        read_only_fields = ["id", "views", "created_at", "updated_at", "created_by", "deleted_by"]

    def create(self, validated_data):
        if not validated_data.get("slug"):
            validated_data["slug"] = f"event-{uuid.uuid4().hex[:8]}"
        return super().create(validated_data)

    def to_representation(self, instance):
        data = super().to_representation(instance)
        if not data.get("image_url"):
            data["image_url"] = instance.banner_url or None
        return data