use crate::models::common::{NotificationType, Priority, TargetType}; use crate::models::json_types::{NotificationMetadata, TypedJson}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)] pub struct Notification { pub id: Uuid, pub user_id: Uuid, pub actor_id: Option, pub workspace_id: Option, pub repo_id: Option, pub issue_id: Option, pub pull_request_id: Option, pub channel_id: Option, pub message_id: Option, pub notification_type: NotificationType, pub title: String, pub body: Option, pub target_type: Option, pub target_id: Option, pub action_url: Option, pub priority: Priority, pub read_at: Option>, pub dismissed_at: Option>, pub metadata: Option>, pub created_at: DateTime, pub updated_at: DateTime, pub deleted_at: Option>, }