main
use proto::auth::common::v1::UserPublic;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, utoipa::ToSchema)]
pub struct UserDto {
pub user_id: i64,
pub username: String,
pub display_name: String,
pub avatar_url: String,
}
impl UserDto {
pub fn from_public(public: &UserPublic) -> Self {
Self {
user_id: public.user_id,
username: public.username.clone(),
display_name: if public.displayname.trim().is_empty() {
public.username.clone()
} else {
public.displayname.clone()
},
avatar_url: crate::urls::resolve_user_avatar_url(public.user_id, &public.avatar_url),
}
}
}