331 lines
8.2 KiB
C#
331 lines
8.2 KiB
C#
using gehGassi.Domain.Common;
|
|
using System;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace gehGassi.Domain.Reporting
|
|
{
|
|
/// <summary>
|
|
/// Repräsentiert eine Meldung eines Benutzers durch einen anderen Benutzer.
|
|
/// Dies wird für die Meldung von Verstößen gegen die Nutzungsbedingungen verwendet.
|
|
/// </summary>
|
|
public class AppUserReport : IAuditable
|
|
{
|
|
/// <summary>
|
|
/// Id der Meldung
|
|
/// </summary>
|
|
[Key]
|
|
[Required]
|
|
public long Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des App-Users der die Meldung erstellt hat
|
|
/// </summary>
|
|
[MaxLength(128)]
|
|
public string? ReportingAppUserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des App-Users der Ziel der Meldung ist
|
|
/// </summary>
|
|
[MaxLength(128)]
|
|
public string? ReportedAppUserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Status der Meldung
|
|
/// </summary>
|
|
[Required]
|
|
public AppUserReportStatus Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bereich der von der Meldung betroffen ist
|
|
/// </summary>
|
|
[Required]
|
|
public AppUserReportSection Section { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Inhalts der betroffen ist.
|
|
/// Das ist eine Id z.B. eines Hundes, Walkers usw.
|
|
/// </summary>
|
|
[MaxLength(128)]
|
|
public string SectionId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Inhalts der betroffen ist. Zweite ID falls notwendig
|
|
/// Das ist eine Id z.B. eines Hundes, Walkers usw.
|
|
/// </summary>
|
|
[MaxLength(128)]
|
|
public string SectionId2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einem Bild
|
|
/// </summary>
|
|
public bool ReportedImage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einem Namen
|
|
/// </summary>
|
|
public bool ReportedName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einem Text
|
|
/// </summary>
|
|
public bool ReportedText { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einer Nachricht
|
|
/// </summary>
|
|
public bool ReportedMessage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einer Adresse
|
|
/// </summary>
|
|
public bool ReportedAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// Typ der Meldung
|
|
/// </summary>
|
|
[Required]
|
|
public AppUserReportType Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// Email-Adresse des Benutzers der die Meldung erstellt hat
|
|
/// </summary>
|
|
[Required]
|
|
[MaxLength(256)]
|
|
[EmailAddress]
|
|
public string Email { get; set; }
|
|
|
|
/// <summary>
|
|
/// Zusätzliche Infos des Benutzers der die Meldung erstellt hat
|
|
/// </summary>
|
|
[MaxLength(1000)]
|
|
public string Comment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Nachricht des Chats, falls so eine gemeldet wird
|
|
/// </summary>
|
|
[MaxLength(500)]
|
|
public string Message { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gibt an ob der Benutzer der gemeldet wurde für den meldenden Benutzer gesperrt werden soll und wie.
|
|
/// Diese Info kommt vom Benutzer selbst.
|
|
/// </summary>
|
|
[Required]
|
|
public AppUserReportBlockType BlockType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Der Benutzer der die Meldung erstellt hat, hat zugestimmt via Email kontaktiert zu werden
|
|
/// </summary>
|
|
[Required]
|
|
public bool ContactAllowed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Interner Kommentar von gehGassi
|
|
/// </summary>
|
|
public string InternalComment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Aktualisiert von?
|
|
/// </summary>
|
|
[MaxLength(256)]
|
|
public string UpdatedBy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Datum letzte Aktualisierung
|
|
/// </summary>
|
|
public DateTimeOffset? Updated { get; set; }
|
|
|
|
/// <summary>
|
|
/// Erstellt von?
|
|
/// </summary>
|
|
[MaxLength(256)]
|
|
public string CreatedBy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde die Blockierung erstellt?
|
|
/// </summary>
|
|
public DateTimeOffset Created { get; set; }
|
|
|
|
#region IAuditable
|
|
/// <summary>
|
|
/// Gibt den eindeutigen Key für die Entität zurück;
|
|
/// Hier als String gelöst, weil damit auch kombinierte Schlüssel möglich sind.
|
|
/// </summary>
|
|
/// <returns>Eindeutiger Key</returns>
|
|
public string AuditKey()
|
|
{
|
|
return Id.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gibt den Objektnamen bzw. die Tabelle der Entität zurück
|
|
/// </summary>
|
|
/// <returns>Objektnamen</returns>
|
|
public string AuditTable()
|
|
{
|
|
return "AppUserReports";
|
|
}
|
|
|
|
public AuditableOptions Options()
|
|
{
|
|
return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
/// <summary>
|
|
/// Repräsentiert eine Meldung eines Benutzers durch einen anderen Benutzer mit Namen aufgelöst
|
|
/// </summary>
|
|
public class AppUserReportWithNames
|
|
{
|
|
/// <summary>
|
|
/// Id der Meldung
|
|
/// </summary>
|
|
public long Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des App-Users der die Meldung erstellt hat
|
|
/// </summary>
|
|
public string? ReportingAppUserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des App-Users der die Meldung erstellt hat
|
|
/// </summary>
|
|
public string ReportingAppUserName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Typ des App-Users der die Meldung erstellt hat
|
|
/// </summary>
|
|
public AppUserType ReportingAppUserType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Email des App-Users der die Meldung erstellt hat
|
|
/// </summary>
|
|
public string ReportingAppUserEmail { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des App-Users der Ziel der Meldung ist
|
|
/// </summary>
|
|
public string? ReportedAppUserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des App-Users der Ziel der Meldung ist
|
|
/// </summary>
|
|
public string ReportedAppUserName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Typ des App-Users der Ziel der Meldung ist
|
|
/// </summary>
|
|
public AppUserType ReportedAppUserType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Email des App-Users der Ziel der Meldung ist
|
|
/// </summary>
|
|
public string ReportedAppUserEmail { get; set; }
|
|
|
|
/// <summary>
|
|
/// Status der Meldung
|
|
/// </summary>
|
|
public AppUserReportStatus Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bereich der von der Meldung betroffen ist
|
|
/// </summary>
|
|
public AppUserReportSection Section { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Inhalts der betroffen ist.
|
|
/// Das ist eine Id z.B. eines Hundes, Walkers usw.
|
|
/// </summary>
|
|
public string SectionId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Inhalts der betroffen ist. Zweite ID falls notwendig
|
|
/// Das ist eine Id z.B. eines Hundes, Walkers usw.
|
|
/// </summary>
|
|
public string SectionId2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einem Bild
|
|
/// </summary>
|
|
public bool ReportedImage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einem Namen
|
|
/// </summary>
|
|
public bool ReportedName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einem Text
|
|
/// </summary>
|
|
public bool ReportedText { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einer Nachricht
|
|
/// </summary>
|
|
public bool ReportedMessage { get; set; }
|
|
|
|
/// <summary>
|
|
/// Es gibt ein Problem mit einer Adresse
|
|
/// </summary>
|
|
public bool ReportedAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// Typ der Meldung
|
|
/// </summary>
|
|
public AppUserReportType Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// Email-Adresse des Benutzers der die Meldung erstellt hat
|
|
/// </summary>
|
|
public string Email { get; set; }
|
|
|
|
/// <summary>
|
|
/// Zusätzliche Infos des Benutzers der die Meldung erstellt hat
|
|
/// </summary>
|
|
public string Comment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Nachricht des Chats, falls so eine gemeldet wird
|
|
/// </summary>
|
|
public string Message { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gibt an ob der Benutzer der gemeldet wurde für den meldenden Benutzer gesperrt werden soll und wie.
|
|
/// Diese Info kommt vom Benutzer selbst.
|
|
/// </summary>
|
|
public AppUserReportBlockType BlockType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Der Benutzer der die Meldung erstellt hat, hat zugestimmt via Email kontaktiert zu werden
|
|
/// </summary>
|
|
public bool ContactAllowed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Interner Kommentar von gehGassi
|
|
/// </summary>
|
|
public string InternalComment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Aktualisiert von?
|
|
/// </summary>
|
|
public string UpdatedBy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Datum letzte Aktualisierung
|
|
/// </summary>
|
|
public DateTimeOffset? Updated { get; set; }
|
|
|
|
/// <summary>
|
|
/// Erstellt von?
|
|
/// </summary>
|
|
public string CreatedBy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann wurde die Blockierung erstellt?
|
|
/// </summary>
|
|
public DateTimeOffset Created { get; set; }
|
|
}
|
|
}
|