from rest_framework import serializers
from .models import ClubStaffAssignment,StaffCapabilityProfile,StaffMember
class StaffMemberSerializer(serializers.ModelSerializer):
    capability=serializers.SerializerMethodField()
    class Meta:model=StaffMember;fields="__all__"
    def get_capability(self,obj):
        try:return StaffCapabilitySerializer(obj.capability).data
        except Exception:return None
class StaffCapabilitySerializer(serializers.ModelSerializer):
    class Meta:model=StaffCapabilityProfile;fields="__all__"
class StaffAssignmentSerializer(serializers.ModelSerializer):
    monthly_salary=serializers.DecimalField(source="employment_plan.installment_amount", max_digits=24, decimal_places=8, read_only=True, allow_null=True)
    contract_end=serializers.DateField(source="employment_plan.end_date", read_only=True, allow_null=True)
    staff_member_detail=StaffMemberSerializer(source="staff_member",read_only=True)
    class Meta:model=ClubStaffAssignment;fields="__all__"
class CapabilityInputSerializer(serializers.Serializer):
    level=serializers.IntegerField(min_value=1);leadership=serializers.IntegerField();tactical=serializers.IntegerField();development=serializers.IntegerField();fitness=serializers.IntegerField();goalkeeping=serializers.IntegerField()
class SpecialistCreateSerializer(CapabilityInputSerializer):
    specialty=serializers.CharField();first_name=serializers.CharField(max_length=100);last_name=serializers.CharField(max_length=100);nationality=serializers.CharField(max_length=100)
class StaffAssignSerializer(serializers.Serializer):staff_member_id=serializers.UUIDField()
