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