Skip to main content

cloudreve_sdk_api/models/
site.rs

1use crate::models::user::User;
2use crate::models::vas::{GroupSku, PaymentSetting, StorageProduct};
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6/// Captcha type
7#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(rename_all = "lowercase")]
9pub enum CaptchaType {
10    Normal,
11    Recaptcha,
12    Tcaptcha,
13    Turnstile,
14    Cap,
15}
16
17/// Site configuration
18#[derive(Debug, Clone, Serialize, Deserialize, Default)]
19pub struct SiteConfig {
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub instance_id: Option<String>,
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub title: Option<String>,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub login_captcha: Option<bool>,
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub reg_captcha: Option<bool>,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub forget_captcha: Option<bool>,
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub abuse_report_captcha: Option<bool>,
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub themes: Option<String>,
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub default_theme: Option<String>,
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub authn: Option<bool>,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub user: Option<User>,
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub captcha_re_captcha_key: Option<String>,
42    #[serde(skip_serializing_if = "Option::is_none")]
43    pub site_notice: Option<String>,
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub captcha_type: Option<CaptchaType>,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub turnstile_site_id: Option<String>,
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub captcha_cap_instance_url: Option<String>,
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub captcha_cap_site_key: Option<String>,
52    #[serde(skip_serializing_if = "Option::is_none")]
53    pub captcha_cap_secret_key: Option<String>,
54    #[serde(skip_serializing_if = "Option::is_none")]
55    pub captcha_cap_asset_server: Option<String>,
56    #[serde(skip_serializing_if = "Option::is_none")]
57    pub register_enabled: Option<bool>,
58    #[serde(skip_serializing_if = "Option::is_none")]
59    pub qq_enabled: Option<bool>,
60    #[serde(skip_serializing_if = "Option::is_none")]
61    pub sso_enabled: Option<bool>,
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub sso_display_name: Option<String>,
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub sso_icon: Option<String>,
66    #[serde(skip_serializing_if = "Option::is_none")]
67    pub oidc_enabled: Option<bool>,
68    #[serde(skip_serializing_if = "Option::is_none")]
69    pub oidc_display_name: Option<String>,
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub oidc_icon: Option<String>,
72    #[serde(skip_serializing_if = "Option::is_none")]
73    pub logo: Option<String>,
74    #[serde(skip_serializing_if = "Option::is_none")]
75    pub logo_light: Option<String>,
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub tos_url: Option<String>,
78    #[serde(skip_serializing_if = "Option::is_none")]
79    pub privacy_policy_url: Option<String>,
80    #[serde(skip_serializing_if = "Option::is_none")]
81    pub icons: Option<String>,
82    #[serde(skip_serializing_if = "Option::is_none")]
83    pub emoji_preset: Option<String>,
84    #[serde(skip_serializing_if = "Option::is_none")]
85    pub point_enabled: Option<bool>,
86    #[serde(skip_serializing_if = "Option::is_none")]
87    pub share_point_gain_rate: Option<f64>,
88    #[serde(skip_serializing_if = "Option::is_none")]
89    pub map_provider: Option<String>,
90    #[serde(skip_serializing_if = "Option::is_none")]
91    pub mapbox_ak: Option<String>,
92    #[serde(skip_serializing_if = "Option::is_none")]
93    pub google_map_tile_type: Option<String>,
94    #[serde(skip_serializing_if = "Option::is_none")]
95    pub max_batch_size: Option<i32>,
96    #[serde(skip_serializing_if = "Option::is_none")]
97    pub app_promotion: Option<bool>,
98    #[serde(skip_serializing_if = "Option::is_none")]
99    pub app_feedback: Option<String>,
100    #[serde(skip_serializing_if = "Option::is_none")]
101    pub app_forum: Option<String>,
102    #[serde(skip_serializing_if = "Option::is_none")]
103    pub payment: Option<PaymentSetting>,
104    #[serde(skip_serializing_if = "Option::is_none")]
105    pub anonymous_purchase: Option<bool>,
106    #[serde(skip_serializing_if = "Option::is_none")]
107    pub point_price: Option<i32>,
108    #[serde(skip_serializing_if = "Option::is_none")]
109    pub shop_nav_enabled: Option<bool>,
110    #[serde(skip_serializing_if = "Option::is_none")]
111    pub storage_products: Option<Vec<StorageProduct>>,
112    #[serde(skip_serializing_if = "Option::is_none")]
113    pub group_skus: Option<Vec<GroupSku>>,
114    #[serde(skip_serializing_if = "Option::is_none")]
115    pub thumbnail_width: Option<i32>,
116    #[serde(skip_serializing_if = "Option::is_none")]
117    pub thumbnail_height: Option<i32>,
118    #[serde(skip_serializing_if = "Option::is_none")]
119    pub thumb_exts: Option<Vec<String>>,
120    #[serde(skip_serializing_if = "Option::is_none")]
121    pub show_encryption_status: Option<bool>,
122}
123
124/// Captcha response
125#[derive(Debug, Clone, Serialize, Deserialize, Default)]
126pub struct CaptchaResponse {
127    pub ticket: String,
128    pub image: String,
129}
130
131/// Create abuse report service
132#[derive(Debug, Clone, Serialize, Deserialize)]
133pub struct CreateAbuseReportService {
134    #[serde(skip_serializing_if = "Option::is_none")]
135    pub file_uri: Option<String>,
136    pub category: i32,
137    pub description: String,
138    #[serde(skip_serializing_if = "Option::is_none")]
139    pub share_id: Option<String>,
140    #[serde(skip_serializing_if = "Option::is_none")]
141    pub user_id: Option<String>,
142    #[serde(flatten)]
143    pub captcha: Option<HashMap<String, serde_json::Value>>,
144}