lib

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

farm_member.rs (3278B)


      1 use radroots_types::types::{IResult, IResultList};
      2 use serde::{Deserialize, Serialize};
      3 use serde_json::Value;
      4 
      5 #[derive(Serialize, Deserialize)]
      6 pub struct FarmMember {
      7     pub id: String,
      8     pub created_at: String,
      9     pub updated_at: String,
     10     pub farm_id: String,
     11     pub member_pubkey: String,
     12     pub role: String,
     13 }
     14 
     15 #[derive(Clone, Deserialize, Serialize)]
     16 pub struct IFarmMemberFields {
     17     pub farm_id: String,
     18     pub member_pubkey: String,
     19     pub role: String,
     20 }
     21 
     22 #[derive(Clone, Deserialize, Serialize)]
     23 pub struct IFarmMemberFieldsPartial {
     24     pub farm_id: Option<serde_json::Value>,
     25     pub member_pubkey: Option<serde_json::Value>,
     26     pub role: Option<serde_json::Value>,
     27 }
     28 
     29 #[derive(Clone, Deserialize, Serialize)]
     30 pub struct IFarmMemberFieldsFilter {
     31     pub id: Option<String>,
     32     pub created_at: Option<String>,
     33     pub updated_at: Option<String>,
     34     pub farm_id: Option<String>,
     35     pub member_pubkey: Option<String>,
     36     pub role: Option<String>,
     37 }
     38 
     39 #[derive(Clone, Deserialize, Serialize)]
     40 #[serde(untagged)]
     41 pub enum FarmMemberQueryBindValues {
     42     Id { id: String },
     43     FarmId { farm_id: String },
     44     MemberPubkey { member_pubkey: String },
     45 }
     46 impl FarmMemberQueryBindValues {
     47     pub fn to_filter_param(&self) -> (&'static str, Value) {
     48         match self {
     49             Self::Id { id } => ("id", Value::from(id.clone())),
     50             Self::FarmId { farm_id } => ("farm_id", Value::from(farm_id.clone())),
     51             Self::MemberPubkey { member_pubkey } => {
     52                 ("member_pubkey", Value::from(member_pubkey.clone()))
     53             }
     54         }
     55     }
     56 
     57     pub fn primary_key(&self) -> Option<String> {
     58         match self {
     59             Self::Id { id } => Some(id.clone()),
     60             _ => None,
     61         }
     62     }
     63 
     64     pub fn lookup_key(&self) -> String {
     65         match self {
     66             Self::Id { id } => id.clone(),
     67             Self::FarmId { farm_id } => farm_id.clone(),
     68             Self::MemberPubkey { member_pubkey } => member_pubkey.clone(),
     69         }
     70     }
     71 }
     72 
     73 pub struct IFarmMemberCreateTs;
     74 pub type IFarmMemberCreate = IFarmMemberFields;
     75 pub struct IFarmMemberCreateResolveTs;
     76 pub type IFarmMemberCreateResolve = IResult<FarmMember>;
     77 #[derive(Deserialize, Serialize)]
     78 pub struct IFarmMemberFindOneArgs {
     79     pub on: FarmMemberQueryBindValues,
     80 }
     81 
     82 #[derive(Deserialize, Serialize)]
     83 #[serde(untagged)]
     84 pub enum IFarmMemberFindOne {
     85     On(IFarmMemberFindOneArgs),
     86 }
     87 
     88 pub struct IFarmMemberFindOneResolveTs;
     89 pub type IFarmMemberFindOneResolve = IResult<Option<FarmMember>>;
     90 #[derive(Deserialize, Serialize)]
     91 pub struct IFarmMemberFindManyArgs {
     92     pub filter: Option<IFarmMemberFieldsFilter>,
     93 }
     94 pub type IFarmMemberFindMany = IFarmMemberFindManyArgs;
     95 pub struct IFarmMemberFindManyResolveTs;
     96 pub type IFarmMemberFindManyResolve = IResultList<FarmMember>;
     97 pub struct IFarmMemberDeleteTs;
     98 pub type IFarmMemberDelete = IFarmMemberFindOne;
     99 pub struct IFarmMemberDeleteResolveTs;
    100 pub type IFarmMemberDeleteResolve = IResult<String>;
    101 #[derive(Deserialize, Serialize)]
    102 pub struct IFarmMemberUpdateArgs {
    103     pub on: FarmMemberQueryBindValues,
    104     pub fields: IFarmMemberFieldsPartial,
    105 }
    106 pub type IFarmMemberUpdate = IFarmMemberUpdateArgs;
    107 pub struct IFarmMemberUpdateResolveTs;
    108 pub type IFarmMemberUpdateResolve = IResult<FarmMember>;