from rest_framework import serializers from apps.employees.models import Employee class EmployeeSerializer(serializers.ModelSerializer): """Базовый сериализатор — только публичные поля.""" groups = serializers.SlugRelatedField(many=True, read_only=True, slug_field='name') class Meta: model = Employee fields = [ 'id', 'username', 'first_name', 'last_name', 'middle_name', 'email', 'groups', 'photo', 'post', 'department', 'user_location_type', 'user_organization', 'user_pharmacy', 'employment_type', 'is_active', 'date_joined', ] read_only_fields = ['id', 'date_joined'] class EmployeeDetailSerializer(EmployeeSerializer): """Детальный сериализатор с PII — только для HR/администраторов.""" class Meta(EmployeeSerializer.Meta): fields = EmployeeSerializer.Meta.fields + [ 'phone', 'internal_number', 'internal_line_type', 'personal_phone', 'personal_email', 'birth_date', 'inn_code', 'emergency_contact_name', 'emergency_contact_phone', 'emergency_contact_relation', 'mattermost_username', 'mattermost_sync_enabled', 'ad_sync_enabled', 'hire_date', 'termination_date', 'is_staff', ]