twilight_model/application/interaction/
metadata.rs1use serde::{Deserialize, Serialize};
2
3use crate::{
4 id::{
5 marker::{GuildMarker, InteractionMarker, MessageMarker, UserMarker},
6 AnonymizableId, Id,
7 },
8 oauth::ApplicationIntegrationMap,
9 user::User,
10};
11
12use super::InteractionType;
13
14#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
16pub struct InteractionMetadata {
17 pub authorizing_integration_owners:
19 ApplicationIntegrationMap<AnonymizableId<GuildMarker>, Id<UserMarker>>,
20 pub id: Id<InteractionMarker>,
22 #[serde(skip_serializing_if = "Option::is_none")]
25 pub interacted_message_id: Option<Id<MessageMarker>>,
26 #[serde(rename = "type")]
28 pub kind: InteractionType,
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub original_response_message_id: Option<Id<MessageMarker>>,
32 #[serde(skip_serializing_if = "Option::is_none")]
35 pub target_message_id: Option<Id<MessageMarker>>,
36 #[serde(skip_serializing_if = "Option::is_none")]
39 pub target_user: Option<User>,
40 #[serde(skip_serializing_if = "Option::is_none")]
44 pub triggering_interaction_metadata: Option<Box<InteractionMetadata>>,
45 pub user: User,
47}