use crate::models::user; use sea_orm::Set; use serde::{Deserialize, Serialize}; use utoipa::ToSchema; use uuid::Uuid; #[derive(Debug, Serialize, ToSchema)] pub struct UserResponse { pub id: Uuid, pub username: String, pub pub_key: String, } impl From for UserResponse { fn from(model: user::Model) -> Self { Self { id: model.id, username: model.username, pub_key: model.pub_key, } } } #[derive(Debug, Deserialize, ToSchema)] pub struct CreateUserRequest { pub username: String, } impl From for user::ActiveModel { fn from(request: CreateUserRequest) -> Self { Self { username: Set(request.username), ..Default::default() } } } impl CreateUserRequest { pub fn apply_to(self, mut am: user::ActiveModel) -> user::ActiveModel { am.username = Set(self.username); am } }