use crate::models::PartialGuild;
use chrono::{DateTime, Utc};
use serde::Serialize;
#[cfg(feature = "utoipa")]
use utoipa::ToSchema;
#[cfg(feature = "client")]
use serde::Deserialize;
#[derive(Clone, Debug, Serialize)]
#[cfg_attr(feature = "client", derive(Deserialize))]
#[cfg_attr(feature = "utoipa", derive(ToSchema))]
#[cfg_attr(feature = "bincode", derive(bincode::Encode, bincode::Decode))]
pub struct Invite {
pub code: String,
pub inviter_id: u64,
pub guild: Option<PartialGuild>,
pub guild_id: u64,
#[cfg_attr(feature = "bincode", bincode(with_serde))]
pub created_at: DateTime<Utc>,
pub uses: u32,
pub max_uses: u32,
pub max_age: u32,
}