use crate::entities::inline_keyboard_markup::InlineKeyboardMarkup;
use crate::entities::input_message_content::InputMessageContent;
use crate::utils::deserialize_utils::is_false;
use serde::Serialize;
#[derive(Debug, Clone, Default, PartialEq, Serialize)]
pub struct InlineQueryResultArticle {
pub id: String,
pub title: String,
pub input_message_content: InputMessageContent,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<InlineKeyboardMarkup>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "is_false")]
pub hide_url: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumbnail_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumbnail_width: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumbnail_height: Option<i64>,
}
use super::input_text_message_content::InputTextMessageContent;
impl InlineQueryResultArticle {
pub fn new_simple_text(title: impl Into<String>, text: impl Into<String>) -> Self {
Self {
id: uuid::Uuid::new_v4().to_string(),
title: title.into(),
input_message_content: InputTextMessageContent {
message_text: text.into(),
..Default::default()
}
.into(),
..Default::default()
}
}
}