gehgassi_backend/gehGassi.Web/Models/SubscriptionBookingVm.cs

221 lines
6.4 KiB
C#

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