summaryrefslogtreecommitdiff
path: root/models/Event.js
diff options
context:
space:
mode:
Diffstat (limited to 'models/Event.js')
-rwxr-xr-xmodels/Event.js78
1 files changed, 76 insertions, 2 deletions
diff --git a/models/Event.js b/models/Event.js
index c67869e..07f0b70 100755
--- a/models/Event.js
+++ b/models/Event.js
@@ -16,9 +16,35 @@ const Attendees = new mongoose.Schema({
removalPassword: {
type: String,
trim: true
- }
+ },
+ id: {
+ type: String,
+ trim: true
+ }
})
+const Followers = new mongoose.Schema({
+ // this is the id of the original follow *request*, which we use to validate Undo events
+ followId: {
+ type: String,
+ trim: true
+ },
+ // this is the actual remote user profile id
+ actorId: {
+ type: String,
+ trim: true
+ },
+ // this is the stringified JSON of the entire user profile
+ actorJson: {
+ type: String,
+ trim: true
+ },
+ name: {
+ type: String,
+ trim: true
+ },
+}, {_id: false})
+
const ReplySchema = new mongoose.Schema({
id: {
type: String,
@@ -43,6 +69,20 @@ const ReplySchema = new mongoose.Schema({
}
})
+const ActivityPubMessages = new mongoose.Schema({
+ id: {
+ type: String,
+ required: true,
+ unique: true,
+ sparse: true
+ },
+ content: {
+ type: String,
+ trim: true,
+ required: true
+ }
+})
+
const CommentSchema = new mongoose.Schema({
id: {
type: String,
@@ -65,6 +105,22 @@ const CommentSchema = new mongoose.Schema({
trim: true,
required: true
},
+ activityJson: {
+ type: String,
+ trim: true
+ },
+ actorJson: {
+ type: String,
+ trim: true
+ },
+ activityId: {
+ type: String,
+ trim: true
+ },
+ actorId: {
+ type: String,
+ trim: true
+ },
replies: [ReplySchema]
})
@@ -163,7 +219,25 @@ const EventSchema = new mongoose.Schema({
maxAttendees: {
type: Number
},
- comments: [CommentSchema]
+ comments: [CommentSchema],
+ activityPubActor: {
+ type: String,
+ trim: true
+ },
+ activityPubEvent: {
+ type: String,
+ trim: true
+ },
+ publicKey: {
+ type: String,
+ trim: true
+ },
+ privateKey: {
+ type: String,
+ trim: true
+ },
+ followers: [Followers],
+ activityPubMessages: [ActivityPubMessages]
});
module.exports = mongoose.model('Event', EventSchema);