//! //! use crate::repositories::{ member::models::Member as _Member, member::schema::MemberState as _MemberState, member_class::models::MemberClass as _MemberClass, member_level::models::MemberLevel as _MemberLevel, site::models::Site as _Site, }; use diesel::deserialize::QueryableByName; /// #[derive(Eq, Hash, PartialEq, Debug, Clone)] pub struct Member { /// pub id: uuid::Uuid, /// pub site: _Site, /// pub member_class: _MemberClass, /// pub member_level: _MemberLevel, /// pub username: String, /// pub password: String, /// pub nickname: String, /// pub mobile_phone_number: Option, /// pub state: _MemberState, /// pub state_changed_at: Option, /// pub referrer_member: Option<_Member>, /// pub referred_count: i64, /// pub last_signined_ip: Option, /// pub last_signined_at: Option, /// pub created_at: i64, /// pub updated_at: i64, /// pub deleted_at: Option, } impl QueryableByName for Member { fn build>(row: &R) -> diesel::deserialize::Result { let referrer_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")?, referrer_member_id: row.get("_m_referrer_member_id")?, referred_count: row.get("_m_referred_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(Member { id: row.get("m_id")?, site: _Site { id: row.get("s_id")?, url: row.get("s_url")?, name: row.get("s_name")?, path: row.get("s_path")?, show: row.get("s_show")?, can_use: row.get("s_can_use")?, memo: row.get("s_memo")?, expires_at: row.get("s_expires_at")?, created_at: row.get("s_created_at")?, updated_at: row.get("s_updated_at")?, }, member_class: _MemberClass { id: row.get("mc_id")?, parent_id: row.get("mc_parent_id")?, name: row.get("mc_name")?, created_at: row.get("mc_created_at")?, updated_at: row.get("mc_updated_at")?, deleted_at: row.get("mc_deleted_at")?, }, member_level: _MemberLevel { id: row.get("ml_id")?, name: row.get("ml_name")?, sort_order: row.get("ml_sort_order")?, created_at: row.get("ml_created_at")?, updated_at: row.get("ml_updated_at")?, deleted_at: row.get("ml_deleted_at")?, }, 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")?, referrer_member: None, referred_count: row.get("m_referred_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")?, }) } }