use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub struct WorkspaceReference {
pub gid: String,
#[serde(default)]
pub name: Option<String>,
#[serde(default)]
pub resource_type: Option<String>,
}
impl WorkspaceReference {
#[must_use]
pub fn label(&self) -> String {
self.name.clone().unwrap_or_else(|| self.gid.clone())
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub struct Workspace {
pub gid: String,
pub name: String,
#[serde(default)]
pub resource_type: Option<String>,
#[serde(default)]
pub email_domains: Vec<String>,
#[serde(default)]
pub is_organization: bool,
}
#[derive(Debug, Clone, Default)]
pub struct WorkspaceListParams {
pub limit: Option<usize>,
}