using System; using System.ComponentModel.DataAnnotations; using gehGassi.Domain.Common; namespace gehGassi.Web.Models { /// /// Viewmodel für eine Systemnachricht die gesendet werden soll /// public class SystemMessageToSendVm { /// /// Id der Nachricht /// public long Id { get; set; } /// /// Interner titel /// [Required(ErrorMessage = "Err_Required")] [MaxLength(200, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SystemMessageToSend_Title")] public string Title { get; set; } /// /// Nachricht die gesendet werden soll /// [Required(ErrorMessage = "Err_Required")] [MaxLength(500, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SystemMessageToSend_Message")] public string Message { get; set; } /// /// Datum wann die Nachricht gesendet werden soll /// [Display(Name = "SystemMessageToSend_ToSendDate")] public DateTimeOffset? ToSendDate { get; set; } /// /// Wurden die Nachrichten bereits gesendet? /// [Display(Name = "SystemMessageToSend_SendPushNotification", Description = "SystemMessageToSend_SendPushNotification_Desc")] public bool SendPushNotification { get; set; } #region Filter-Settings /// /// Typ des App-Users /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "SystemMessageToSend_AppUserType")] public AppUserTypeVm AppUserType { get; set; } /// /// Land oder leer /// [MaxLength(2, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SystemMessageToSend_Country")] public string Country { get; set; } /// /// Bundesland oder leer /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SystemMessageToSend_State")] public string State { get; set; } /// /// Stadt oder leer /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SystemMessageToSend_City")] public string City { get; set; } /// /// Postleitzahl oder leer /// [MaxLength(20, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SystemMessageToSend_Zip")] public string Zip { get; set; } /// /// Nur verifizierte App-User /// [Display(Name = "SystemMessageToSend_VerifiedOnly")] public bool VerifiedOnly { get; set; } /// /// Geschlecht oder leer /// [Display(Name = "SystemMessageToSend_Sex")] public SexVm? Sex { get; set; } /// /// Wurden die Nachrichten bereits gesendet? /// public bool HasBeenSent { get; set; } #endregion } /// /// Viewmodel für das Anlegen und Bearbeiten einer Systemnachricht die gesendet werden soll /// public class SystemMessageToSendCrudVm : SystemMessageToSendVm { /// /// Land-Name /// public string CountryName { get; set; } /// /// Bundesland-Name /// public string StateName { get; set; } } /// /// Viewmodel für eine Liste von Systemnachrichten die gesendet werden sollen Listendarstellung /// public class SystemMessageToSendListVm { /// /// Id der Nachricht /// public long Id { get; set; } /// /// Interner titel /// public string Title { get; set; } /// /// Nachricht die gesendet werden soll /// public string Message { get; set; } /// /// Anzahl der App-User die die Nachricht erhalten sollen /// public int AppUserCount { get; set; } /// /// Anzahl der nachrichten die gesendet wurden /// public int SentCount { get; set; } /// /// Datum wann die Nachricht gesendet werden soll /// public DateTimeOffset? ToSendDate { get; set; } /// /// Wurden die Nachrichten bereits gesendet? /// public bool HasBeenSent { get; set; } /// /// Datum wann die Nachricht gesendet wurden /// public DateTimeOffset? SentDate { get; set; } /// /// Von wem gesendet? /// public string SentBy { get; set; } /// /// Push-Notification senden? /// public bool SendPushNotification { get; set; } #region Filter-Settings /// /// Typ des App-Users /// public AppUserTypeVm AppUserType { get; set; } /// /// Typ des App-Users - Text /// public string AppUserTypeText { get; set; } /// /// Land oder leer /// public string Country { get; set; } /// /// Bundesland oder leer /// public string State { get; set; } /// /// Stadt oder leer /// public string City { get; set; } /// /// Postleitzahl oder leer /// public string Zip { get; set; } /// /// Nur verifizierte App-User /// public bool VerifiedOnly { get; set; } /// /// Geschlecht oder leer /// public SexVm? Sex { get; set; } /// /// Geschlecht oder leer als Text /// public string SexText { get; set; } #endregion /// /// Wann erstellt /// public DateTimeOffset Created { get; set; } /// /// Erstellt von? /// public string CreatedBy { get; set; } } }