from rest_framework import serializers
from .models import PowerStreamBonusRecord, PowerStreamConfig, PowerStreamMonthlyClaim


class PowerStreamConfigSerializer(serializers.ModelSerializer):
    class Meta:
        model = PowerStreamConfig
        fields = '__all__'


class PowerStreamBonusRecordSerializer(serializers.ModelSerializer):
    opportunity_bundle_name = serializers.CharField(source='opportunity_bundle.name', read_only=True, default=None)
    opportunity_bundle_id = serializers.UUIDField(source='opportunity_bundle_id', read_only=True)
    earner_distributor_id = serializers.UUIDField(source='earner_distributor_id', read_only=True)
    earner_distributor_code = serializers.CharField(source='earner_distributor.distributor_code', read_only=True, default=None)

    class Meta:
        model = PowerStreamBonusRecord
        fields = [
            'id', 'level', 'opportunity_bundle_id', 'opportunity_bundle_name', 'earner_distributor_id', 'earner_distributor_code', 'gross_amount', 'net_amount',
            'status', 'earned_at', 'expires_at', 'claimed_at',
            'claim_period', 'reference_id',
        ]


class PowerStreamMonthlyClaimSerializer(serializers.ModelSerializer):
    class Meta:
        model = PowerStreamMonthlyClaim
        fields = [
            'id', 'claim_month', 'total_gross', 'total_net',
            'records_count', 'status', 'created_at',
        ]
