use sea_orm::ActiveValue::Set; use serde::{Deserialize, Serialize}; use uuid::Uuid; use crate::models::{category, user}; #[derive(Serialize, Deserialize)] pub struct UserSerializer { #[serde(skip_deserializing)] pub id: Option, pub username: String, pub pub_key: String, #[serde(skip_deserializing)] pub created_at: String, #[serde(skip_deserializing)] pub updated_at: String, } impl From for UserSerializer { fn from(model: user::Model) -> Self { Self { id: Some(model.id), username: model.username, pub_key: model.pub_key, created_at: model.created_at.to_string(), updated_at: model.updated_at.to_string(), } } } impl UserSerializer { pub fn into_active_model(self) -> user::ActiveModel { user::ActiveModel { username: Set(self.username), pub_key: Set(self.pub_key), ..Default::default() } } pub fn apply_to_active_model(self, mut active_model: user::ActiveModel) -> user::ActiveModel { active_model.username = Set(self.username); active_model.pub_key = Set(self.pub_key); active_model } }