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>;