from rest_framework import serializers
from base.serializers import TagSerializer

from .models import Event, Category, EventImage


class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = '__all__'

class EventImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = EventImage
        fields = ['id', 'image']

class EventListSerializer(serializers.ModelSerializer):
    category = CategorySerializer()
    tags = TagSerializer(many=True)

    class Meta:
        model = Event
        fields = ['id', 'title', 'slug', 'category', 'subtitle',  'featured_image', 'tags', 'is_documented', 'live_link']


class EventDetailSerializer(serializers.ModelSerializer):
    category = CategorySerializer()
    tags = TagSerializer(many=True)
    images = EventImageSerializer(many=True, required=False)

    class Meta:
        model = Event
        fields = ['id', 'title', 'slug', 'subtitle', 'description', 'live_link', 'support_for', 'is_documented', 'featured_image', 'category', 'tags', 'images', 'keypoints']