thoth-api 0.2.1

GraphQL API for bibliographic data
Documentation
use serde::{Deserialize, Serialize};
use uuid::Uuid;

#[cfg(feature = "backend")]
use crate::schema::price;

#[cfg_attr(feature = "backend", derive(Queryable))]
pub struct Price {
    pub price_id: Uuid,
    pub publication_id: Uuid,
    pub currency_code: CurrencyCode,
    pub unit_price: f64,
}

#[cfg_attr(
    feature = "backend",
    derive(juniper::GraphQLInputObject, Insertable),
    table_name = "price"
)]
pub struct NewPrice {
    pub publication_id: Uuid,
    pub currency_code: CurrencyCode,
    pub unit_price: f64,
}

#[cfg_attr(
    feature = "backend",
    derive(juniper::GraphQLInputObject, AsChangeset),
    changeset_options(treat_none_as_null = "true"),
    table_name = "price"
)]
pub struct PatchPrice {
    pub price_id: Uuid,
    pub publication_id: Uuid,
    pub currency_code: CurrencyCode,
    pub unit_price: f64,
}

#[cfg_attr(feature = "backend", derive(DbEnum, juniper::GraphQLEnum))]
#[cfg_attr(feature = "backend", DieselType = "Currency_code")]
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub enum CurrencyCode {
    Adp,
    Aed,
    Afa,
    Afn,
    Alk,
    All,
    Amd,
    Ang,
    Aoa,
    Aok,
    Aon,
    Aor,
    Ara,
    Arp,
    Ars,
    Ary,
    Ats,
    Aud,
    Awg,
    Aym,
    Azm,
    Azn,
    Bad,
    Bam,
    Bbd,
    Bdt,
    Bec,
    Bef,
    Bel,
    Bgj,
    Bgk,
    Bgl,
    Bgn,
    Bhd,
    Bif,
    Bmd,
    Bnd,
    Bob,
    Bop,
    Bov,
    Brb,
    Brc,
    Bre,
    Brl,
    Brn,
    Brr,
    Bsd,
    Btn,
    Buk,
    Bwp,
    Byb,
    Byn,
    Byr,
    Bzd,
    Cad,
    Cdf,
    Chc,
    Che,
    Chf,
    Chw,
    Clf,
    Clp,
    Cny,
    Cop,
    Cou,
    Crc,
    Csd,
    Csj,
    Csk,
    Cuc,
    Cup,
    Cve,
    Cyp,
    Czk,
    Ddm,
    Dem,
    Djf,
    Dkk,
    Dop,
    Dzd,
    Ecs,
    Ecv,
    Eek,
    Egp,
    Ern,
    Esa,
    Esb,
    Esp,
    Etb,
    Eur,
    Fim,
    Fjd,
    Fkp,
    Frf,
    Gbp,
    Gek,
    Gel,
    Ghc,
    Ghp,
    Ghs,
    Gip,
    Gmd,
    Gne,
    Gnf,
    Gns,
    Gqe,
    Grd,
    Gtq,
    Gwe,
    Gwp,
    Gyd,
    Hkd,
    Hnl,
    Hrd,
    Hrk,
    Htg,
    Huf,
    Idr,
    Iep,
    Ilp,
    Ilr,
    Ils,
    Inr,
    Iqd,
    Irr,
    Isj,
    Isk,
    Itl,
    Jmd,
    Jod,
    Jpy,
    Kes,
    Kgs,
    Khr,
    Kmf,
    Kpw,
    Krw,
    Kwd,
    Kyd,
    Kzt,
    Laj,
    Lak,
    Lbp,
    Lkr,
    Lrd,
    Lsl,
    Lsm,
    Ltl,
    Ltt,
    Luc,
    Luf,
    Lul,
    Lvl,
    Lvr,
    Lyd,
    Mad,
    Mdl,
    Mga,
    Mgf,
    Mkd,
    Mlf,
    Mmk,
    Mnt,
    Mop,
    Mro,
    Mru,
    Mtl,
    Mtp,
    Mur,
    Mvq,
    Mvr,
    Mwk,
    Mxn,
    Mxp,
    Mxv,
    Myr,
    Mze,
    Mzm,
    Mzn,
    Nad,
    Ngn,
    Nic,
    Nio,
    Nlg,
    Nok,
    Npr,
    Nzd,
    Omr,
    Pab,
    Peh,
    Pei,
    Pen,
    Pes,
    Pgk,
    Php,
    Pkr,
    Pln,
    Plz,
    Pte,
    Pyg,
    Qar,
    Rhd,
    Rok,
    Rol,
    Ron,
    Rsd,
    Rub,
    Rur,
    Rwf,
    Sar,
    Sbd,
    Scr,
    Sdd,
    Sdg,
    Sdp,
    Sek,
    Sgd,
    Shp,
    Sit,
    Skk,
    Sll,
    Sos,
    Srd,
    Srg,
    Ssp,
    Std,
    Stn,
    Sur,
    Svc,
    Syp,
    Szl,
    Thb,
    Tjr,
    Tjs,
    Tmm,
    Tmt,
    Tnd,
    Top,
    Tpe,
    Trl,
    Try,
    Ttd,
    Twd,
    Tzs,
    Uah,
    Uak,
    Ugs,
    Ugw,
    Ugx,
    Usd,
    Usn,
    Uss,
    Uyi,
    Uyn,
    Uyp,
    Uyu,
    Uyw,
    Uzs,
    Veb,
    Vef,
    Ves,
    Vnc,
    Vnd,
    Vuv,
    Wst,
    Xaf,
    Xag,
    Xau,
    Xba,
    Xbb,
    Xbc,
    Xbd,
    Xcd,
    Xdr,
    Xeu,
    Xfo,
    Xfu,
    Xof,
    Xpd,
    Xpf,
    Xpt,
    Xre,
    Xsu,
    Xts,
    Xua,
    Xxx,
    Ydd,
    Yer,
    Yud,
    Yum,
    Yun,
    Zal,
    Zar,
    Zmk,
    Zmw,
    Zrn,
    Zrz,
    Zwc,
    Zwd,
    Zwl,
    Zwn,
    Zwr,
}

impl Default for CurrencyCode {
    fn default() -> CurrencyCode {
        CurrencyCode::Gbp
    }
}

#[test]
fn test_currencycode_default() {
    let currencycode: CurrencyCode = Default::default();
    assert_eq!(currencycode, CurrencyCode::Gbp);
}