//! Демонстрация удаления сообщения из группового чата.
//!
//! Отправляет в чат сообщение и через секунду удаляет его.
//!
//! Так как сообщение короткое (меньше 4000 символов), оно
//! состоит из одного фрагмента, потому в данном примере
//! используется демонстрация удаления сообщения по его mid.
//!
//! Для удаления всех фрагментов большого текста можно
//! использовать метод delete_messages.
//!
//! # Запуск
//! ```bash
//! export MAXBOT_TOKEN="ваш_токен"
//! export CHAT_ID=-1234567890
//! cargo run --example delete-messages-demo
//! ```

use std::time::Duration;
use maxbot::{MaxClient, SendMessageParamsBuilder};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let token = std::env::var("MAXBOT_TOKEN").expect("Missing MAXBOT_TOKEN");
    let chat_id = std::env::var("CHAT_ID")
        .expect("Missing CHAT_ID")
        .parse::<i64>()?;
    if let Ok(proxy_url) = std::env::var("MAXBOT_PROXY") {
        maxbot::set_global_base_url(proxy_url);
    }

    let client = MaxClient::new(token);

    let builder = SendMessageParamsBuilder::new()
        .text("Это сообщение будет удалено")
        .chat_id(chat_id);
    let ids = client.send_message_builder(builder).await?;
    if let Some(msg_id) = ids.first() {
        println!("Сообщение отправлено, ID: {}", msg_id);
        // Задержка перед удалением
        tokio::time::sleep(Duration::from_secs(1)).await;
        // Удаляем его
        client.delete_message(msg_id).await?;
        println!("Сообщение удалено");
    }
    Ok(())
}
