use super::super::*;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct CopilotBilling {
pub seat_breakdown: CopilotSeatBreakdown,
pub seat_management_setting: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub ide_chat: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_chat: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cli: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub public_code_suggestions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub plan_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct CopilotSeatBreakdown {
pub total: u32,
pub added_this_cycle: u32,
pub pending_invitation: u32,
pub pending_cancellation: u32,
pub active_this_cycle: u32,
pub inactive_this_cycle: u32,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct CopilotBillingSeats {
pub total_seats: u32,
pub seats: Vec<CopilotSeat>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct CopilotSeat {
pub created_at: DateTime<Utc>,
pub pending_cancellation_date: Option<String>,
pub last_activity_at: Option<DateTime<Utc>>,
pub last_activity_editor: Option<String>,
pub plan_type: Option<String>,
pub assignee: Option<SimpleUser>, }
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct SeatsCreated {
pub seats_created: u32,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct SeatsCancelled {
pub seats_cancelled: u32,
}