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