lib

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

media_image.rs (4007B)


      1 use radroots_types::types::{IResult, IResultList};
      2 use serde::{Deserialize, Serialize};
      3 use serde_json::Value;
      4 #[derive(Serialize, Deserialize)]
      5 pub struct MediaImage {
      6     pub id: String,
      7     pub created_at: String,
      8     pub updated_at: String,
      9     pub file_path: String,
     10     pub mime_type: String,
     11     pub res_base: String,
     12     pub res_path: String,
     13     pub label: Option<String>,
     14     pub description: Option<String>,
     15 }
     16 #[derive(Clone, Deserialize, Serialize)]
     17 pub struct IMediaImageFields {
     18     pub file_path: String,
     19     pub mime_type: String,
     20     pub res_base: String,
     21     pub res_path: String,
     22     pub label: Option<String>,
     23     pub description: Option<String>,
     24 }
     25 #[derive(Clone, Deserialize, Serialize)]
     26 pub struct IMediaImageFieldsPartial {
     27     pub file_path: Option<serde_json::Value>,
     28     pub mime_type: Option<serde_json::Value>,
     29     pub res_base: Option<serde_json::Value>,
     30     pub res_path: Option<serde_json::Value>,
     31     pub label: Option<serde_json::Value>,
     32     pub description: Option<serde_json::Value>,
     33 }
     34 #[derive(Clone, Deserialize, Serialize)]
     35 pub struct IMediaImageFieldsFilter {
     36     pub id: Option<String>,
     37     pub created_at: Option<String>,
     38     pub updated_at: Option<String>,
     39     pub file_path: Option<String>,
     40     pub mime_type: Option<String>,
     41     pub res_base: Option<String>,
     42     pub res_path: Option<String>,
     43     pub label: Option<String>,
     44     pub description: Option<String>,
     45 }
     46 #[derive(Clone, Deserialize, Serialize)]
     47 #[serde(untagged)]
     48 pub enum MediaImageQueryBindValues {
     49     Id { id: String },
     50     FilePath { file_path: String },
     51 }
     52 impl MediaImageQueryBindValues {
     53     pub fn to_filter_param(&self) -> (&'static str, Value) {
     54         match self {
     55             Self::Id { id } => ("id", Value::from(id.clone())),
     56             Self::FilePath { file_path } => ("file_path", Value::from(file_path.clone())),
     57         }
     58     }
     59 
     60     pub fn primary_key(&self) -> Option<String> {
     61         match self {
     62             Self::Id { id } => Some(id.clone()),
     63             _ => None,
     64         }
     65     }
     66 
     67     pub fn lookup_key(&self) -> String {
     68         match self {
     69             Self::Id { id } => id.clone(),
     70             Self::FilePath { file_path } => file_path.clone(),
     71         }
     72     }
     73 }
     74 #[derive(Clone, Deserialize, Serialize)]
     75 pub struct MediaImageTradeProductArgs {
     76     pub id: String,
     77 }
     78 
     79 #[derive(Clone, Deserialize, Serialize)]
     80 pub enum MediaImageFindManyRel {
     81     #[serde(rename = "on_trade_product")]
     82     OnTradeProduct(MediaImageTradeProductArgs),
     83     #[serde(rename = "off_trade_product")]
     84     OffTradeProduct(MediaImageTradeProductArgs),
     85 }
     86 
     87 pub struct IMediaImageCreateTs;
     88 pub type IMediaImageCreate = IMediaImageFields;
     89 pub struct IMediaImageCreateResolveTs;
     90 pub type IMediaImageCreateResolve = IResult<MediaImage>;
     91 #[derive(Deserialize, Serialize)]
     92 pub struct IMediaImageFindOneArgs {
     93     pub on: MediaImageQueryBindValues,
     94 }
     95 
     96 #[derive(Deserialize, Serialize)]
     97 pub struct IMediaImageFindOneRelArgs {
     98     pub rel: MediaImageFindManyRel,
     99 }
    100 
    101 #[derive(Deserialize, Serialize)]
    102 #[serde(untagged)]
    103 pub enum IMediaImageFindOne {
    104     On(IMediaImageFindOneArgs),
    105     Rel(IMediaImageFindOneRelArgs),
    106 }
    107 
    108 pub struct IMediaImageFindOneResolveTs;
    109 pub type IMediaImageFindOneResolve = IResult<Option<MediaImage>>;
    110 #[derive(Deserialize, Serialize)]
    111 #[serde(untagged)]
    112 pub enum IMediaImageFindMany {
    113     Filter {
    114         filter: Option<IMediaImageFieldsFilter>,
    115     },
    116     Rel {
    117         rel: MediaImageFindManyRel,
    118     },
    119 }
    120 pub struct IMediaImageFindManyResolveTs;
    121 pub type IMediaImageFindManyResolve = IResultList<MediaImage>;
    122 pub struct IMediaImageDeleteTs;
    123 pub type IMediaImageDelete = IMediaImageFindOne;
    124 pub struct IMediaImageDeleteResolveTs;
    125 pub type IMediaImageDeleteResolve = IResult<String>;
    126 #[derive(Deserialize, Serialize)]
    127 pub struct IMediaImageUpdateArgs {
    128     pub on: MediaImageQueryBindValues,
    129     pub fields: IMediaImageFieldsPartial,
    130 }
    131 pub type IMediaImageUpdate = IMediaImageUpdateArgs;
    132 pub struct IMediaImageUpdateResolveTs;
    133 pub type IMediaImageUpdateResolve = IResult<MediaImage>;