from rest_framework import serializers
from .models import BatchYear

class BatchYearSerializer(serializers.ModelSerializer):
    year_name = serializers.CharField(source='title', required=False)
    organization_name = serializers.CharField(source='organization.name', read_only=True)

    class Meta:
        model = BatchYear
        fields = ('year_id', 'title', 'slug', 'code', 'created_at', 'year_name', 'is_global', 'organization', 'organization_name')

    def to_internal_value(self, data):
        if 'year_name' in data and 'title' not in data:
            data['title'] = data.get('year_name')
        if 'title' in data and 'code' not in data:
            data['code'] = data['title']
        return super().to_internal_value(data)

class YearListSerializer(serializers.ModelSerializer):
    year_name = serializers.CharField(source='title', required=False)
    organization_name = serializers.CharField(source='organization.name', read_only=True)

    class Meta:
        model = BatchYear
        fields = ('year_id', 'title', 'slug', 'code', 'created_at', 'year_name', 'is_global', 'organization', 'organization_name')

    def to_internal_value(self, data):
        if 'year_name' in data and 'title' not in data:
            data['title'] = data.get('year_name')
        if 'title' in data and 'code' not in data:
            data['code'] = data['title']
        return super().to_internal_value(data)

