use crate::ap::image_attr::ImageAttributes;
use crate::ap::Actor;
use crate::webfinger::Jrd;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct PublicActor {
pub ap: Actor,
pub jrd: Option<Jrd>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct OwnedActor {
pub ap: Actor,
pub jrd: Option<Jrd>,
pub owner_data: Option<OwnerActorData>,
pub created_at: DateTime<Utc>,
pub modified_at: DateTime<Utc>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct OwnerActorData {}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct UpdateOwnerActorAp {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub summary: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icon: Option<ImageAttributes>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image: Option<ImageAttributes>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct ActorSystemInfo {
pub actor_id: String,
pub visibility: ActorVisibility,
pub system_data: Option<SystemActorData>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct SystemActorData {}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum ActorVisibility {
Visible,
Invisible,
Banned,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct ActorPage {
pub min_modified_at: DateTime<Utc>,
pub max_modified_at: DateTime<Utc>,
pub page_values: Vec<Actor>,
}