magnetar/ext_activity_pub/src/object/activity.rs

241 lines
7.6 KiB
Rust

use crate::object::{Object, RefObjectLinkUnion};
use crate::{def_ld, ld_document, Id, ObjectRaw, ObjectSingle, OneOrMore};
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct Activity {
#[serde(rename = "https://www.w3.org/ns/activitystreams#actor")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actor: Option<OneOrMore<RefObjectLinkUnion>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#object")]
#[serde(skip_serializing_if = "Option::is_none")]
pub object: Option<OneOrMore<RefObjectLinkUnion>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<OneOrMore<RefObjectLinkUnion>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#result")]
#[serde(skip_serializing_if = "Option::is_none")]
pub result: Option<OneOrMore<RefObjectLinkUnion>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#origin")]
#[serde(skip_serializing_if = "Option::is_none")]
pub origin: Option<OneOrMore<RefObjectLinkUnion>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#instrument")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instrument: Option<OneOrMore<RefObjectLinkUnion>>,
}
def_ld!("Activity", Activity, base as Object);
ld_document!(RefActivity, Activity);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct IntransitiveActivity;
def_ld!(
"IntransitiveActivity",
IntransitiveActivity,
base as Activity
);
ld_document!(RefIntransitiveActivity, IntransitiveActivity);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityAccept;
def_ld!("Accept", ActivityAccept, base as Activity);
ld_document!(RefActivityAccept, ActivityAccept);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityTentativeAccept;
def_ld!(
"TentativeAccept",
ActivityTentativeAccept,
base as ActivityAccept
);
ld_document!(RefActivityTentativeAccept, ActivityTentativeAccept);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityAdd;
def_ld!("Add", ActivityAdd, base as Activity);
ld_document!(RefActivityAdd, ActivityAdd);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityArrive;
def_ld!("Arrive", ActivityArrive, base as Activity);
ld_document!(RefActivityArrive, ActivityArrive);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityCreate;
def_ld!("Create", ActivityCreate, base as Activity);
ld_document!(RefActivityCreate, ActivityCreate);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityDelete;
def_ld!("Delete", ActivityDelete, base as Activity);
ld_document!(RefActivityDelete, ActivityDelete);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityFollow;
def_ld!("Follow", ActivityFollow, base as Activity);
ld_document!(RefActivityFollow, ActivityFollow);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityIgnore;
def_ld!("Ignore", ActivityIgnore, base as Activity);
ld_document!(RefActivityIgnore, ActivityIgnore);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityJoin;
def_ld!("Join", ActivityJoin, base as Activity);
ld_document!(RefActivityJoin, ActivityJoin);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityLeave;
def_ld!("Leave", ActivityLeave, base as Activity);
ld_document!(RefActivityLeave, ActivityLeave);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityLike;
def_ld!("Like", ActivityLike, base as Activity);
ld_document!(RefActivityLike, ActivityLike);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityOffer;
def_ld!("Offer", ActivityOffer, base as Activity);
ld_document!(RefActivityOffer, ActivityOffer);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityInvite;
def_ld!("Invite", ActivityInvite, base as ActivityOffer);
ld_document!(RefActivityInvite, ActivityInvite);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityReject;
def_ld!("Reject", ActivityReject, base as Activity);
ld_document!(RefActivityReject, ActivityReject);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityTentativeReject;
def_ld!(
"TentativeReject",
ActivityTentativeReject,
base as ActivityReject
);
ld_document!(RefActivityTentativeReject, ActivityTentativeReject);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityRemove;
def_ld!("Remove", ActivityRemove, base as Activity);
ld_document!(RefActivityRemove, ActivityRemove);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityUndo;
def_ld!("Undo", ActivityUndo, base as Activity);
ld_document!(RefActivityUndo, ActivityUndo);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityUpdate;
def_ld!("Update", ActivityUpdate, base as Activity);
ld_document!(RefActivityUpdate, ActivityUpdate);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityView;
def_ld!("View", ActivityView, base as Activity);
ld_document!(RefActivityView, ActivityView);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityListen;
def_ld!("Listen", ActivityListen, base as Activity);
ld_document!(RefActivityListen, ActivityListen);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityRead;
def_ld!("Read", ActivityRead, base as Activity);
ld_document!(RefActivityRead, ActivityRead);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityMove;
def_ld!("Move", ActivityMove, base as Activity);
ld_document!(RefActivityMove, ActivityMove);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityTravel;
def_ld!("Travel", ActivityTravel, base as IntransitiveActivity);
ld_document!(RefActivityTravel, ActivityTravel);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityAnnounce;
def_ld!("Announce", ActivityAnnounce, base as Activity);
ld_document!(RefActivityAnnounce, ActivityAnnounce);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityBlock;
def_ld!("Block", ActivityBlock, base as ActivityIgnore);
ld_document!(RefActivityBlock, ActivityBlock);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityFlag;
def_ld!("Flag", ActivityFlag, base as Activity);
ld_document!(RefActivityFlag, ActivityFlag);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityDislike;
def_ld!("Dislike", ActivityDislike, base as Activity);
ld_document!(RefActivityDislike, ActivityDislike);
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ActivityClosedStatus {
Date(DateTime<Utc>),
Bool(bool),
Other(RefObjectLinkUnion),
}
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActivityQuestion {
#[serde(rename = "https://www.w3.org/ns/activitystreams#oneOf")]
#[serde(skip_serializing_if = "Option::is_none")]
pub one_of: Option<OneOrMore<RefObjectLinkUnion>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#anyOf")]
#[serde(skip_serializing_if = "Option::is_none")]
pub any_of: Option<OneOrMore<RefObjectLinkUnion>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#closed")]
#[serde(skip_serializing_if = "Option::is_none")]
pub closed: Option<OneOrMore<ActivityClosedStatus>>,
}
def_ld!("Question", ActivityQuestion, base as IntransitiveActivity);
ld_document!(RefActivityQuestion, ActivityQuestion);