from rest_framework import serializers

from .models import ReplayFixtureExecution, ReplayResultConsolidation


class ReplayFixtureExecutionSerializer(serializers.ModelSerializer):
    class Meta:
        model = ReplayFixtureExecution
        fields = [
            "id", "replay_order", "root_match", "original_match", "original_fixture",
            "replacement_fixture", "replacement_match", "parent_execution", "replay_sequence",
            "status", "draw_ratification_hash", "calendar_edition", "execution_hash", "created_at", "updated_at",
        ]
        read_only_fields = fields


class ReplayResultConsolidationSerializer(serializers.ModelSerializer):
    class Meta:
        model = ReplayResultConsolidation
        fields = [
            "id", "execution", "root_match", "direct_replacement_match", "terminal_match",
            "terminal_certification", "outcome", "effective_home_score", "effective_away_score",
            "lineage_depth", "consolidation_hash", "consolidated_at",
        ]
        read_only_fields = fields


class ReplayExecutionCreateSerializer(serializers.Serializer):
    replay_order_id = serializers.UUIDField()
    scheduled_at = serializers.DateTimeField()
