DOKU: Kommentare für IReportable.cs, IReportingHandler.cs und IReportUI.cs

This commit is contained in:
2026-02-13 19:04:37 +01:00
parent 88b676ab80
commit 908fc0df1b
3 changed files with 45 additions and 0 deletions

View File

@@ -1,7 +1,20 @@
namespace Interfaces;
/// <summary>
/// Interface for the UI component that allows users to report entities.
/// This interface defines the properties that a reporting UI should have.
/// </summary>
public interface IReportUI
{
/// <summary>
/// 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.
/// </summary>
Type ReportType { get; }
/// <summary>
/// The reportable Entity that is being reported.
/// </summary>
IReportable ReportableEntity { get; set; }
}

View File

@@ -1,8 +1,27 @@
namespace Interfaces;
/// <summary>
/// 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.
/// </summary>
public interface IReportable
{
/// <summary>
/// Module Name is no longer required. Use ModuleID and EntityID instead to uniquely identify the type of entity being reported.
/// </summary>
[Obsolete]
public string ModuleName { get; }
/// <summary>
/// The ID of the Module from an Entity that is beeing reported.
/// This is used to determine the type of entity being reported.
/// </summary>
public int ModuleID { get; }
/// <summary>
/// The ID of an Entity that is beeing reported. This is used to determine the exact entity being reported.
/// </summary>
public int EntityID { get; }
}

View File

@@ -1,6 +1,19 @@
namespace Interfaces;
/// <summary>
/// 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.
/// </summary>
public interface IReportingHandler
{
/// <summary>
/// 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.
/// </summary>
/// <param name="reportable">The Entity - as in the Message, Note, Posting, ... - that should be reported</param>
/// <param name="note">A note from the reporting user which is only visible to the admins.</param>
public void Report(IReportable reportable, string note);
}