use crate::entity::BusinessDataApiBusinessItem;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BusinessDataApiBusinessListingsSearchRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub categories: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_claimed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location_coordinate: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub order_by: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BusinessDataApiBusinessListingsSearchRequest {
pub fn new() -> Self {
BusinessDataApiBusinessListingsSearchRequest::default()
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BusinessDataApiCategoriesAggregationRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub categories: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_claimed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location_coordinate: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_dataset_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BusinessDataApiCategoriesAggregationRequest {
pub fn new() -> Self {
BusinessDataApiCategoriesAggregationRequest::default()
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BusinessDataApiBusinessListingsLocation {
pub location_name: Option<String>,
pub country_iso_code: Option<String>,
pub business_count: Option<i64>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BusinessDataApiBusinessListingsCategory {
pub category_name: Option<String>,
pub business_count: Option<i64>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BusinessDataApiBusinessListingsSearchResult {
pub total_count: Option<i64>,
pub count: Option<i64>,
pub offset: Option<i32>,
pub offset_token: Option<String>,
pub items_count: Option<i64>,
pub items: Option<Vec<BusinessDataApiBusinessItem>>,
}
impl BusinessDataApiBusinessListingsSearchResult {
pub fn items(&self) -> &[BusinessDataApiBusinessItem] {
self.items.as_deref().unwrap_or_default()
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BusinessDataApiCategoriesAggregationResult {
pub total_count: Option<i64>,
pub count: Option<i64>,
pub offset: Option<i32>,
pub offset_token: Option<String>,
pub items_count: Option<i64>,
pub items: Option<Vec<BusinessDataApiCategoryAggregationItem>>,
}
impl BusinessDataApiCategoriesAggregationResult {
pub fn items(&self) -> &[BusinessDataApiCategoryAggregationItem] {
self.items.as_deref().unwrap_or_default()
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BusinessDataApiCategoryAggregationItem {
#[serde(rename = "type")]
pub item_type: Option<String>,
pub category: Option<String>,
pub categories: Option<Vec<String>>,
pub count: Option<i64>,
pub aggregation: Option<Value>,
}