Skip to main content

uapi_sdk_rust/models/generated/
post_search_aggregate_request.rs

1/*
2 * UAPI
3 *
4 * UAPI 官方接口文档
5 *
6 * The version of the OpenAPI document: 1.0.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PostSearchAggregateRequest {
16    /// 搜索查询关键词,支持中英文
17    #[serde(rename = "query")]
18    pub query: String,
19    /// 限制搜索特定网站,不需要 `site:` 前缀
20    #[serde(rename = "site", skip_serializing_if = "Option::is_none")]
21    pub site: Option<String>,
22    /// 限制文件类型,不需要 `filetype:` 前缀。支持 pdf、doc、docx、ppt、pptx、xls、xlsx、txt 等
23    #[serde(rename = "filetype", skip_serializing_if = "Option::is_none")]
24    pub filetype: Option<String>,
25    /// 是否获取页面完整正文(会影响响应时间)
26    #[serde(rename = "fetch_full", skip_serializing_if = "Option::is_none")]
27    pub fetch_full: Option<bool>,
28    /// 请求超时时间(毫秒),范围 1000-30000
29    #[serde(rename = "timeout_ms", skip_serializing_if = "Option::is_none")]
30    pub timeout_ms: Option<i32>,
31    /// 排序方式
32    #[serde(rename = "sort", skip_serializing_if = "Option::is_none")]
33    pub sort: Option<Sort>,
34    /// 时间范围过滤
35    #[serde(rename = "time_range", skip_serializing_if = "Option::is_none")]
36    pub time_range: Option<TimeRange>,
37}
38
39impl PostSearchAggregateRequest {
40    pub fn new(query: String) -> PostSearchAggregateRequest {
41        PostSearchAggregateRequest {
42            query,
43            site: None,
44            filetype: None,
45            fetch_full: None,
46            timeout_ms: None,
47            sort: None,
48            time_range: None,
49        }
50    }
51}
52/// 排序方式
53#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
54pub enum Sort {
55    #[serde(rename = "relevance")]
56    Relevance,
57    #[serde(rename = "date")]
58    Date,
59}
60
61impl Default for Sort {
62    fn default() -> Sort {
63        Self::Relevance
64    }
65}
66/// 时间范围过滤
67#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
68pub enum TimeRange {
69    #[serde(rename = "day")]
70    Day,
71    #[serde(rename = "week")]
72    Week,
73    #[serde(rename = "month")]
74    Month,
75    #[serde(rename = "year")]
76    Year,
77}
78
79impl Default for TimeRange {
80    fn default() -> TimeRange {
81        Self::Day
82    }
83}
84