95 lines
3.6 KiB
Rust

use crate::compositions;
use crate::repositories;
use beteran_protobuf_rust as bpr;
impl From<i32> 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),
}
}
}