openapi-rs 0.1.4

A type-safe Rust client library for building, signing, and sending API requests with minimal boilerplate
Documentation
use derive_more::Display;
use serde::{Deserialize, Serialize};

#[derive(Debug, Default, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct Merchandise {
    #[serde(rename = "Id")]
    pub id: String,
    #[serde(rename = "Name")]
    pub name: String,
    #[serde(rename = "ChargeType")]
    pub charge_type: ChargeType,
    #[serde(rename = "UnitPrice")]
    pub unit_price: f64,
    #[serde(rename = "QuantityUnit")]
    pub quantity_unit: String,
    #[serde(rename = "Formula")]
    pub formula: String,
    #[serde(rename = "YSProduct")]
    pub ys_product: String,
    #[serde(rename = "OutResourceId")]
    pub out_resource_id: String,
    #[serde(rename = "PublishState")]
    pub publish_state: PublishState,
    #[serde(rename = "Description")]
    pub description: String,
}

#[derive(Debug, Default, Display, Clone, Serialize, Deserialize)]
pub enum ChargeType {
    #[default]
    Unknown,
    PrePaid,
    PostPaid,
}

#[derive(Debug, Default, Display, Clone, Serialize, Deserialize)]
pub enum PublishState {
    #[default]
    Unknown,
    Up,
    Down,
}

#[derive(Debug, Default, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct SpecialPrice {
    #[serde(rename = "MerchandiseId")]
    pub merchandise_id: String,
    #[serde(rename = "AccountId")]
    pub account_id: String,
    #[serde(rename = "UnitPrice")]
    pub unit_price: f64,
}

#[derive(Debug, Default, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct Order {
    #[serde(rename = "Id")]
    pub id: String,
    #[serde(rename = "MerchandiseId")]
    pub merchandise_id: String,
    #[serde(rename = "AccountId")]
    pub account_id: String,
    #[serde(rename = "Quantity")]
    pub quantity: f64,
    #[serde(rename = "Comment")]
    pub comment: String,
    #[serde(rename = "ChargeType")]
    pub charge_type: ChargeType,
    #[serde(rename = "CreateTime")]
    pub create_time: String,
}