cloudreve_sdk_api/models/
vas.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(rename_all = "snake_case")]
6pub enum PaymentStatus {
7 Created,
8 Paid,
9 Fulfilled,
10 FulfillFailed,
11 Canceled,
12}
13
14#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
16pub enum ProductType {
17 DoNotUse = 0,
18 ShareLink = 1,
19 Group = 2,
20 Storage = 3,
21 Points = 4,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "lowercase")]
27pub enum PaymentProviderType {
28 Stripe,
29 Weixin,
30 Alipay,
31 Points,
32 Custom,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct Payment {
38 pub id: String,
39 pub trade_no: String,
40 pub name: String,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub status: Option<PaymentStatus>,
43 pub qyt: i32,
44 #[serde(skip_serializing_if = "Option::is_none")]
45 pub price_unit: Option<i64>,
46 #[serde(skip_serializing_if = "Option::is_none")]
47 pub price_id: Option<String>,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub price_one_unit: Option<i64>,
50 pub created_at: String,
51 pub updated_at: String,
52 pub product_type: i32,
53 #[serde(skip_serializing_if = "Option::is_none")]
54 pub ticket: Option<String>,
55 #[serde(skip_serializing_if = "Option::is_none")]
56 pub price_mark: Option<String>,
57}
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
61pub struct PaymentSetting {
62 pub currency_code: String,
63 pub currency_mark: String,
64 pub currency_unit: i32,
65 pub providers: Vec<PaymentProvider>,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
70pub struct PaymentProvider {
71 pub id: String,
72 pub name: String,
73 #[serde(rename = "type")]
74 pub provider_type: String,
75 #[serde(skip_serializing_if = "Option::is_none")]
76 pub secret_key: Option<String>,
77 #[serde(skip_serializing_if = "Option::is_none")]
78 pub app_id: Option<String>,
79 #[serde(skip_serializing_if = "Option::is_none")]
80 pub public_key: Option<String>,
81 #[serde(skip_serializing_if = "Option::is_none")]
82 pub merchant_id: Option<String>,
83 #[serde(skip_serializing_if = "Option::is_none")]
84 pub certificate_serial: Option<String>,
85 #[serde(skip_serializing_if = "Option::is_none")]
86 pub api_private_key: Option<String>,
87 #[serde(skip_serializing_if = "Option::is_none")]
88 pub endpoint: Option<String>,
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize)]
93pub struct ProductParameter {
94 #[serde(rename = "type")]
95 pub product_type: ProductType,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub share_link_id: Option<String>,
98 #[serde(skip_serializing_if = "Option::is_none")]
99 pub sku_id: Option<String>,
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104pub struct CreatePaymentArgs {
105 pub product: ProductParameter,
106 pub quantity: i32,
107 #[serde(skip_serializing_if = "Option::is_none")]
108 pub provider_id: Option<String>,
109 #[serde(skip_serializing_if = "Option::is_none")]
110 pub email: Option<String>,
111 #[serde(skip_serializing_if = "Option::is_none")]
112 pub language: Option<String>,
113}
114
115#[derive(Debug, Clone, Serialize, Deserialize)]
117pub struct PaymentRequest {
118 pub payment_needed: bool,
119 #[serde(skip_serializing_if = "Option::is_none")]
120 pub url: Option<String>,
121 #[serde(skip_serializing_if = "Option::is_none")]
122 pub qr_code_preferred: Option<bool>,
123}
124
125#[derive(Debug, Clone, Serialize, Deserialize)]
127pub struct CreatePaymentResponse {
128 pub payment: Payment,
129 pub request: PaymentRequest,
130}
131
132#[derive(Debug, Clone, Serialize, Deserialize)]
134pub struct StorageProduct {
135 pub id: String,
136 pub name: String,
137 pub size: i64,
138 pub time: i64,
139 pub price: i64,
140 #[serde(skip_serializing_if = "Option::is_none")]
141 pub chip: Option<String>,
142 #[serde(skip_serializing_if = "Option::is_none")]
143 pub points: Option<i32>,
144}
145
146#[derive(Debug, Clone, Serialize, Deserialize)]
148pub struct GroupSku {
149 pub id: String,
150 pub name: String,
151 pub price: i64,
152 pub points: i32,
153 pub time: i64,
154 pub chip: String,
155 pub des: Vec<String>,
156}
157
158#[derive(Debug, Clone, Serialize, Deserialize)]
160pub struct GiftCode {
161 pub id: i32,
162 pub created_at: String,
163 pub updated_at: String,
164 pub code: String,
165 pub used: bool,
166 pub qyt: i32,
167 pub used_by: i32,
168 pub product_props: ProductParameter,
169 #[serde(skip_serializing_if = "Option::is_none")]
170 pub user_hash_id: Option<String>,
171}
172
173#[derive(Debug, Clone, Serialize, Deserialize)]
175pub struct GenerateRedeemsService {
176 pub num: i32,
177 pub product: ProductParameter,
178 pub qyt: i32,
179}
180
181#[derive(Debug, Clone, Serialize, Deserialize)]
183pub struct DeleteGiftCodeService {
184 pub id: i32,
185}
186