use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone, Default)]
pub struct Team {
#[serde(default)]
pub id: String,
#[serde(default)]
pub name: String,
#[serde(default)]
pub members: Vec<UserInfo>,
#[serde(default)]
pub owners: Vec<UserInfo>,
#[serde(default)]
pub idp_managed: bool,
#[serde(default)]
pub created: String,
#[serde(default)]
pub updated: String,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct CreateTeamRequest {
pub name: String,
pub members: Vec<String>, pub owners: Vec<String>, }
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct CreateTeamResponse {
pub team: Team,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct UpdateTeamRequest {
pub name: Option<String>,
pub members: Option<Vec<String>>,
pub owners: Option<Vec<String>>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct UpdateTeamResponse {
pub team: Team,
}
#[derive(Debug, Deserialize, Serialize, Clone, Default)]
pub struct UserInfo {
pub id: String,
pub email: String,
}
#[derive(Debug, Serialize, Clone)]
pub struct TeamErrorResponse {
pub error: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub suggestions: Option<Vec<String>>,
}
#[derive(Debug, Deserialize, Clone)]
pub struct GetTeamParams {
#[serde(default)]
pub by_id: bool,
}