from rest_framework import serializers
from .models import Semester

class SemesterSerializer(serializers.ModelSerializer):
    semester_name = serializers.CharField(source='title', required=False)
    semester_code = serializers.CharField(source='code', required=False)
    organization_name = serializers.CharField(source='organization.name', read_only=True)

    class Meta:
        model = Semester
        fields = ['semester_id', 'title', 'slug', 'code', 'semester_name', 'semester_code', 'is_global', 'organization', 'organization_name']
        read_only_fields = ('slug',)

    def to_internal_value(self, data):
        if 'semester_name' in data and 'title' not in data:
            data['title'] = data.get('semester_name')
        if 'semester_code' in data and 'code' not in data:
            data['code'] = data.get('semester_code')
        return super().to_internal_value(data)
