from rest_framework import serializers
from .models import Task

class TaskSerializer(serializers.ModelSerializer):
    project_name = serializers.CharField(source='project.name', read_only=True, required=False)
    client_name = serializers.SerializerMethodField()
    
    class Meta:
        model = Task
        fields = [
            'id', 'name', 'description', 'code', 'estimated_time',
            'due_date', 'project', 'project_name', 'client_name', 'created_at', 'updated_at'
        ]
        read_only_fields = ['id', 'created_at', 'updated_at', 'project_name', 'client_name']
    
    def get_client_name(self, obj):
        if obj.project and obj.project.client:
            return obj.project.client
        return None

