//! Демонстрация получения информации о групповом чате по `chat_id`.
//!
//! Запуск:
//! ```bash
//! export MAXBOT_TOKEN="ваш_токен"
//! export CHAT_ID=-1234567890
//! cargo run --example get-chat-demo
//! ```

use maxbot::MaxClient;
use std::env;

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

    if let Ok(proxy_url) = env::var("MAXBOT_PROXY") {
        maxbot::set_global_base_url(proxy_url);
    }

    let client = MaxClient::new(token);
    let chat = client.get_chat(chat_id).await?;

    println!("Информация о чате {}:", chat_id);
    println!("  ID: {}", chat.chat_id);
    println!("  Тип: {}", chat.r#type.as_str());
    println!("  Статус: {}", chat.status.as_str());
    if let Some(title) = &chat.title {
        println!("  Название: {}", title);
    }
    if let Some(icon) = &chat.icon {
        println!("  Иконка: {}", icon.url);
    }
    println!("  Последнее событие: {}", chat.last_event_time_formatted());
    println!("  Участников: {}", chat.participants_count);
    if let Some(owner_id) = chat.owner_id {
        println!("  Владелец ID: {}", owner_id);
    }
    println!("  Публичный: {}", chat.is_public);
    if let Some(link) = &chat.link {
        println!("  Ссылка: {}", link);
    }
    if let Some(desc) = &chat.description {
        println!("  Описание: {}", desc);
    }
    if let Some(dialog_user) = &chat.dialog_with_user {
        println!(
            "  Диалог с пользователем: {} {} (ID: {})",
            dialog_user.first_name,
            dialog_user.last_name.as_deref().unwrap_or(""),
            dialog_user.user_id
        );
    }
    if let Some(pinned) = &chat.pinned_message {
        println!("  Закреплённое сообщение: {:?}", pinned);
    }

    Ok(())
}
