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; }
}
}