from rest_framework import serializers
from .models import Inquiries
from products.serializers import ProductsSerializer
from django.utils.timezone import localtime


class InquiriesSerializer(serializers.ModelSerializer):
    first_name = serializers.CharField(required=True)
    last_name = serializers.CharField(required=True)
    created_at = serializers.SerializerMethodField(read_only=True)

    class Meta:
        model = Inquiries
        fields = "__all__"

    def to_representation(self, instance):
        representation = super().to_representation(instance)

        if instance.product:
            representation["product"] = ProductsSerializer(
                instance.product, many=False
            ).data

        return representation

    def get_created_at(self, obj):
        local_created_at = localtime(obj.created_at)
        formatted_date = local_created_at.strftime("%B %-d, %Y %-I:%M%p")
        return formatted_date


class InquiriesStatusSerializer(serializers.Serializer):
    inquiry_id = serializers.CharField(max_length=1000)
    status = serializers.CharField(max_length=1000)


class DownloadInquiriesFilterSerializer(serializers.Serializer):
    start_date = serializers.CharField(required=False)
    end_date = serializers.CharField(required=False)
    inquiry_status = serializers.CharField(required=False)
