from rest_framework import serializers from .models import ( InstitutionType, Representative, School, Partner, PartnerRepresentative, SchoolResponsibility, ) class InstitutionTypeSerializer(serializers.ModelSerializer): class Meta: model = InstitutionType fields = "__all__" class RepresentativeSerializer(serializers.ModelSerializer): full_name = serializers.SerializerMethodField() class Meta: model = Representative fields = ["id", "first_name", "last_name", "middle_name", "phone", "email", "position", "full_name"] def get_full_name(self, obj): return f"{obj.first_name} {obj.last_name}" + (f" {obj.middle_name}" if obj.middle_name else "") class SchoolSerializer(serializers.ModelSerializer): director_name = serializers.SerializerMethodField() class Meta: model = School fields = ["id", "director", "institution_type", "name", "address", "director_name"] def get_director_name(self, obj): if obj.director: return f"{obj.director.first_name} {obj.director.last_name}" return None class PartnerSerializer(serializers.ModelSerializer): class Meta: model = Partner fields = "__all__" class PartnerRepresentativeSerializer(serializers.ModelSerializer): representative_name = serializers.SerializerMethodField() class Meta: model = PartnerRepresentative fields = ["id", "representative", "partner", "representative_name"] def get_representative_name(self, obj): return f"{obj.representative.first_name} {obj.representative.last_name}" class SchoolResponsibilitySerializer(serializers.ModelSerializer): responsible_name = serializers.SerializerMethodField() class Meta: model = SchoolResponsibility fields = ["id", "academic_year", "responsible", "school", "responsible_name"] def get_responsible_name(self, obj): return f"{obj.responsible.account.first_name} {obj.responsible.account.last_name}"