from rest_framework import serializers
from .models import Reports
from products.models import Products


class ReportsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Reports
        fields = "__all__"


class ProductInquiriesReportSerializer(serializers.ModelSerializer):
    main_category = serializers.SerializerMethodField()
    sub_category = serializers.SerializerMethodField()
    inquiries_count = serializers.SerializerMethodField()
    series = serializers.SerializerMethodField()

    class Meta:
        model = Products
        fields = [
            "name",
            "edp_number",
            "article_number",
            "main_category",
            "sub_category",
            "series",
            "inquiries_count",
        ]

    def get_main_category(self, obj: Products):
        return ",".join(obj.category.main_category_name)

    def get_sub_category(self, obj: Products):
        return obj.category.sub_category_name

    def get_series(self, obj: Products):
        if obj.series:
            return obj.series.name

        return None

    def get_inquiries_count(self, obj: Products):
        return obj.inquiries_count
