MCPcopy Create free account
hub / github.com/Dispatcharr/Dispatcharr / ChannelSerializer

Class ChannelSerializer

apps/channels/serializers.py:371–742  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

369# Channel
370#
371class ChannelSerializer(serializers.ModelSerializer):
372 # Show nested group data, or ID
373 # Ensure channel_number is explicitly typed as FloatField and properly validated
374 channel_number = serializers.FloatField(
375 allow_null=True,
376 required=False,
377 error_messages={"invalid": "Channel number must be a valid decimal number."},
378 )
379 channel_group_id = serializers.PrimaryKeyRelatedField(
380 queryset=ChannelGroup.objects.all(), source="channel_group", required=False
381 )
382 epg_data_id = serializers.PrimaryKeyRelatedField(
383 queryset=EPGData.objects.all(),
384 source="epg_data",
385 required=False,
386 allow_null=True,
387 )
388
389 stream_profile_id = serializers.PrimaryKeyRelatedField(
390 queryset=StreamProfile.objects.all(),
391 source="stream_profile",
392 allow_null=True,
393 required=False,
394 )
395
396 streams = serializers.PrimaryKeyRelatedField(
397 queryset=Stream.objects.all(), many=True, required=False
398 )
399
400 logo_id = serializers.PrimaryKeyRelatedField(
401 queryset=Logo.objects.all(),
402 source="logo",
403 allow_null=True,
404 required=False,
405 )
406
407 auto_created_by_name = serializers.SerializerMethodField()
408 override = ChannelOverrideSerializer(
409 required=False,
410 allow_null=True,
411 help_text=(
412 "Per-field overrides for an auto-created channel. "
413 'Send {"override": {"name": "ESPN"}} to upsert the listed '
414 'fields, {"override": {"name": null}} to clear specific fields '
415 'while leaving others, or {"override": null} to delete the '
416 "override row entirely. Omitting the key leaves any existing "
417 "override unchanged. Only valid for auto_created=True channels. "
418 "Duplicate channel_number values across channels are permitted; "
419 "downstream client behavior on duplicates varies by client."
420 ),
421 )
422 source_stream = serializers.SerializerMethodField()
423 # Effective fields coalesce override over channel column. Consumers
424 # display these; raw fields remain in the response so the edit form
425 # can show them as "Provider: X" subtext.
426 effective_name = serializers.SerializerMethodField()
427 effective_channel_number = serializers.SerializerMethodField()
428 effective_channel_group_id = serializers.SerializerMethodField()

Callers 2

edit_bulkMethod · 0.85

Calls 1

Tested by

no test coverage detected