from rest_framework import serializers
# from jobs_company.models.jobs import Jobs
from job_companies.models.job_company import JobCompanies
from job_company_reviews.models.company_review import JobCompanyReview
from django.db import models

class CompanyReviewSerializer(serializers.ModelSerializer):
    total_reviews = serializers.SerializerMethodField()
    total_avg_star = serializers.SerializerMethodField()

    class Meta:
        model = JobCompanies
        fields=['total_reviews', 'total_avg_star']

    def get_total_reviews(self, obj):
        return obj.job_company_review.count()
    
    def get_total_avg_star(self, obj):
        reviews = obj.job_company_review.all()
        if not reviews:
            return 0.0
        avg = reviews.aggregate(models.Avg('review_star'))['review_star__avg']
        return round(avg or 0.0, 1)