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