2022-08-28 14:18:59 +00:00

74 lines
2.2 KiB
Rust

//!
//!
use crate::repositories::member::models::Member as _Member;
use crate::repositories::member_bank_withdraw::schema::MemberBankWithdrawState;
use diesel::deserialize::QueryableByName;
///
#[derive(Eq, Hash, PartialEq, Debug, Clone)]
pub struct MemberBankWithdrawModel {
///
pub id: uuid::Uuid,
///
pub member: _Member,
///
pub bank_name: String,
///
pub name: String,
///
pub account_number: String,
///
pub amount: i32,
///
pub password: String,
///
pub memo: Option<String>,
///
pub state: MemberBankWithdrawState,
///
pub state_changed_at: i64,
///
pub created_at: i64,
///
pub updated_at: i64,
}
impl QueryableByName<diesel::pg::Pg> for MemberBankWithdrawModel {
fn build<R: diesel::row::NamedRow<diesel::pg::Pg>>(row: &R) -> diesel::deserialize::Result<Self> {
let member = _Member {
id: row.get("_m_id")?,
site_id: row.get("_m_site_id")?,
member_class_id: row.get("_m_member_class_id")?,
member_level_id: row.get("_m_member_level_id")?,
username: row.get("_m_username")?,
password: row.get("_m_password")?,
nickname: row.get("_m_nickname")?,
mobile_phone_number: row.get("_m_mobile_phone_number")?,
state: row.get("_m_state")?,
state_changed_at: row.get("_m_state_changed_at")?,
parent_member_id: row.get("_m_parent_member_id")?,
child_member_count: row.get("_m_child_member_count")?,
last_signined_ip: row.get("_m_last_signined_ip")?,
last_signined_at: row.get("_m_last_signined_at")?,
created_at: row.get("_m_created_at")?,
updated_at: row.get("_m_updated_at")?,
deleted_at: row.get("_m_deleted_at")?,
};
Ok(MemberBankWithdrawModel {
id: row.get("mbw_id")?,
member,
bank_name: row.get("mbw_bank_name")?,
name: row.get("mbw_name")?,
account_number: row.get("mbw_account_number")?,
amount: row.get("mbw_amount")?,
password: row.get("mbw_password")?,
memo: row.get("mbw_memo")?,
state: row.get("mbw_state")?,
state_changed_at: row.get("mbw_state_changed_at")?,
created_at: row.get("mbw_created_at")?,
updated_at: row.get("mbw_updated_at")?,
})
}
}