import sqlite3
import logging
from pathlib import Path

logger = logging.getLogger(__name__)

DB_PATH = Path(__file__).resolve().parents[3] / "database" / "autotrain.db"

class LangfusePuller:
    """
    Module phụ trách cào dữ liệu bad-feedback từ hệ thống Langfuse (hoặc Database Log nội bộ).
    """
    def __init__(self, public_key=None, secret_key=None):
        self.public_key = public_key
        self.secret_key = secret_key
        
    def fetch_bad_feedbacks(self, limit: int = 10) -> list[dict]:
        """
        Kéo log các ca tư vấn bị người dùng chê bai từ autotrain.db.
        """
        logger.info(f"Đang kéo top {limit} bad feedbacks từ autotrain.db...")
        try:
            with sqlite3.connect(DB_PATH) as conn:
                conn.row_factory = sqlite3.Row
                cur = conn.cursor()
                cur.execute("SELECT * FROM feedbacks WHERE status = 'pending' LIMIT ?", (limit,))
                rows = cur.fetchall()
                return [dict(row) for row in rows]
        except Exception as e:
            logger.error(f"Error fetching feedbacks: {e}")
            return []

langfuse_puller = LangfusePuller()
