polyphony_types/entities/
integration.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4use crate::{
5    entities::{Application, User},
6    utils::Snowflake,
7};
8
9#[derive(Default, Debug, Deserialize, Serialize, Clone)]
10/// See https://discord.com/developers/docs/resources/guild#integration-object-integration-structure
11pub struct Integration {
12    pub id: Snowflake,
13    pub name: String,
14    #[serde(rename = "type")]
15    pub integration_type: String,
16    pub enabled: bool,
17    pub syncing: Option<bool>,
18    pub role_id: Option<String>,
19    pub enabled_emoticons: Option<bool>,
20    pub expire_behaviour: Option<u8>,
21    pub expire_grace_period: Option<u16>,
22    pub user: Option<User>,
23    pub account: IntegrationAccount,
24    pub synced_at: Option<DateTime<Utc>>,
25    pub subscriber_count: Option<f64>,
26    pub revoked: Option<bool>,
27    pub application: Option<Application>,
28    pub scopes: Option<Vec<String>>,
29}
30
31#[derive(Default, Debug, Deserialize, Serialize, Clone)]
32/// See https://discord.com/developers/docs/resources/guild#integration-account-object-integration-account-structure
33pub struct IntegrationAccount {
34    pub id: String,
35    pub name: String,
36}