from rest_framework import serializers
from package_details.models.package_details import PackageDetails
from package_discount.models.package_discount import PackageDiscount
from package_discount.serializer.package_discount_serializer import PackageDiscountSerializer

class CheckoutSerializer(serializers.ModelSerializer):
    discount = PackageDiscountSerializer(read_only=True)
    final_price = serializers.SerializerMethodField()

    class Meta:
        model = PackageDetails
        fields = ['id', 'details', 'total_ads', 'price', 'discount', 'final_price']
        read_only_fields = ['id','discount','final_price']

    def get_final_price(self, obj):
        if hasattr(obj, 'discount') and obj.discount:
            return obj.discount.get_discounted_price()
        return obj.price