pdd/requests/
pdd_ticket_sku_rule_add.rs

1use crate::Request;
2
3use serde::{Deserialize, Serialize};
4
5
6/// 供应商新增商品规则
7#[derive(Serialize, Deserialize, Debug, Default)]
8pub struct TravelerInfoLimitation {
9    
10    /// 游玩人证件
11    #[serde(rename = "credential")]
12    pub credential: Option<i32>,
13    
14    /// 游玩人名字
15    #[serde(rename = "name")]
16    pub name: Option<i32>,
17    
18    /// 出游人信息设置
19    #[serde(rename = "traveler_required")]
20    pub traveler_required: Option<i32>,
21    
22}
23
24/// 供应商新增商品规则
25#[derive(Serialize, Deserialize, Debug, Default)]
26pub struct ProviderContactInfo {
27    
28    /// 服务时间
29    #[serde(rename = "provider_business_hour")]
30    pub provider_business_hour: Option<Vec<ProviderBusinessHour>>,
31    
32    /// 服务商名称
33    #[serde(rename = "provider_name")]
34    pub provider_name: Option<String>,
35    
36    /// 服务商联系电话
37    #[serde(rename = "provider_telephone")]
38    pub provider_telephone: Option<String>,
39    
40}
41
42/// 供应商新增商品规则
43#[derive(Serialize, Deserialize, Debug, Default)]
44pub struct TicketTime {
45    
46    /// 备注
47    #[serde(rename = "comment")]
48    pub comment: Option<String>,
49    
50    /// 换票结束时间
51    #[serde(rename = "end_at")]
52    pub end_at: Option<String>,
53    
54    /// 换票开始时间
55    #[serde(rename = "start_at")]
56    pub start_at: Option<String>,
57    
58}
59
60/// 供应商新增商品规则
61#[derive(Serialize, Deserialize, Debug, Default)]
62pub struct RefundRules {
63    
64    /// 游玩日 0 点提前 或之后分钟数
65    #[serde(rename = "ahead_time")]
66    pub ahead_time: Option<i32>,
67    
68    /// 扣费值
69    #[serde(rename = "deduction_fee")]
70    pub deduction_fee: Option<i32>,
71    
72    /// 费率单位
73    #[serde(rename = "deduction_unit")]
74    pub deduction_unit: Option<i32>,
75    
76    /// 规则类型
77    #[serde(rename = "type")]
78    pub type_: Option<i32>,
79    
80}
81
82/// 供应商新增商品规则
83#[derive(Serialize, Deserialize, Debug, Default)]
84pub struct PddTicketSkuRuleAdd {
85    
86    /// 下单人信息设置
87    #[serde(rename = "booker_info_limitation")]
88    pub booker_info_limitation: Option<BookerInfoLimitation>,
89    
90    /// 预定须知
91    #[serde(rename = "booking_notice")]
92    pub booking_notice: Option<BookingNotice>,
93    
94    /// 下单限制
95    #[serde(rename = "order_limitation")]
96    pub order_limitation: Option<OrderLimitation>,
97    
98    /// 商户rule ID
99    #[serde(rename = "out_rule_id")]
100    pub out_rule_id: Option<String>,
101    
102    /// 服务商联系方式
103    #[serde(rename = "provider_contact_info")]
104    pub provider_contact_info: Option<ProviderContactInfo>,
105    
106    /// 退款规则
107    #[serde(rename = "refund_limitations")]
108    pub refund_limitations: Option<RefundLimitations>,
109    
110    /// 商户rule 名称
111    #[serde(rename = "rule_name")]
112    pub rule_name: Option<String>,
113    
114    /// 游玩人信息
115    #[serde(rename = "traveler_info_limitation")]
116    pub traveler_info_limitation: Option<TravelerInfoLimitation>,
117    
118    /// 卡券有效期设置
119    #[serde(rename = "valid_limitation")]
120    pub valid_limitation: Option<ValidLimitation>,
121    
122}
123
124/// 供应商新增商品规则
125#[derive(Serialize, Deserialize, Debug, Default)]
126pub struct BookerInfoLimitation {
127    
128    /// 需要下单人信息
129    #[serde(rename = "booker_required")]
130    pub booker_required: Option<i32>,
131    
132    /// 下单人手机
133    #[serde(rename = "mobile")]
134    pub mobile: Option<i32>,
135    
136}
137
138/// 供应商新增商品规则
139#[derive(Serialize, Deserialize, Debug, Default)]
140pub struct EnterTime {
141    
142    /// 备注
143    #[serde(rename = "comment")]
144    pub comment: Option<String>,
145    
146    /// 入园结束时间
147    #[serde(rename = "end_at")]
148    pub end_at: Option<String>,
149    
150    /// 入园开始时间
151    #[serde(rename = "start_at")]
152    pub start_at: Option<String>,
153    
154}
155
156/// 供应商新增商品规则
157#[derive(Serialize, Deserialize, Debug, Default)]
158pub struct OrderLimitation {
159    
160    /// 周期长度
161    #[serde(rename = "cycle_length")]
162    pub cycle_length: Option<i32>,
163    
164    /// 限制类型
165    #[serde(rename = "limitation_type")]
166    pub limitation_type: Option<i32>,
167    
168    /// 周期类型
169    #[serde(rename = "limit_cycle")]
170    pub limit_cycle: Option<i32>,
171    
172    /// 限购数量
173    #[serde(rename = "limit_num")]
174    pub limit_num: Option<i32>,
175    
176}
177
178/// 供应商新增商品规则
179#[derive(Serialize, Deserialize, Debug, Default)]
180pub struct BookingNotice {
181    
182    /// 入园地址
183    #[serde(rename = "enter_address")]
184    pub enter_address: Option<String>,
185    
186    /// 入园时间
187    #[serde(rename = "enter_time")]
188    pub enter_time: Option<Vec<EnterTime>>,
189    
190    /// 入园方式
191    #[serde(rename = "enter_ways")]
192    pub enter_ways: Option<String>,
193    
194    /// 补充说明
195    #[serde(rename = "extra_desc")]
196    pub extra_desc: Option<String>,
197    
198    /// 费用包含
199    #[serde(rename = "fee_include")]
200    pub fee_include: Option<String>,
201    
202    /// 费用不包含
203    #[serde(rename = "fee_not_include")]
204    pub fee_not_include: Option<String>,
205    
206    /// 重要提示
207    #[serde(rename = "important_notice")]
208    pub important_notice: Option<String>,
209    
210    /// 通关限制时间
211    #[serde(rename = "pass_time_limit")]
212    pub pass_time_limit: Option<i32>,
213    
214    /// 换票地址
215    #[serde(rename = "ticket_place")]
216    pub ticket_place: Option<String>,
217    
218    /// 换票时间
219    #[serde(rename = "ticket_time")]
220    pub ticket_time: Option<Vec<TicketTime>>,
221    
222}
223
224/// 供应商新增商品规则
225#[derive(Serialize, Deserialize, Debug, Default)]
226pub struct RefundLimitations {
227    
228    /// 是否可退
229    #[serde(rename = "is_refundable")]
230    pub is_refundable: Option<i32>,
231    
232    /// 退款规则
233    #[serde(rename = "refund_rules")]
234    pub refund_rules: Option<Vec<RefundRules>>,
235    
236}
237
238/// 供应商新增商品规则
239#[derive(Serialize, Deserialize, Debug, Default)]
240pub struct ValidLimitation {
241    
242    /// 天数内有效
243    #[serde(rename = "days_time")]
244    pub days_time: Option<i32>,
245    
246    /// 结束时间
247    #[serde(rename = "end_time")]
248    pub end_time: Option<i64>,
249    
250    /// 开始时间
251    #[serde(rename = "start_time")]
252    pub start_time: Option<i64>,
253    
254    /// 有效期时间类型
255    #[serde(rename = "time_type")]
256    pub time_type: Option<i32>,
257    
258}
259
260/// 供应商新增商品规则
261#[derive(Serialize, Deserialize, Debug, Default)]
262pub struct ProviderBusinessHour {
263    
264    /// 结束时间
265    #[serde(rename = "close_at")]
266    pub close_at: Option<String>,
267    
268    /// 开始时间
269    #[serde(rename = "open_at")]
270    pub open_at: Option<String>,
271    
272    /// 描述
273    #[serde(rename = "time_info")]
274    pub time_info: Option<String>,
275    
276}
277
278
279/// 供应商新增商品规则
280impl Request for PddTicketSkuRuleAdd {
281    fn get_type() -> String {
282        "pdd.ticket.sku.rule.add".to_string()
283    }
284
285    fn get_response_name() -> String {
286        "response".to_string()
287    }
288}