uapi_sdk_rust/models/generated/
post_search_aggregate_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PostSearchAggregateRequest {
16 #[serde(rename = "query")]
18 pub query: String,
19 #[serde(rename = "site", skip_serializing_if = "Option::is_none")]
21 pub site: Option<String>,
22 #[serde(rename = "filetype", skip_serializing_if = "Option::is_none")]
24 pub filetype: Option<String>,
25 #[serde(rename = "fetch_full", skip_serializing_if = "Option::is_none")]
27 pub fetch_full: Option<bool>,
28 #[serde(rename = "sort", skip_serializing_if = "Option::is_none")]
30 pub sort: Option<Sort>,
31 #[serde(rename = "time_range", skip_serializing_if = "Option::is_none")]
33 pub time_range: Option<TimeRange>,
34}
35
36impl PostSearchAggregateRequest {
37 pub fn new(query: String) -> PostSearchAggregateRequest {
38 PostSearchAggregateRequest {
39 query,
40 site: None,
41 filetype: None,
42 fetch_full: None,
43 sort: None,
44 time_range: None,
45 }
46 }
47}
48#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum Sort {
51 #[serde(rename = "relevance")]
52 Relevance,
53 #[serde(rename = "date")]
54 Date,
55}
56
57impl Default for Sort {
58 fn default() -> Sort {
59 Self::Relevance
60 }
61}
62#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
64pub enum TimeRange {
65 #[serde(rename = "day")]
66 Day,
67 #[serde(rename = "week")]
68 Week,
69 #[serde(rename = "month")]
70 Month,
71 #[serde(rename = "year")]
72 Year,
73}
74
75impl Default for TimeRange {
76 fn default() -> TimeRange {
77 Self::Day
78 }
79}
80