thoth_api/price/
model.rs

1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3
4#[cfg(feature = "backend")]
5use crate::schema::price;
6
7#[cfg_attr(feature = "backend", derive(Queryable))]
8pub struct Price {
9    pub price_id: Uuid,
10    pub publication_id: Uuid,
11    pub currency_code: CurrencyCode,
12    pub unit_price: f64,
13}
14
15#[cfg_attr(
16    feature = "backend",
17    derive(juniper::GraphQLInputObject, Insertable),
18    table_name = "price"
19)]
20pub struct NewPrice {
21    pub publication_id: Uuid,
22    pub currency_code: CurrencyCode,
23    pub unit_price: f64,
24}
25
26#[cfg_attr(
27    feature = "backend",
28    derive(juniper::GraphQLInputObject, AsChangeset),
29    changeset_options(treat_none_as_null = "true"),
30    table_name = "price"
31)]
32pub struct PatchPrice {
33    pub price_id: Uuid,
34    pub publication_id: Uuid,
35    pub currency_code: CurrencyCode,
36    pub unit_price: f64,
37}
38
39#[cfg_attr(feature = "backend", derive(DbEnum, juniper::GraphQLEnum))]
40#[cfg_attr(feature = "backend", DieselType = "Currency_code")]
41#[derive(Debug, PartialEq, Deserialize, Serialize)]
42pub enum CurrencyCode {
43    Adp,
44    Aed,
45    Afa,
46    Afn,
47    Alk,
48    All,
49    Amd,
50    Ang,
51    Aoa,
52    Aok,
53    Aon,
54    Aor,
55    Ara,
56    Arp,
57    Ars,
58    Ary,
59    Ats,
60    Aud,
61    Awg,
62    Aym,
63    Azm,
64    Azn,
65    Bad,
66    Bam,
67    Bbd,
68    Bdt,
69    Bec,
70    Bef,
71    Bel,
72    Bgj,
73    Bgk,
74    Bgl,
75    Bgn,
76    Bhd,
77    Bif,
78    Bmd,
79    Bnd,
80    Bob,
81    Bop,
82    Bov,
83    Brb,
84    Brc,
85    Bre,
86    Brl,
87    Brn,
88    Brr,
89    Bsd,
90    Btn,
91    Buk,
92    Bwp,
93    Byb,
94    Byn,
95    Byr,
96    Bzd,
97    Cad,
98    Cdf,
99    Chc,
100    Che,
101    Chf,
102    Chw,
103    Clf,
104    Clp,
105    Cny,
106    Cop,
107    Cou,
108    Crc,
109    Csd,
110    Csj,
111    Csk,
112    Cuc,
113    Cup,
114    Cve,
115    Cyp,
116    Czk,
117    Ddm,
118    Dem,
119    Djf,
120    Dkk,
121    Dop,
122    Dzd,
123    Ecs,
124    Ecv,
125    Eek,
126    Egp,
127    Ern,
128    Esa,
129    Esb,
130    Esp,
131    Etb,
132    Eur,
133    Fim,
134    Fjd,
135    Fkp,
136    Frf,
137    Gbp,
138    Gek,
139    Gel,
140    Ghc,
141    Ghp,
142    Ghs,
143    Gip,
144    Gmd,
145    Gne,
146    Gnf,
147    Gns,
148    Gqe,
149    Grd,
150    Gtq,
151    Gwe,
152    Gwp,
153    Gyd,
154    Hkd,
155    Hnl,
156    Hrd,
157    Hrk,
158    Htg,
159    Huf,
160    Idr,
161    Iep,
162    Ilp,
163    Ilr,
164    Ils,
165    Inr,
166    Iqd,
167    Irr,
168    Isj,
169    Isk,
170    Itl,
171    Jmd,
172    Jod,
173    Jpy,
174    Kes,
175    Kgs,
176    Khr,
177    Kmf,
178    Kpw,
179    Krw,
180    Kwd,
181    Kyd,
182    Kzt,
183    Laj,
184    Lak,
185    Lbp,
186    Lkr,
187    Lrd,
188    Lsl,
189    Lsm,
190    Ltl,
191    Ltt,
192    Luc,
193    Luf,
194    Lul,
195    Lvl,
196    Lvr,
197    Lyd,
198    Mad,
199    Mdl,
200    Mga,
201    Mgf,
202    Mkd,
203    Mlf,
204    Mmk,
205    Mnt,
206    Mop,
207    Mro,
208    Mru,
209    Mtl,
210    Mtp,
211    Mur,
212    Mvq,
213    Mvr,
214    Mwk,
215    Mxn,
216    Mxp,
217    Mxv,
218    Myr,
219    Mze,
220    Mzm,
221    Mzn,
222    Nad,
223    Ngn,
224    Nic,
225    Nio,
226    Nlg,
227    Nok,
228    Npr,
229    Nzd,
230    Omr,
231    Pab,
232    Peh,
233    Pei,
234    Pen,
235    Pes,
236    Pgk,
237    Php,
238    Pkr,
239    Pln,
240    Plz,
241    Pte,
242    Pyg,
243    Qar,
244    Rhd,
245    Rok,
246    Rol,
247    Ron,
248    Rsd,
249    Rub,
250    Rur,
251    Rwf,
252    Sar,
253    Sbd,
254    Scr,
255    Sdd,
256    Sdg,
257    Sdp,
258    Sek,
259    Sgd,
260    Shp,
261    Sit,
262    Skk,
263    Sll,
264    Sos,
265    Srd,
266    Srg,
267    Ssp,
268    Std,
269    Stn,
270    Sur,
271    Svc,
272    Syp,
273    Szl,
274    Thb,
275    Tjr,
276    Tjs,
277    Tmm,
278    Tmt,
279    Tnd,
280    Top,
281    Tpe,
282    Trl,
283    Try,
284    Ttd,
285    Twd,
286    Tzs,
287    Uah,
288    Uak,
289    Ugs,
290    Ugw,
291    Ugx,
292    Usd,
293    Usn,
294    Uss,
295    Uyi,
296    Uyn,
297    Uyp,
298    Uyu,
299    Uyw,
300    Uzs,
301    Veb,
302    Vef,
303    Ves,
304    Vnc,
305    Vnd,
306    Vuv,
307    Wst,
308    Xaf,
309    Xag,
310    Xau,
311    Xba,
312    Xbb,
313    Xbc,
314    Xbd,
315    Xcd,
316    Xdr,
317    Xeu,
318    Xfo,
319    Xfu,
320    Xof,
321    Xpd,
322    Xpf,
323    Xpt,
324    Xre,
325    Xsu,
326    Xts,
327    Xua,
328    Xxx,
329    Ydd,
330    Yer,
331    Yud,
332    Yum,
333    Yun,
334    Zal,
335    Zar,
336    Zmk,
337    Zmw,
338    Zrn,
339    Zrz,
340    Zwc,
341    Zwd,
342    Zwl,
343    Zwn,
344    Zwr,
345}
346
347impl Default for CurrencyCode {
348    fn default() -> CurrencyCode {
349        CurrencyCode::Gbp
350    }
351}
352
353#[test]
354fn test_currencycode_default() {
355    let currencycode: CurrencyCode = Default::default();
356    assert_eq!(currencycode, CurrencyCode::Gbp);
357}