use crate::models::ast::dialect::Annotations;
use crate::models::ast::Package;
use crate::models::File;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Query {
#[serde(rename = "extern", skip_serializing_if = "Option::is_none")]
pub r#extern: Option<File>,
pub query: String,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dialect: Option<crate::models::ast::Dialect>,
#[serde(skip_serializing_if = "Option::is_none")]
pub now: Option<String>,
}
impl Query {
pub fn new(query: String) -> Self {
Self {
query,
..Default::default()
}
}
}
impl Default for Query {
fn default() -> Self {
Self {
r#extern: None,
query: String::from(""),
r#type: None,
dialect: Some(crate::models::ast::Dialect {
annotations: vec![
Annotations::Datatype,
Annotations::Group,
Annotations::Default,
],
..Default::default()
}),
now: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum Type {
Flux,
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct FluxSuggestion {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub params: Option<HashMap<String, String>>,
}
impl FluxSuggestion {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct FluxSuggestions {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub funcs: Vec<crate::models::FluxSuggestion>,
}
impl FluxSuggestions {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct AnalyzeQueryResponse {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub errors: Vec<AnalyzeQueryResponseErrors>,
}
impl AnalyzeQueryResponse {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct AnalyzeQueryResponseErrors {
#[serde(skip_serializing_if = "Option::is_none")]
pub line: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub column: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub character: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
impl AnalyzeQueryResponseErrors {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct AstResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub ast: Option<Package>,
}
impl AstResponse {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct LanguageRequest {
pub query: String,
}
impl LanguageRequest {
pub fn new(query: String) -> Self {
Self { query }
}
}