using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Domain.Base; using gehGassi.Domain.Common; namespace gehGassi.Domain.Coins { /// /// Repräsentiert ein Coins-Konto /// public class CoinsAccount : SyncEntity { /// /// Id des App-Users - Besitzer des Kontos /// [Required] [MaxLength(128)] public string AppUserId { get; set; } /// /// Typ des Appusers - jeder hat 2 Konten falls ein AppUser Beides ist /// [Required] public AppUserType AppUserType { get; set; } /// /// Aktueller Kontostand /// [Required] public decimal Balance { get; set; } /// /// Wann erstellt? /// [Required] public DateTimeOffset Created { get; set; } } /// /// Repräsentiert eine Coins-Transaktion /// public class CoinsTransaction { /// /// Eindeutige Id /// [Key] [Required] public long Id { get; set; } /// /// Typ der Transaktion /// [Required] public CoinsTransactionType TransactionType { get; set; } /// /// Id des Accounts /// [Required] [MaxLength(128)] public string AccountId { get; set; } /// /// Betrag der Transaktion /// [Required] public decimal Ammount { get; set; } /// /// Optional: Walk auf den sich die Transaktion bezieht /// [MaxLength(128)] public string WalkId { get; set; } /// /// Wann erstellt? /// [Required] public DateTimeOffset Created { get; set; } } /// /// Repräsentiert wie viele Coins ein AppUser in einem Monat erworben hat /// public class CoinsPerMonth { /// /// Eindeutige Id /// [Key] [Required] public long Id { get; set; } /// /// Id des AppUsers /// [Required] [MaxLength(128)] public string AppUserId { get; set; } /// /// Typ des Appusers - jeder hat 2 Konten falls ein AppUser Beides ist /// [Required] public AppUserType AppUserType { get; set; } /// /// Jahr /// [Required] public int Year { get; set; } /// /// Monat /// [Required] public int Month { get; set; } /// /// Aktueller Kontostand im Jahr/Monat /// [Required] public decimal Balance { get; set; } /// /// Letztes Update /// [Required] public DateTimeOffset LastUpdate { get; set; } } /// /// Repräsentiert wie viele Coins ein AppUser in einem Jahr erworben hat /// public class CoinsPerYear { /// /// Eindeutige Id /// [Key] [Required] public long Id { get; set; } /// /// Id des AppUsers /// [Required] [MaxLength(128)] public string AppUserId { get; set; } /// /// Typ des Appusers - jeder hat 2 Konten falls ein AppUser Beides ist /// [Required] public AppUserType AppUserType { get; set; } /// /// Jahr /// [Required] public int Year { get; set; } /// /// Aktueller Kontostand im Jahr/Monat /// [Required] public decimal Balance { get; set; } /// /// Letztes Update /// [Required] public DateTimeOffset LastUpdate { get; set; } } /// /// Repräsentiert wie viele Coins ein AppUser in einem Monat erworben hat mit Namen aufgelöst /// public class CoinsPerMonthWithNames { /// /// Eindeutige Id /// public long Id { get; set; } /// /// Id des AppUsers /// public string AppUserId { get; set; } /// /// Name des AppUsers /// public string AppUserName { get; set; } /// /// Foto des AppUsers /// public string AppUserPhoto { get; set; } /// /// Typ des Appusers - jeder hat 2 Konten falls ein AppUser Beides ist /// public AppUserType AppUserType { get; set; } /// /// Jahr /// public int Year { get; set; } /// /// Monat /// public int Month { get; set; } /// /// Aktueller Kontostand im Jahr/Monat /// public decimal Balance { get; set; } /// /// Letztes Update /// public DateTimeOffset LastUpdate { get; set; } } /// /// Repräsentiert wie viele Coins ein AppUser in einem Jahr erworben hat mit Namen aufgelöst /// public class CoinsPerYearWithNames { /// /// Eindeutige Id /// public long Id { get; set; } /// /// Id des AppUsers /// public string AppUserId { get; set; } /// /// Name des AppUsers /// public string AppUserName { get; set; } /// /// Foto des AppUsers /// public string AppUserPhoto { get; set; } /// /// Typ des Appusers - jeder hat 2 Konten falls ein AppUser Beides ist /// public AppUserType AppUserType { get; set; } /// /// Jahr /// public int Year { get; set; } /// /// Aktueller Kontostand im Jahr/Monat /// public decimal Balance { get; set; } /// /// Letztes Update /// public DateTimeOffset LastUpdate { get; set; } } }