"""Показать work_days пользователей с pending."""
import asyncio
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
if str(ROOT) not in sys.path:
    sys.path.insert(0, str(ROOT))

from sqlalchemy import text
from app.database.engine import async_session
from app.database.crud_filter import get_filter_settings_dict
from app.schedule_utils import is_within_window, format_work_days, now_in_bot_tz


async def main() -> None:
    async with async_session() as s:
        rows = (
            await s.execute(
                text(
                    "SELECT user_id, COUNT(*) c FROM pending_sms "
                    "WHERE status='pending' GROUP BY user_id"
                )
            )
        ).fetchall()
    print("now:", now_in_bot_tz().isoformat(), "weekday:", now_in_bot_tz().weekday())
    for uid, c in rows:
        st = await get_filter_settings_dict(int(uid)) or {}
        print(
            f"user={uid} pending={c} days={st.get('work_days')} "
            f"({format_work_days(st.get('work_days'))}) "
            f"window={st.get('work_from')}-{st.get('work_to')} "
            f"in={is_within_window(st.get('work_from'), st.get('work_to'), st.get('work_days'))}"
        )


if __name__ == "__main__":
    asyncio.run(main())
