Dispatcharr/apps/epg/serializers.py

24 lines
896 B
Python

from rest_framework import serializers
from .models import EPGSource, EPGData, ProgramData
from apps.channels.models import Channel
class EPGSourceSerializer(serializers.ModelSerializer):
class Meta:
model = EPGSource
fields = ['id', 'name', 'source_type', 'url', 'api_key', 'is_active']
class ProgramDataSerializer(serializers.ModelSerializer):
class Meta:
model = ProgramData
fields = ['id', 'start_time', 'end_time', 'title', 'sub_title', 'description', 'tvg_id']
class EPGDataSerializer(serializers.ModelSerializer):
programs = ProgramDataSerializer(many=True, read_only=True)
channel = serializers.SerializerMethodField()
def get_channel(self, obj):
return {"id": obj.channel.id, "name": obj.channel.name} if obj.channel else None
class Meta:
model = EPGData
fields = ['id', 'channel', 'name', 'programs']