use crate::models::message; use sea_orm::Set; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Serialize)] pub struct MessageResponse { pub id: Uuid, pub channel_id: Uuid, pub author_id: Uuid, pub content: String, } impl From for MessageResponse { fn from(model: message::Model) -> Self { Self { id: model.id, channel_id: model.channel_id, author_id: model.user_id, content: model.content, } } } #[derive(Debug, Deserialize)] pub struct CreateMessageRequest { pub channel_id: Uuid, pub content: String, } impl From for message::ActiveModel { fn from(request: CreateMessageRequest) -> Self { Self { channel_id: Set(request.channel_id), user_id: Set(Uuid::new_v4()), content: Set(request.content), ..Default::default() } } }