diff --git a/Interfaces/IReportUI.cs b/Interfaces/IReportUI.cs
index a5c1986..cfa3f12 100644
--- a/Interfaces/IReportUI.cs
+++ b/Interfaces/IReportUI.cs
@@ -1,7 +1,20 @@
namespace Interfaces;
+///
+/// Interface for the UI component that allows users to report entities.
+/// This interface defines the properties that a reporting UI should have.
+///
public interface IReportUI
{
+ ///
+ /// The type of the UI Component that should be used to display the reporting interface.
+ /// This should be passed to DynamicComponent to render the UI Component.
+ /// Component that implement this interface should return typeof(this) in this property.
+ ///
Type ReportType { get; }
+
+ ///
+ /// The reportable Entity that is being reported.
+ ///
IReportable ReportableEntity { get; set; }
}
\ No newline at end of file
diff --git a/Interfaces/IReportable.cs b/Interfaces/IReportable.cs
index 870bcd2..b5bc9e2 100644
--- a/Interfaces/IReportable.cs
+++ b/Interfaces/IReportable.cs
@@ -1,8 +1,27 @@
namespace Interfaces;
+///
+/// Interface for entities that can be reported by users. This includes things like posts, comments, and user profiles.
+/// The IReportUI interface will use this interface to determine what information to display when a user reports an
+/// entity, and the IReportingHandler interface will use this interface to determine how to handle the report when it is
+/// submitted.
+///
public interface IReportable
{
+ ///
+ /// Module Name is no longer required. Use ModuleID and EntityID instead to uniquely identify the type of entity being reported.
+ ///
+ [Obsolete]
public string ModuleName { get; }
+
+ ///
+ /// The ID of the Module from an Entity that is beeing reported.
+ /// This is used to determine the type of entity being reported.
+ ///
public int ModuleID { get; }
+
+ ///
+ /// The ID of an Entity that is beeing reported. This is used to determine the exact entity being reported.
+ ///
public int EntityID { get; }
}
\ No newline at end of file
diff --git a/Interfaces/IReportingHandler.cs b/Interfaces/IReportingHandler.cs
index 5676d85..22b4b5e 100644
--- a/Interfaces/IReportingHandler.cs
+++ b/Interfaces/IReportingHandler.cs
@@ -1,6 +1,19 @@
namespace Interfaces;
+///
+/// Handler for processing user reports. This interface defines a method for handling reports submitted by users,
+/// which includes the reportable entity and any additional notes provided by the user. Implementations of this
+/// interface will determine how to process the report, such as logging it, notifying moderators,
+/// or taking action against the reported entity.
+///
public interface IReportingHandler
{
+ ///
+ /// Report an IReportable entity with a note. Implementations of this method should handle the report appropriately,
+ /// such as logging it, saving it, notifying moderators and taking action against the owner of the reported entity
+ /// if necessary.
+ ///
+ /// The Entity - as in the Message, Note, Posting, ... - that should be reported
+ /// A note from the reporting user which is only visible to the admins.
public void Report(IReportable reportable, string note);
}
\ No newline at end of file