from rest_framework import serializers

from .models import (
    OfficialClubSeasonStatistic,
    OfficialCompetitionArchive,
    OfficialHallOfFameEntry,
    OfficialHistoricalRecord,
    OfficialHistoryProjection,
    OfficialHonor,
    OfficialLeagueStandingRow,
    OfficialMatchArchive,
    OfficialPlayerSeasonStatistic,
)


class OfficialHistoryProjectionSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialHistoryProjection
        fields = (
            "id", "ratification_id", "season_id", "sequence", "source_type",
            "source_chain_head_hash", "source_snapshot_hash", "history_context_hash", "schema_version",
            "projection_payload", "projection_hash", "source_event_id", "created_at",
        )


class OfficialCompetitionArchiveSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialCompetitionArchive
        fields = "__all__"


class OfficialLeagueStandingRowSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialLeagueStandingRow
        fields = "__all__"


class OfficialMatchArchiveSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialMatchArchive
        fields = "__all__"


class OfficialClubSeasonStatisticSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialClubSeasonStatistic
        fields = "__all__"


class OfficialPlayerSeasonStatisticSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialPlayerSeasonStatistic
        fields = "__all__"


class OfficialHonorSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialHonor
        fields = "__all__"


class OfficialHistoricalRecordSerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialHistoricalRecord
        fields = "__all__"


class OfficialHallOfFameEntrySerializer(serializers.ModelSerializer):
    class Meta:
        model = OfficialHallOfFameEntry
        fields = "__all__"
