use crate::models::common::Status; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use uuid::Uuid; /// Tracks a single cross-post delivery when an article is published /// to a follower channel/workspace. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)] pub struct ArticleCrossPost { pub id: Uuid, pub article_id: Uuid, pub follow_id: Uuid, pub target_workspace_id: Uuid, pub target_channel_id: Option, pub status: Status, pub attempts: i32, pub last_error: Option, pub sent_at: Option>, pub delivered_at: Option>, pub failed_at: Option>, pub created_at: DateTime, }