# handlers/message_handlers.py

from telegram import Update
from telegram.ext import ContextTypes
from handlers.state import search_state
from services.supabase_service import search_name
import logging

logger = logging.getLogger(__name__)

async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
    chat_id = update.effective_chat.id
    text = update.message.text.strip()
    department = search_state.get(chat_id)

    if not department:
        await update.message.reply_text("❌ 먼저 검색할 부처를 선택하세요. `/motie_search` 또는 `/moef_search`를 입력하세요.")
        return

    table_name = "motie_org" if department == "motie" else "moef_org"

    try:
        logger.info(f"📨 검색 요청 - Chat ID: {chat_id}, 부처: {department}, 이름: {text}")
        results = search_name(table_name, text)

        if not results:
            await update.message.reply_text("🔍 검색 결과가 없습니다.")
        else:
            msg_lines = [f"🔎 검색 결과 ({len(results)}건):"]
            for r in results:
                msg_lines.append(f"- {r.get('name')} / {r.get('position')} / {r.get('department')}")
            await update.message.reply_text("\n".join(msg_lines))

    except Exception as e:
        await update.message.reply_text("❌ 검색 중 오류가 발생했습니다.")
        logger.error(f"검색 오류: {e}")

    finally:
        # 검색 상태 초기화
        search_state.pop(chat_id, None)
