use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Note {
pub id: String,
pub title: String,
pub content: String,
pub author: String,
pub author_id: String,
pub likes: u64,
pub collects: u64,
pub comments: u64,
pub shares: u64,
pub tags: Vec<String>,
pub images: Vec<String>,
pub video: Option<String>,
pub published_at: String,
pub note_type: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SearchNote {
pub id: String,
pub title: String,
pub author: String,
pub likes: u64,
pub published_at: String,
pub url: String,
pub cover_image: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Comment {
pub author: String,
pub text: String,
pub likes: u64,
pub time: String,
pub replies: Vec<Comment>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserNote {
pub id: String,
pub title: String,
pub likes: u64,
pub note_type: String,
pub cover_image: Option<String>,
pub published_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MediaItem {
pub media_type: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FeedItem {
pub id: String,
pub title: String,
pub author: String,
pub likes: u64,
pub note_type: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Notification {
pub notification_type: String,
pub user: String,
pub content: String,
pub time: String,
pub target_note_id: Option<String>,
}