"""Konfigurace embedding providera pro knowledge plane."""

from __future__ import annotations

from dataclasses import dataclass, field
from pathlib import Path


@dataclass(frozen=True)
class EmbeddingConfig:
    """Nastavení pro embedding model a vector store."""

    model: str = "qwen3-embedding:0.6b"
    vector_dim: int = 1024
    max_context: int = 32_000
    ollama_base_url: str = "http://127.0.0.1:11434"
    lancedb_directory: Path = field(default_factory=lambda: Path("./lancedb_data"))
    file_extensions: tuple[str, ...] = (
        ".txt",
        ".md",
        ".py",
        ".js",
        ".ts",
        ".json",
        ".yaml",
        ".yml",
        ".toml",
        ".rst",
        ".csv",
    )
    chunk_size_tokens: int = 512
    chunk_overlap_tokens: int = 100
    chat_model: str = "phi3.5:latest"

    @property
    def effective_dim(self) -> int:
        """Dimenze vektoru po případném ořezu MRL."""
        return self.vector_dim
