from rest_framework import serializers

from .models import Chunk, Document, KnowledgeBase


class KnowledgeBaseSerializer(serializers.ModelSerializer):
    class Meta:
        model = KnowledgeBase
        fields = [
            "id",
            "name",
            "description",
            "embedding_model",
            "chunk_size",
            "chunk_overlap",
            "is_active",
            "created_at",
            "updated_at",
        ]
        read_only_fields = ["id", "created_at", "updated_at"]


class DocumentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Document
        fields = [
            "id",
            "knowledge_base",
            "source_type",
            "name",
            "file_path",
            "mime_type",
            "file_size",
            "google_sheet_id",
            "web_url",
            "status",
            "last_synced_at",
            "created_at",
            "updated_at",
        ]
        read_only_fields = ["id", "created_at", "updated_at"]


class ChunkSerializer(serializers.ModelSerializer):
    class Meta:
        model = Chunk
        fields = [
            "id",
            "knowledge_base",
            "document",
            "chunk_index",
            "text",
            "created_at",
        ]
        read_only_fields = ["id", "created_at"]

