mandate published on notes
[akkoma] / lib / pleroma / web / activity_pub / object_validators / common_fields.ex
index 872f80ec3e429d7c42179d23c9df9f660fe9b1c5..db28c38eff39ace8af27242ee1ac99640a425731 100644 (file)
@@ -7,7 +7,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFields do
   alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator
   alias Pleroma.Web.ActivityPub.ObjectValidators.TagValidator
 
-  # Activities and Objects, except (Create)ChatMessage
+  # Activities and Objects
   defmacro message_fields do
     quote bind_quoted: binding() do
       field(:type, :string)
@@ -33,12 +33,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFields do
       field(:content, :string)
 
       field(:published, ObjectValidators.DateTime)
+      field(:updated, ObjectValidators.DateTime)
       field(:emoji, ObjectValidators.Emoji, default: %{})
       embeds_many(:attachment, AttachmentValidator)
     end
   end
 
-  # Basically objects that aren't ChatMessage and Answer
+  # Basically objects that aren't Answer
   defmacro status_object_fields do
     quote bind_quoted: binding() do
       # TODO: Remove actor on objects
@@ -51,18 +52,23 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFields do
       field(:summary, :string)
 
       field(:context, :string)
-      # short identifier for PleromaFE to group statuses by context
-      field(:context_id, :integer)
 
       field(:sensitive, :boolean, default: false)
       field(:replies_count, :integer, default: 0)
       field(:like_count, :integer, default: 0)
       field(:announcement_count, :integer, default: 0)
       field(:inReplyTo, ObjectValidators.ObjectID)
+      field(:quoteUri, ObjectValidators.ObjectID)
       field(:url, ObjectValidators.Uri)
 
       field(:likes, {:array, ObjectValidators.ObjectID}, default: [])
       field(:announcements, {:array, ObjectValidators.ObjectID}, default: [])
     end
   end
+
+  defmacro tag_fields do
+    quote bind_quoted: binding() do
+      embeds_many(:tag, TagValidator)
+    end
+  end
 end