from rest_framework import serializers

from .models import CityTaxReportHistory


class CityTaxReportHistorySerializer(serializers.ModelSerializer):
    period = serializers.SerializerMethodField()
    preview = serializers.SerializerMethodField()

    class Meta:
        model = CityTaxReportHistory
        fields = [
            "id",
            "structure_id",
            "status",
            "label",
            "period",
            "rates",
            "property_type_id",
            "property_id",
            "preview",
            "created_at",
            "created_by_id",
        ]

    def get_period(self, obj):
        return {
            "from_month": obj.period_from_month,
            "to_month": obj.period_to_month,
            "year": obj.period_year,
        }

    def get_preview(self, obj):
        return obj.preview_snapshot or {}
