cloudreve_api/api/v4/models/
site.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Deserialize)]
7pub struct SiteConfig {
8 pub instance_id: Option<String>,
9 pub title: Option<String>,
10 pub login_captcha: Option<bool>,
11 pub reg_captcha: Option<bool>,
12 pub forget_captcha: Option<bool>,
13 pub abuse_report_captcha: Option<bool>,
14 pub themes: Option<String>,
15 pub default_theme: Option<String>,
16 pub authn: Option<bool>,
17 pub user: Option<super::auth::NewUser>,
18 pub captcha_re_captcha_key: Option<String>,
19 pub captcha_cap_instance_url: String,
20 pub captcha_cap_site_key: String,
21 pub site_notice: Option<String>,
22 pub captcha_type: Option<String>,
23 pub turnstile_site_id: Option<String>,
24 pub register_enabled: Option<bool>,
25 pub qq_enabled: Option<bool>,
26 pub sso_enabled: Option<bool>,
27 pub sso_display_name: Option<String>,
28 pub sso_icon: Option<String>,
29 pub oidc_enabled: Option<bool>,
30 pub oidc_display_name: Option<String>,
31 pub oidc_icon: Option<String>,
32 pub logo: Option<String>,
33 pub logo_light: Option<String>,
34 pub tos_url: Option<String>,
35 pub privacy_policy_url: Option<String>,
36 pub icons: Option<String>,
37 pub emoji_preset: Option<String>,
38 pub point_enabled: Option<bool>,
39 pub share_point_gain_rate: Option<f64>,
40 pub map_provider: Option<String>,
41 pub google_map_tile_type: Option<String>,
42 pub file_viewers: Option<Vec<FileViewer>>,
43 pub max_batch_size: Option<f64>,
44 pub app_promotion: Option<bool>,
45 pub app_feedback: Option<String>,
46 pub app_forum: Option<String>,
47 pub payment: Option<PaymentSetting>,
48 pub anonymous_purchase: Option<bool>,
49 pub point_price: Option<f64>,
50 pub shop_nav_enabled: Option<bool>,
51 pub storage_products: Option<Vec<StorageProduct>>,
52 pub group_skus: Option<Vec<GroupSKU>>,
53 pub thumbnail_width: Option<f64>,
54 pub thumbnail_height: Option<f64>,
55 pub custom_props: Option<Vec<CustomProps>>,
56 pub custom_nav_items: Option<Vec<CustomNavItem>>,
57 pub custom_html: Option<CustomHTML>,
58 pub mapbox_ak: Option<String>,
59 pub thumb_exts: Option<Vec<String>>,
60}
61
62#[derive(Debug, Serialize, Deserialize)]
64pub struct FileViewer {
65 pub extensions: Vec<String>,
66 pub handler: String,
67 pub name: String,
68 pub priority: i32,
69}
70
71#[derive(Debug, Serialize, Deserialize)]
73pub struct PaymentSetting {
74 pub providers: Vec<PaymentProvider>,
75}
76
77#[derive(Debug, Serialize, Deserialize)]
79pub struct PaymentProvider {
80 pub id: String,
81 pub name: String,
82 pub enabled: bool,
83}
84
85#[derive(Debug, Serialize, Deserialize)]
87pub struct StorageProduct {
88 pub id: String,
89 pub name: String,
90 pub price: f64,
91 pub storage: i64,
92}
93
94#[derive(Debug, Serialize, Deserialize)]
96pub struct GroupSKU {
97 pub id: String,
98 pub name: String,
99 pub price: f64,
100 pub group_id: String,
101}
102
103#[derive(Debug, Serialize, Deserialize)]
105pub struct CustomProps {
106 pub key: String,
107 pub name: String,
108 pub r#type: String,
109 pub options: Option<Vec<String>>,
110}
111
112#[derive(Debug, Serialize, Deserialize)]
114pub struct CustomNavItem {
115 pub icon: String,
116 pub name: String,
117 pub url: String,
118}
119
120#[derive(Debug, Serialize, Deserialize)]
122pub struct CustomHTML {
123 pub head: Option<String>,
124 pub body: Option<String>,
125}