gehgassi_backend/gehGassi.Web/Models/AppUserReportVm.cs

387 lines
12 KiB
C#

using gehGassi.Domain.Common;
using System.ComponentModel.DataAnnotations;
using System;
namespace gehGassi.Web.Models
{
/// <summary>
/// Viewmodel für eine App-User Meldung
/// </summary>
public class AppUserReportVm
{
/// <summary>
/// Id der Meldung
/// </summary>
[Required(ErrorMessage = "Err_Required")]
public long Id { get; set; }
/// <summary>
/// Id des App-Users der die Meldung erstellt hat
/// </summary>
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppUserReport_ReportingAppUserId")]
public string? ReportingAppUserId { get; set; }
/// <summary>
/// Id des App-Users der Ziel der Meldung ist
/// </summary>
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppUserReport_ReportedAppUserId")]
public string? ReportedAppUserId { get; set; }
/// <summary>
/// Status der Meldung
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppUserReport_Status")]
public AppUserReportStatusVm Status { get; set; }
/// <summary>
/// Bereich der von der Meldung betroffen ist
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppUserReport_Section")]
public AppUserReportSectionVm Section { get; set; }
/// <summary>
/// Id des Inhalts der betroffen ist.
/// Das ist eine Id z.B. eines Hundes, Walkers usw.
/// </summary>
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
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, ErrorMessage = "Err_StringLength_Max")]
public string SectionId2 { get; set; }
/// <summary>
/// Es gibt ein Problem mit einem Bild
/// </summary>
[Display(Name = "AppUserReport_ReportedImage")]
public bool ReportedImage { get; set; }
/// <summary>
/// Es gibt ein Problem mit einem Namen
/// </summary>
[Display(Name = "AppUserReport_ReportedName")]
public bool ReportedName { get; set; }
/// <summary>
/// Es gibt ein Problem mit einem Text
/// </summary>
[Display(Name = "AppUserReport_ReportedText")]
public bool ReportedText { get; set; }
/// <summary>
/// Es gibt ein Problem mit einer Nachricht
/// </summary>
[Display(Name = "AppUserReport_ReportedMessage")]
public bool ReportedMessage { get; set; }
/// <summary>
/// Es gibt ein Problem mit einer Adresse
/// </summary>
[Display(Name = "AppUserReport_ReportedAddress")]
public bool ReportedAddress { get; set; }
/// <summary>
/// Typ der Meldung
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppUserReport_Type")]
public AppUserReportTypeVm Type { get; set; }
/// <summary>
/// Email-Adresse des Benutzers der die Meldung erstellt hat
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[MaxLength(256, ErrorMessage = "Err_StringLength_Max")]
[EmailAddress(ErrorMessage = "Err_InvalidEmail")]
[Display(Name = "AppUserReport_Email")]
public string Email { get; set; }
/// <summary>
/// Zusätzliche Infos des Benutzers der die Meldung erstellt hat
/// </summary>
[MaxLength(1000, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppUserReport_Comment")]
public string Comment { get; set; }
/// <summary>
/// Nachricht des Chats, falls so eine gemeldet wird
/// </summary>
[MaxLength(500, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppUserReport_Message")]
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(ErrorMessage = "Err_Required")]
[Display(Name = "AppUserReport_Block")]
public AppUserReportBlockTypeVm BlockType { get; set; }
/// <summary>
/// Der Benutzer der die Meldung erstellt hat, hat zugestimmt via Email kontaktiert zu werden
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppUserReport_ContactAllowed")]
public bool ContactAllowed { get; set; }
/// <summary>
/// Interner Kommentar von gehGassi
/// </summary>
[Display(Name = "AppUserReport_InternalComment")]
public string InternalComment { get; set; }
/// <summary>
/// Aktualisiert von?
/// </summary>
[MaxLength(256, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppUserReport_UpdatedBy")]
public string UpdatedBy { get; set; }
/// <summary>
/// Datum letzte Aktualisierung
/// </summary>
[Display(Name = "AppUserReport_Updated")]
public DateTimeOffset? Updated { get; set; }
/// <summary>
/// Erstellt von?
/// </summary>
[MaxLength(256, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppUserReport_CreatedBy")]
public string CreatedBy { get; set; }
/// <summary>
/// Wann wurde die Blockierung erstellt?
/// </summary>
[Display(Name = "Common_Created")]
public DateTimeOffset Created { get; set; }
}
/// <summary>
/// Viewmodel für eine App-User Meldung Listendarstellung
/// </summary>
public class AppUserReportListVm
{
/// <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 AppUserTypeVm ReportingAppUserType { get; set; }
public string ReportingAppUserTypeText { 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 AppUserTypeVm ReportedAppUserType { get; set; }
public string ReportedAppUserTypeText { get; set; }
/// <summary>
/// Email des App-Users der Ziel der Meldung ist
/// </summary>
public string ReportedAppUserEmail { get; set; }
/// <summary>
/// Status der Meldung
/// </summary>
public AppUserReportStatusVm Status { get; set; }
public string StatusText { get; set; }
/// <summary>
/// Bereich der von der Meldung betroffen ist
/// </summary>
public AppUserReportSectionVm Section { get; set; }
public string SectionText { 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 AppUserReportTypeVm Type { get; set; }
public string TypeText { 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 AppUserReportBlockTypeVm BlockType { get; set; }
public string BlockTypeText { 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; }
}
/// <summary>
/// Viewmodel für die Detailansicht einer App-User Meldung
/// </summary>
public class AppUserReportDetailVm
{
/// <summary>
/// Der eigentliche Bericht
/// </summary>
public AppUserReportVm Report { get; set; }
/// <summary>
/// Daten des Benutzers der die Meldung erstellt hat
/// </summary>
public AppUserVm ReportingUser { get; set; }
/// <summary>
/// Wie viele Meldungen hat der Benutzer der die Meldung erstellt hat schon erstellt?
/// </summary>
public int ReportingCount { get; set; }
/// <summary>
/// Daten des Benutzers der gemeldet wurde
/// </summary>
public AppUserVm ReportedUser { get; set; }
/// <summary>
/// Wie viele Meldungen hat der Benutzer der gemeldet wurde schon erhalten?
/// </summary>
public int ReportedCount { get; set; }
}
/// <summary>
/// Viewmodel für den Status-Update einer App-User Meldung
/// </summary>
public class AppUserReportUpdateStatusVm
{
/// <summary>
/// Id der Meldung
/// </summary>
[Required(ErrorMessage = "Err_Required")]
public long Id { get; set; }
/// <summary>
/// Status der Meldung
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppUserReport_Status")]
public AppUserReportStatusVm Status { get; set; }
/// <summary>
/// Interner Kommentar von gehGassi
/// </summary>
[Display(Name = "AppUserReport_InternalComment")]
public string InternalComment { get; set; }
}
}