polyphony_types/entities/
integration.rs1use 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)]
10pub 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)]
32pub struct IntegrationAccount {
34 pub id: String,
35 pub name: String,
36}