from __future__ import annotations

from datetime import date

from telegram import Update
from telegram.ext import ContextTypes

from ..formatters import hearing_list, task_list


async def list_tasks(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    result = context.bot_data["api"].get("aciq_tapshiriqlar")
    if not result.get("success"):
        await update.message.reply_text(result.get("error", "Sorğu alınmadı."))
        return
    await update.message.reply_text(task_list(result.get("data", [])), parse_mode="HTML")


async def show_task(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    task_id = update.message.text.replace("/task", "", 1).strip()
    if not task_id and context.args:
        task_id = context.args[0]
    result = context.bot_data["api"].get("bir_tapshiriq", {"id": task_id})
    if not result.get("success") or not result.get("data"):
        await update.message.reply_text("Tapşırıq tapılmadı.")
        return
    await update.message.reply_text(task_list([result["data"]]), parse_mode="HTML")


async def list_hearings(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    result = context.bot_data["api"].get(
        "iclaslar_aralik",
        {"baslama": date.today().isoformat(), "bitis": "2030-12-31"},
    )
    if not result.get("success"):
        await update.message.reply_text(result.get("error", "Sorğu alınmadı."))
        return
    await update.message.reply_text(hearing_list(result.get("data", [])), parse_mode="HTML")

