from rest_framework import serializers
from .models import Offer


class OfferSerializer(serializers.ModelSerializer):
    """Offer Serializer"""
    place_name = serializers.CharField(source='place.name', read_only=True)
    days_remaining = serializers.IntegerField(read_only=True)
    is_valid = serializers.BooleanField(read_only=True)
    
    class Meta:
        model = Offer
        fields = ['id', 'place', 'place_name', 'title', 'description', 'discount', 'start_date',
                  'end_date', 'image', 'terms', 'is_active', 'days_remaining', 'is_valid',
                  'created_at', 'updated_at']
        read_only_fields = ['id', 'created_at', 'updated_at']
    
    def create(self, validated_data):
        validated_data['place'] = self.context['request'].user.place_admin_profile.place
        return super().create(validated_data)

