print("db_channels.py loaded")

import asyncio
from pyrogram import Client
from pyrogram.types import Message

from config import DB_CHANNEL, PROTECT_CONTENT, AUTO_DEL


# =========================
# SAVE MESSAGE TO DB CHANNEL
# =========================
async def send_to_db(bot: Client, message: Message):
    try:
        sent = await message.copy(
            chat_id=DB_CHANNEL,
            protect_content=PROTECT_CONTENT
        )

        print("SAVED TO DB:", sent.id)
        return sent.id

    except Exception as e:
        print("COPY TO DB ERROR:", e)
        return None


# =========================
# SEND MESSAGE FROM DB TO USER
# =========================
async def send_from_db(bot: Client, user_id: int, message_id: int):
    try:
        msg = await bot.copy_message(
            chat_id=user_id,
            from_chat_id=DB_CHANNEL,
            message_id=message_id,
            protect_content=PROTECT_CONTENT
        )

        print("SENT TO USER:", message_id)

        if AUTO_DEL > 0:
            asyncio.create_task(auto_delete(bot, user_id, msg.id))

        return msg

    except Exception as e:
        print("SEND FROM DB ERROR:", e)
        return None


# =========================
# AUTO DELETE
# =========================
async def auto_delete(bot: Client, chat_id: int, message_id: int):
    try:
        await asyncio.sleep(AUTO_DEL)
        await bot.delete_messages(chat_id, message_id)
        print("AUTO DELETE:", message_id)

    except Exception as e:
        print("AUTO DELETE ERROR:", e)