from rest_framework import serializers
from jobs_company.models.jobs import Jobs
from job_companies.serializer.job_company_serializer import JobCompanyListdropSerializer

class JobsSerializer(serializers.ModelSerializer):
    id = serializers.ReadOnlyField()
    icon_url_path = serializers.SerializerMethodField('get_image_url')

    class Meta:
        model = Jobs
        fields = "__all__"
        read_only_fields = ['id', 'created_at', 'updated_at']

    def get_image_url(self, obj):
        request = self.context.get('request')
        if obj.icon_url and hasattr(obj.icon_url, 'url'):
            return request.build_absolute_uri(obj.icon_url) if request else obj.icon_url
        return None
    
class JobsDropdownSerializer(serializers.ModelSerializer):
    type_name = serializers.CharField(source='get_type_display', read_only=True)
    company = JobCompanyListdropSerializer(read_only=True)
    class Meta:
        model = Jobs
        fields = ['id','company','title','type','type_name','location','icon_url']