278 lines
6.8 KiB
C#

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