mod activity; mod actor; mod blocklist; mod follow; pub use activity::ActivityRepository; pub use actor::ActorRepository; pub use blocklist::BlocklistRepository; pub use follow::FollowRepository; use chrono::{DateTime, Utc}; #[derive(Debug, Clone, PartialEq, Eq)] pub enum FollowerStatus { Pending, Accepted, Rejected, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum FollowingStatus { Pending, Accepted, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct RemoteActor { pub url: String, pub handle: String, pub inbox_url: String, pub shared_inbox_url: Option, pub display_name: Option, pub avatar_url: Option, pub outbox_url: Option, pub bio: Option, pub banner_url: Option, pub followers_url: Option, pub following_url: Option, pub also_known_as: Vec, /// When this actor was last fetched from the origin instance. /// `None` means unknown — treated as always-fresh to avoid /// breaking existing consumers that don't populate this field. pub fetched_at: Option>, } #[derive(Debug, Clone)] pub struct Follower { pub actor: RemoteActor, pub status: FollowerStatus, } #[derive(Debug, Clone)] pub struct BlockedDomain { pub domain: String, pub reason: Option, pub blocked_at: String, }