from rest_framework import serializers
from finance.models import Contribution


class ContributionReportSerializer(serializers.ModelSerializer):
    member_name = serializers.CharField(
        source='member.full_name', read_only=True
    )
    member_id_no = serializers.CharField(
        source='member.member_id', read_only=True
    )
    contribution_type_name = serializers.CharField(
        source='contribution_type.name', read_only=True
    )
    payment_method_name = serializers.CharField(
        source='payment_method.name', read_only=True
    )

    class Meta:
        model = Contribution
        fields = [
            'id', 'member_name', 'member_id_no',
            'amount', 'contribution_type_name',
            'payment_method_name', 'date',
            'mpesa_receipt', 'reference_number',
            'status', 'notes', 'created_at',
        ]