use serde::{Deserialize, Serialize};
use crate::models;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CollectionSchema {
#[serde(rename = "default_sorting_field", skip_serializing_if = "Option::is_none")]
pub default_sorting_field: Option<String>,
#[serde(rename = "enable_nested_fields", skip_serializing_if = "Option::is_none")]
pub enable_nested_fields: Option<bool>,
#[serde(rename = "fields")]
pub fields: Vec<models::Field>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "symbols_to_index", skip_serializing_if = "Option::is_none")]
pub symbols_to_index: Option<Vec<String>>,
#[serde(rename = "token_separators", skip_serializing_if = "Option::is_none")]
pub token_separators: Option<Vec<String>>,
#[serde(rename = "voice_query_model", skip_serializing_if = "Option::is_none")]
pub voice_query_model: Option<Box<models::VoiceQueryModelCollectionConfig>>,
}
impl CollectionSchema {
pub fn new(fields: Vec<models::Field>, name: String) -> CollectionSchema {
CollectionSchema {
default_sorting_field: None,
enable_nested_fields: None,
fields,
name,
symbols_to_index: None,
token_separators: None,
voice_query_model: None,
}
}
}