cloudreve_sdk_api/models/
site.rs1use crate::models::user::User;
2use crate::models::vas::{GroupSku, PaymentSetting, StorageProduct};
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6#[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#[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#[derive(Debug, Clone, Serialize, Deserialize, Default)]
126pub struct CaptchaResponse {
127 pub ticket: String,
128 pub image: String,
129}
130
131#[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}