use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CopilotUsageMetrics {
#[serde(rename = "day")]
pub day: String,
#[serde(rename = "total_suggestions_count", skip_serializing_if = "Option::is_none")]
pub total_suggestions_count: Option<i32>,
#[serde(rename = "total_acceptances_count", skip_serializing_if = "Option::is_none")]
pub total_acceptances_count: Option<i32>,
#[serde(rename = "total_lines_suggested", skip_serializing_if = "Option::is_none")]
pub total_lines_suggested: Option<i32>,
#[serde(rename = "total_lines_accepted", skip_serializing_if = "Option::is_none")]
pub total_lines_accepted: Option<i32>,
#[serde(rename = "total_active_users", skip_serializing_if = "Option::is_none")]
pub total_active_users: Option<i32>,
#[serde(rename = "total_chat_acceptances", skip_serializing_if = "Option::is_none")]
pub total_chat_acceptances: Option<i32>,
#[serde(rename = "total_chat_turns", skip_serializing_if = "Option::is_none")]
pub total_chat_turns: Option<i32>,
#[serde(rename = "total_active_chat_users", skip_serializing_if = "Option::is_none")]
pub total_active_chat_users: Option<i32>,
#[serde(rename = "breakdown", deserialize_with = "Option::deserialize")]
pub breakdown: Option<Vec<models::CopilotUsageMetricsBreakdownInner>>,
}
impl CopilotUsageMetrics {
pub fn new(day: String, breakdown: Option<Vec<models::CopilotUsageMetricsBreakdownInner>>) -> CopilotUsageMetrics {
CopilotUsageMetrics {
day,
total_suggestions_count: None,
total_acceptances_count: None,
total_lines_suggested: None,
total_lines_accepted: None,
total_active_users: None,
total_chat_acceptances: None,
total_chat_turns: None,
total_active_chat_users: None,
breakdown,
}
}
}