use serde::{Deserialize, Serialize};
use crate::prelude::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "candid", derive(candid::CandidType))]
pub enum AggregateFunction {
Count(Option<String>),
Sum(String),
Avg(String),
Min(String),
Max(String),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "candid", derive(candid::CandidType))]
pub enum AggregatedValue {
Count(u64),
Sum(Value),
Avg(Value),
Min(Value),
Max(Value),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "candid", derive(candid::CandidType))]
pub struct AggregatedRow {
pub group_keys: Vec<Value>,
pub values: Vec<AggregatedValue>,
}