use crate::models::{Snowflake, Timestamp, channel::Channel};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct Guild {
#[serde(default)]
pub id: Snowflake,
#[serde(default)]
pub name: String,
#[serde(default)]
pub icon: String,
#[serde(default)]
pub owner_id: Snowflake,
#[serde(rename = "owner")]
#[serde(default)]
pub is_owner: bool,
#[serde(default)]
pub member_count: i32,
#[serde(default)]
pub max_members: i64,
#[serde(default)]
pub description: String,
#[serde(default)]
pub joined_at: Timestamp,
#[serde(default)]
pub channels: Vec<Channel>,
#[serde(default)]
pub union_world_id: String,
#[serde(default)]
pub union_org_id: String,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub op_user_id: Snowflake,
}