from rest_framework import serializers

from knowledge.models import KnowledgeFolder


class KnowledgeFolderTreeSerializer(serializers.ModelSerializer):
    children = serializers.SerializerMethodField()

    class Meta:
        model = KnowledgeFolder
        fields = ['id', 'name', 'desc', 'user_id', 'workspace_id', 'parent_id', 'children']

    def get_children(self, obj):
        return KnowledgeFolderTreeSerializer(obj.get_children(), many=True).data


class KnowledgeFolderFlatSerializer(serializers.ModelSerializer):
    class Meta:
        model = KnowledgeFolder
        fields = ['id', 'name', 'desc', 'user_id', 'workspace_id', 'parent_id']
