cscart_rs/types/
order.rs

1use crate::utils::serde_utils::deserialize_string_or_int_to_i32;
2use serde::{Deserialize, Serialize};
3
4#[derive(Deserialize, Serialize, Debug)]
5pub struct Order {
6    #[serde(deserialize_with = "deserialize_string_or_int_to_i32")]
7    pub order_id: i32,
8    pub issuer_id: Option<String>,
9    pub user_id: Option<String>,
10    pub is_parent_order: Option<String>,
11    pub parent_order_id: Option<String>,
12    pub company_id: Option<String>,
13    pub timestamp: Option<String>,
14    pub firstname: Option<String>,
15    pub lastname: Option<String>,
16    pub email: Option<String>,
17    pub phone: Option<String>,
18    pub status: Option<String>,
19    pub total: Option<String>,
20    pub invoice_id: Option<String>,
21    pub credit_memo_id: Option<String>,
22    pub points: Option<String>,
23    #[serde(flatten)]
24    pub shipping_address: ShippingAddress,
25    #[serde(flatten)]
26    pub billing_address: BillingAddress,
27}
28
29#[derive(Deserialize, Serialize, Debug)]
30pub struct OrderDetails {
31    #[serde(flatten)]
32    pub order: Order,
33    #[serde(flatten)]
34    pub shipping_address: ShippingAddress,
35    #[serde(flatten)]
36    pub billing_address: BillingAddress,
37}
38
39#[derive(Serialize, Deserialize, Debug)]
40pub struct ShippingAddress {
41    pub s_address: Option<String>,
42    pub s_adddress_2: Option<String>,
43    pub s_city: Option<String>,
44    pub s_country: Option<String>,
45    pub s_country_descr: Option<String>,
46    pub s_firstname: Option<String>,
47    pub s_lastname: Option<String>,
48    pub s_phone: Option<String>,
49    pub s_state: Option<String>,
50    pub s_state_descr: Option<String>,
51    pub s_zipcode: Option<String>,
52}
53
54#[derive(Serialize, Deserialize, Debug)]
55pub struct BillingAddress {
56    pub b_address: Option<String>,
57    pub b_adddress_2: Option<String>,
58    pub b_city: Option<String>,
59    pub b_country: Option<String>,
60    pub b_country_descr: Option<String>,
61    pub b_firstname: Option<String>,
62    pub b_lastname: Option<String>,
63    pub b_phone: Option<String>,
64    pub b_state: Option<String>,
65    pub b_state_descr: Option<String>,
66    pub b_zipcode: Option<String>,
67}