gehgassi_backend/gehGassi.Domain/Dogs/AppUserSubscription.cs

199 lines
5.2 KiB
C#

using gehGassi.Domain.Common;
using System;
using System.ComponentModel.DataAnnotations;
namespace gehGassi.Domain.Dogs
{
/// <summary>
/// Repräsentiert ein App-User-Abonnement
/// </summary>
public class AppUserSubscription
{
/// <summary>
/// Id des Abonnements des App-Users
/// </summary>
[Key]
[Required]
public long Id { get; set; }
/// <summary>
/// Id des App-Users
/// </summary>
[Required]
[MaxLength(128)]
public string AppUserId { get; set; }
/// <summary>
/// Id des Abonnements
/// </summary>
[Required]
[MaxLength(128)]
public string SubscriptionId { get; set; }
/// <summary>
/// Ist das Abonnement gültig?
/// </summary>
[Required]
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>
[Required]
public bool Manual { get; set; }
/// <summary>
/// InAppBilling Purchase Json
/// </summary>
public string? InAppBillingPurchaseJson { get; set; }
/// <summary>
/// Platform des Devices
/// </summary>
[Required]
public Platform Platform { get; set; }
/// <summary>
/// Erstellt von?
/// </summary>
[MaxLength(256)]
public string CreatedBy { get; set; }
/// <summary>
/// Wann wurde das Abonnement erstellt?
/// </summary>
public DateTimeOffset Created { get; set; }
}
/// <summary>
/// App-User-Abonnement mit Namen aufgelöst.
/// </summary>
public class AppUserSubscriptionWithNames
{
/// <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 AppUserType AppUserType { 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 SubscriptionLength SubscriptionLength { 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 AppMode SubscriptionAppMode { 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 Platform Platform { get; set; }
/// <summary>
/// Erstellt von?
/// </summary>
public string CreatedBy { get; set; }
/// <summary>
/// Wann wurde das Abonnement erstellt?
/// </summary>
public DateTimeOffset Created { get; set; }
}
}