use crate::compositions; use crate::repositories; use beteran_protobuf_rust as bpr; impl From for repositories::member::schema::MemberState { fn from(s: i32) -> Self { match s { s if s == repositories::member::schema::MemberState::Normal as i32 => { repositories::member::schema::MemberState::Normal } s if s == repositories::member::schema::MemberState::Pending as i32 => { repositories::member::schema::MemberState::Pending } s if s == repositories::member::schema::MemberState::Withdrawal as i32 => { repositories::member::schema::MemberState::Withdrawal } s if s == repositories::member::schema::MemberState::Dormancy as i32 => { repositories::member::schema::MemberState::Dormancy } s if s == repositories::member::schema::MemberState::Blacklist as i32 => { repositories::member::schema::MemberState::Blacklist } s if s == repositories::member::schema::MemberState::Suspended as i32 => { repositories::member::schema::MemberState::Suspended } _ => repositories::member::schema::MemberState::Normal, } } } impl From<&repositories::member::models::Member> for bpr::models::member::Member { fn from(d: &repositories::member::models::Member) -> Self { bpr::models::member::Member { id: d.id.to_string(), site_id: d.site_id.to_string(), member_class_id: d.member_class_id.to_string(), member_level_id: d.member_level_id.to_string(), parent_member_id: d.parent_member_id.map(|d| d.to_string()), child_member_count: d.child_member_count as u64, username: d.username.clone(), nickname: d.nickname.clone(), mobile_phone_number: d.mobile_phone_number.clone(), state: d.state as i32, state_changed_at: d.state_changed_at.map(|d| d as u64), last_signined_ip: d.last_signined_ip.clone(), last_signined_at: d.last_signined_at.map(|d| d as u64), created_at: d.created_at as u64, updated_at: d.updated_at as u64, deleted_at: d.deleted_at.map(|d| d as u64), } } } impl From<&compositions::member::models::MemberModel> for bpr::models::member::MemberModel { fn from(d: &compositions::member::models::MemberModel) -> Self { bpr::models::member::MemberModel { id: d.id.to_string(), site: Some(bpr::models::site::Site::from(&d.site)), member_class: Some(bpr::models::member_class::MemberClass::from( &d.member_class, )), member_level: Some(bpr::models::member_level::MemberLevel::from( &d.member_level, )), bank_account: d .bank_account .as_ref() .map(bpr::models::member_bank_account::MemberBankAccountModel::from), parent_member: d .parent_member .as_ref() .map(bpr::models::member::Member::from), child_member_count: d.child_member_count as u64, username: d.username.clone(), nickname: d.nickname.clone(), mobile_phone_number: d.mobile_phone_number.clone(), state: d.state as i32, state_changed_at: d.state_changed_at.map(|d| d as u64), member_game_setting: d .member_game_setting .as_ref() .map(bpr::models::member_game_setting::MemberGameSetting::from), member_settlement_setting: d .member_settlement_setting .as_ref() .map(bpr::models::member_settlement_setting::MemberSettlementSetting::from), last_signined_ip: d.last_signined_ip.clone(), last_signined_at: d.last_signined_at.map(|d| d as u64), created_at: d.created_at as u64, updated_at: d.updated_at as u64, deleted_at: d.deleted_at.map(|d| d as u64), } } }