#[derive(Clone, serde::Serialize)] pub struct Name { pub first: String, pub full: String, } #[derive(Clone, serde::Serialize)] pub struct Member { pub id: String, pub name: Name, pub registration_token: Option, pub diploma: Option, pub hours: Vec, pub groups: Vec, } use crate::database::model::Member as DbMember; impl From for Member { fn from(value: DbMember) -> Self { Member { id: value.id, name: Name { first: value.first_name, full: value.full_name, }, registration_token: value.registration_token, diploma: value.diploma, hours: value.hours, groups: value.groups, } } } impl From for DbMember { fn from(value: Member) -> Self { DbMember { id: value.id, first_name: value.name.first, full_name: value.name.full, registration_token: None, diploma: value.diploma, hours: value.hours, groups: value.groups, } } }