| 82 | return instance |
| 83 | |
| 84 | class ProgramDataSerializer(serializers.ModelSerializer): |
| 85 | |
| 86 | class Meta: |
| 87 | model = ProgramData |
| 88 | fields = ['id', 'start_time', 'end_time', 'title', 'sub_title', 'description', 'tvg_id'] |
| 89 | |
| 90 | def to_representation(self, obj): |
| 91 | data = super().to_representation(obj) |
| 92 | cp = obj.custom_properties or {} |
| 93 | data['season'] = cp.get('season') |
| 94 | data['episode'] = cp.get('episode') |
| 95 | data['is_new'] = bool(cp.get('new')) |
| 96 | data['is_live'] = bool(cp.get('live')) |
| 97 | data['is_premiere'] = bool(cp.get('premiere')) |
| 98 | premiere_text = cp.get('premiere_text', '') |
| 99 | data['is_finale'] = bool(premiere_text and 'finale' in premiere_text.lower()) |
| 100 | return data |
| 101 | |
| 102 | class ProgramDetailSerializer(ProgramDataSerializer): |
| 103 | """Rich serializer for program detail view — extends slim serializer with full custom_properties.""" |
no outgoing calls