using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Dfs.WayneChina.PosModelMini
{
public class PosTrx
{
///
/// Unique id of the POS transaction.
///
public Guid Id { get; set; }
///
/// The line items of the POS transaction.
///
public virtual List Items { get; set; }
///
/// The discounts of the POS transaction.
///
public virtual List Discounts { get; set; }
///
/// The payments of the POS transaction.
///
public virtual List Payments { get; set; }
///
/// Source of the POS transaction, indoor or outdoor.
///
public PosTrxSource TransactionSource { get; set; }
///
/// POS transaction type.
///
public PosTrxType TransactionType { get; set; }
///
/// notice, this value could be duplicated due to business requirment (used by rolling).
///
[MaxLength(20)]
public string ReceiptId { get; set; }
///
/// notice, this value could be duplicated due to business requirment (used by rolling).
///
public int ShiftId { get; set; }
///
/// Gets or sets the time of the trx posted from POS, POS will set this value from its side.
///
[Required]
public DateTime TransactionInitTimeInPos { get; set; }
///
/// Gets or sets the time of the trx posted from POS and received by server, server will set this value once received it.
///
public DateTime TransactionArrivedAtServerTime { get; set; }
///
/// amount that the customer finally needs to pay
///
public decimal NetAmount { get; set; }
///
/// total amount without discount deducted yet.
///
public decimal GrossAmount { get; set; }
///
/// Id of the currency used to pay the POS transaction.
///
public Guid? CurrencyId { get; set; }
///
/// Currency used to pay the transaction.
///
public virtual Currency Currency { get; set; }
///
/// POS Transaction status.
///
public PosTrxStatus TransactionStatus { get; set; }
///
/// Refund link.
///
public Guid? RefundLink { get; set; }
///
/// Id of the business unit this transaction is made.
///
public Guid BusinessUnitId { get; set; }
///
/// Gets or sets which BusinessUnit(typically a site) created this PosTrx.
///
public virtual BusinessUnit CreatedFromSite { get; set; }
///
/// Site device unique id.
///
public Guid SiteDeviceId { get; set; }
///
/// Gets or sets which SiteDevice created (by a operator operates on it) this PosTrx.
///
public virtual SiteDevice CreatedFromSiteDevice { get; set; }
///
/// Additional info regarding the current transaction.
///
public string TrxComment { get; set; }
}
}