199 lines
4.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassi.Dto.Common;
namespace gehGassi.Dto.Vouchers
{
/// <summary>
/// DTO zum Überprüfen eines Gutscheincodes
/// </summary>
public class CheckVoucherCodeDto
{
/// <summary>
/// Manueller Gutscheincode
/// </summary>
[Required]
[MaxLength(14)]
public string Code { get; set; }
/// <summary>
/// Id des AppUsers
/// </summary>
[Required]
[MaxLength(128)]
public string AppUserId { get; set; }
}
/// <summary>
/// Dto für die Antwort auf die Überprüfung eines Gutscheincodes
/// </summary>
public class CheckVoucherCodeResultDto
{
/// <summary>
/// Id des Gutscheins
/// </summary>
public string VoucherId { get; set; }
/// <summary>
/// Id der Kampagne
/// </summary>
public string VoucherCampaignId { get; set; }
/// <summary>
/// Typ der Kampagne - Rabattgutschein oder Wertgutschein
/// </summary>
public VoucherCampaignTypeDto CampaignType { get; set; }
/// <summary>
/// Wert des Gutscheins
/// </summary>
public decimal VoucherAmmount { get; set; }
/// <summary>
/// Ergebnis der Validierung
/// </summary>
public VoucherValidationResultDto ValidationResult { get; set; }
}
/// <summary>
/// DTO zum abfragen eines Gutschein-Codes via QR-Code
/// </summary>
public class GetVoucherByQrCodeDto
{
/// <summary>
/// QR Gutscheincode
/// </summary>
[Required]
[MaxLength(32)]
public string QrCode { get; set; }
}
/// <summary>
/// DTO zum abfragen eines Gutschein-Codes via QR-Code
/// </summary>
public class VoucherByQrCodeResultDto
{
/// <summary>
/// Existiert ein Code für den QR-Code
/// </summary>
public bool Exists { get; set; }
/// <summary>
/// Code des Gutscheins
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// DTO zum Reservieren eines Gutscheins
/// </summary>
public class ReserveVoucherDto
{
/// <summary>
/// Id des Gutscheins
/// </summary>
[Required]
[MaxLength(128)]
public string VoucherId { get; set; }
/// <summary>
/// Manueller Gutscheincode
/// </summary>
[Required]
[MaxLength(14)]
public string Code { get; set; }
/// <summary>
/// Id des AppUsers
/// </summary>
[Required]
[MaxLength(128)]
public string AppUserId { get; set; }
/// <summary>
/// Id des Walks
/// </summary>
[Required]
[MaxLength(128)]
public string WalkId { get; set; }
/// <summary>
/// Betrag der reserviert werden soll. Muss kleiner oder gleich dem Gutscheinwert sein
/// </summary>
[Required]
public decimal Ammount { get; set; }
}
/// <summary>
/// DTO für die Antwort auf die Reservierung eines Gutscheins
/// </summary>
public class ReserveVoucherResultDto
{
/// <summary>
/// Erfolgreich reserviert
/// </summary>
public bool Success { get; set; }
/// <summary>
/// Id der Reservierung. -1 wenn nicht erfolgreich
/// </summary>
public long VoucherUsageId { get; set; }
/// <summary>
/// Ergebnis der Validierung
/// </summary>
public VoucherValidationResultDto ValidationResult { get; set; }
/// <summary>
/// Geldtransfer fehlgeschlagen
/// </summary>
public bool TransferFailed { get; set; }
/// <summary>
/// Gutschein nicht gefunden
/// </summary>
public bool VoucherNotFound { get; set; }
/// <summary>
/// Kampagne nicht gefunden
/// </summary>
public bool CampaignNotFound { get; set; }
/// <summary>
/// Kunde nicht gefunden
/// </summary>
public bool CustomerNotFound { get; set; }
}
/// <summary>
/// DTO zum Stornieren eines Gutscheins, egal ob reserviert oder nicht
/// </summary>
public class CancelVoucherDto
{
/// <summary>
/// Id des Gutscheins
/// </summary>
[Required]
[MaxLength(128)]
public string VoucherId { get; set; }
/// <summary>
/// Id des AppUsers
/// </summary>
[Required]
[MaxLength(128)]
public string AppUserId { get; set; }
/// <summary>
/// Id des Walks
/// </summary>
[Required]
[MaxLength(128)]
public string WalkId { get; set; }
}
}