lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

trade_product.rs (5769B)


      1 use radroots_types::types::{IResult, IResultList};
      2 use serde::{Deserialize, Serialize};
      3 use serde_json::Value;
      4 #[derive(Serialize, Deserialize)]
      5 pub struct TradeProduct {
      6     pub id: String,
      7     pub created_at: String,
      8     pub updated_at: String,
      9     pub key: String,
     10     pub category: String,
     11     pub title: String,
     12     pub summary: String,
     13     pub process: String,
     14     pub lot: String,
     15     pub profile: String,
     16     pub year: i64,
     17     pub qty_amt: f64,
     18     pub qty_amt_exact: Option<String>,
     19     pub qty_unit: String,
     20     pub qty_label: Option<String>,
     21     pub qty_avail: Option<i64>,
     22     pub price_amt: f64,
     23     pub price_amt_exact: Option<String>,
     24     pub price_currency: String,
     25     pub price_qty_amt: f64,
     26     pub price_qty_amt_exact: Option<String>,
     27     pub price_qty_unit: String,
     28     pub listing_addr: Option<String>,
     29     pub primary_bin_id: Option<String>,
     30     pub verified_primary_bin_id: Option<String>,
     31     pub notes: Option<String>,
     32 }
     33 #[derive(Clone, Deserialize, Serialize)]
     34 pub struct ITradeProductFields {
     35     pub key: String,
     36     pub category: String,
     37     pub title: String,
     38     pub summary: String,
     39     pub process: String,
     40     pub lot: String,
     41     pub profile: String,
     42     pub year: i64,
     43     pub qty_amt: f64,
     44     pub qty_amt_exact: String,
     45     pub qty_unit: String,
     46     pub qty_label: Option<String>,
     47     pub qty_avail: Option<i64>,
     48     pub price_amt: f64,
     49     pub price_amt_exact: String,
     50     pub price_currency: String,
     51     pub price_qty_amt: f64,
     52     pub price_qty_amt_exact: String,
     53     pub price_qty_unit: String,
     54     pub listing_addr: Option<String>,
     55     pub primary_bin_id: Option<String>,
     56     pub verified_primary_bin_id: Option<String>,
     57     pub notes: Option<String>,
     58 }
     59 #[derive(Clone, Deserialize, Serialize)]
     60 pub struct ITradeProductFieldsPartial {
     61     pub key: Option<serde_json::Value>,
     62     pub category: Option<serde_json::Value>,
     63     pub title: Option<serde_json::Value>,
     64     pub summary: Option<serde_json::Value>,
     65     pub process: Option<serde_json::Value>,
     66     pub lot: Option<serde_json::Value>,
     67     pub profile: Option<serde_json::Value>,
     68     pub year: Option<serde_json::Value>,
     69     pub qty_amt: Option<serde_json::Value>,
     70     pub qty_amt_exact: Option<serde_json::Value>,
     71     pub qty_unit: Option<serde_json::Value>,
     72     pub qty_label: Option<serde_json::Value>,
     73     pub qty_avail: Option<serde_json::Value>,
     74     pub price_amt: Option<serde_json::Value>,
     75     pub price_amt_exact: Option<serde_json::Value>,
     76     pub price_currency: Option<serde_json::Value>,
     77     pub price_qty_amt: Option<serde_json::Value>,
     78     pub price_qty_amt_exact: Option<serde_json::Value>,
     79     pub price_qty_unit: Option<serde_json::Value>,
     80     pub listing_addr: Option<serde_json::Value>,
     81     pub primary_bin_id: Option<serde_json::Value>,
     82     pub verified_primary_bin_id: Option<serde_json::Value>,
     83     pub notes: Option<serde_json::Value>,
     84 }
     85 #[derive(Clone, Deserialize, Serialize)]
     86 pub struct ITradeProductFieldsFilter {
     87     pub id: Option<String>,
     88     pub created_at: Option<String>,
     89     pub updated_at: Option<String>,
     90     pub key: Option<String>,
     91     pub category: Option<String>,
     92     pub title: Option<String>,
     93     pub summary: Option<String>,
     94     pub process: Option<String>,
     95     pub lot: Option<String>,
     96     pub profile: Option<String>,
     97     pub year: Option<i64>,
     98     pub qty_amt: Option<f64>,
     99     pub qty_amt_exact: Option<String>,
    100     pub qty_unit: Option<String>,
    101     pub qty_label: Option<String>,
    102     pub qty_avail: Option<i64>,
    103     pub price_amt: Option<f64>,
    104     pub price_amt_exact: Option<String>,
    105     pub price_currency: Option<String>,
    106     pub price_qty_amt: Option<f64>,
    107     pub price_qty_amt_exact: Option<String>,
    108     pub price_qty_unit: Option<String>,
    109     pub listing_addr: Option<String>,
    110     pub primary_bin_id: Option<String>,
    111     pub verified_primary_bin_id: Option<String>,
    112     pub notes: Option<String>,
    113 }
    114 #[derive(Clone, Deserialize, Serialize)]
    115 #[serde(untagged)]
    116 pub enum TradeProductQueryBindValues {
    117     Id { id: String },
    118 }
    119 impl TradeProductQueryBindValues {
    120     pub fn to_filter_param(&self) -> (&'static str, Value) {
    121         match self {
    122             Self::Id { id } => ("id", Value::from(id.clone())),
    123         }
    124     }
    125 
    126     pub fn primary_key(&self) -> Option<String> {
    127         match self {
    128             Self::Id { id } => Some(id.clone()),
    129         }
    130     }
    131 
    132     pub fn lookup_key(&self) -> String {
    133         match self {
    134             Self::Id { id } => id.clone(),
    135         }
    136     }
    137 }
    138 pub struct ITradeProductCreateTs;
    139 pub type ITradeProductCreate = ITradeProductFields;
    140 pub struct ITradeProductCreateResolveTs;
    141 pub type ITradeProductCreateResolve = IResult<TradeProduct>;
    142 #[derive(Deserialize, Serialize)]
    143 pub struct ITradeProductFindOneArgs {
    144     pub on: TradeProductQueryBindValues,
    145 }
    146 
    147 #[derive(Deserialize, Serialize)]
    148 #[serde(untagged)]
    149 pub enum ITradeProductFindOne {
    150     On(ITradeProductFindOneArgs),
    151 }
    152 
    153 pub struct ITradeProductFindOneResolveTs;
    154 pub type ITradeProductFindOneResolve = IResult<Option<TradeProduct>>;
    155 #[derive(Deserialize, Serialize)]
    156 pub struct ITradeProductFindManyArgs {
    157     pub filter: Option<ITradeProductFieldsFilter>,
    158 }
    159 pub type ITradeProductFindMany = ITradeProductFindManyArgs;
    160 pub struct ITradeProductFindManyResolveTs;
    161 pub type ITradeProductFindManyResolve = IResultList<TradeProduct>;
    162 pub struct ITradeProductDeleteTs;
    163 pub type ITradeProductDelete = ITradeProductFindOne;
    164 pub struct ITradeProductDeleteResolveTs;
    165 pub type ITradeProductDeleteResolve = IResult<String>;
    166 #[derive(Deserialize, Serialize)]
    167 pub struct ITradeProductUpdateArgs {
    168     pub on: TradeProductQueryBindValues,
    169     pub fields: ITradeProductFieldsPartial,
    170 }
    171 pub type ITradeProductUpdate = ITradeProductUpdateArgs;
    172 pub struct ITradeProductUpdateResolveTs;
    173 pub type ITradeProductUpdateResolve = IResult<TradeProduct>;