using System;
using System.ComponentModel.DataAnnotations;
namespace gehGassi.Web.Models
{
///
/// Viewmodel für das anlegen von Abonnementbuchungen
///
public class SubscriptionBookingCreateVm
{
///
/// Id des App-Users
///
[Required(ErrorMessage = "Err_Required")]
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "SubscriptionBooking_AppUserId")]
public string AppUserId { get; set; }
///
/// Name des Appusers
///
public string AppUserName { get; set; }
///
/// Id des Abonnements
///
[Required(ErrorMessage = "Err_Required")]
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "SubscriptionBooking_SubscriptionId")]
public string SubscriptionId { get; set; }
///
/// Name des Abos
///
public string SubscriptionName { get; set; }
///
/// Plattform für die die Version gilt
///
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_Platform", Description = "AppVersion_Platform_Desc")]
public PlatformVm Platform { get; set; }
///
/// Wann läuft das Abonnement ab?
///
[Display(Name = "SubscriptionBooking_ExpirationDate")]
public DateTimeOffset? ExpirationDate { get; set; }
}
///
/// Viewmodel für das Bearbeiten von Abonnementbuchungen
///
public class SubscriptionBookingEditVm
{
///
/// Id des Abonnements des App-Users
///
[Required(ErrorMessage = "Err_Required")]
public long Id { get; set; }
///
/// Id des App-Users
///
[Required(ErrorMessage = "Err_Required")]
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "SubscriptionBooking_AppUserId")]
public string AppUserId { get; set; }
///
/// Name des Appusers
///
public string AppUserName { get; set; }
///
/// Id des Abonnements
///
[Required(ErrorMessage = "Err_Required")]
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "SubscriptionBooking_SubscriptionId")]
public string SubscriptionId { get; set; }
///
/// Name des Abos
///
public string SubscriptionName { get; set; }
///
/// Plattform für die die Version gilt
///
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_Platform", Description = "AppVersion_Platform_Desc")]
public PlatformVm Platform { get; set; }
///
/// Wann läuft das Abonnement ab?
///
[Display(Name = "SubscriptionBooking_ExpirationDate")]
public DateTimeOffset? ExpirationDate { get; set; }
}
///
/// Viewmodel für die Anzeige von Abonnementbuchungen
///
public class SubscriptionBookingListVm
{
///
/// Id des Abonnements des App-Users
///
public long Id { get; set; }
///
/// Id des App-Users
///
public string AppUserId { get; set; }
///
/// Name des App-Users
///
public string AppUserName { get; set; }
///
/// Optional - Foto des Benutzers
///
public string AppUserPhoto { get; set; }
///
/// App user type
///
public AppUserTypeVm AppUserType { get; set; }
public string AppUserTypeText { get; set; }
///
/// Id des Abonnements
///
public string SubscriptionId { get; set; }
///
/// Code des Abonnements
///
public string SubscriptionCode { get; set; }
///
/// Dauer des Abonnements
///
public SubscriptionLengthVm SubscriptionLength { get; set; }
public string SubscriptionLengthText { get; set; }
///
/// Preis des Abonnements in Euro
///
public decimal SubscriptionPrice { get; set; }
///
/// Art des Abonnements - für welchen Benutzer-Typ?
///
public AppModeVm SubscriptionAppMode { get; set; }
public string SubscriptionAppModeText { get; set; }
///
/// Name des Abonnements
///
public string SubscriptionName { get; set; }
///
/// Zeit in Tagen die als Toleranz bei Ablauf akzeptiert wird
///
public int SubscriptionGracePeriodInDays { get; set; }
///
/// Ist das Abonnement gültig?
///
public bool IsValid { get; set; }
///
/// Wann läuft das Abonnement ab?
///
public DateTimeOffset? ExpirationDate { get; set; }
///
/// Wann läuft das Abonnement ab? Mit Toleranzzeit
///
public DateTimeOffset? ExpirationDateWithGrace { get; set; }
///
/// Wann wurde das Abonnement zuletzt verlängert?
///
public DateTimeOffset? LastRenewalDate { get; set; }
///
/// Letzte Aktualisierung
///
public DateTimeOffset? LastUpdate { get; set; }
///
/// Wurde das Abonnement manuell erstellt?
///
public bool Manual { get; set; }
///
/// Platform des Devices
///
public PlatformVm Platform { get; set; }
public string PlatformText { get; set; }
///
/// Erstellt von?
///
public string CreatedBy { get; set; }
///
/// Wann wurde das Abonnement erstellt?
///
public DateTimeOffset Created { get; set; }
}
}