using System;
using System.Collections.Generic;
namespace GoodBooks.PAY.PAYDAL.DTO.Loyalty
{
///
/// Maps to MLOYALTYPROGRAM (header) with embedded child arrays.
/// Child arrays are populated by the DAL before serialisation.
///
public class LoyaltyProgramDTO
{
#region PrivateMembers
private int loyaltyprogramid;
private string programcode;
private string programname;
private byte programtype;
private string pointsname;
private short pointsexpiredays;
private decimal minredeempoints;
private decimal pointstocurrency;
private decimal currencytopoints;
private byte allowtiering;
private string remarks;
private short version;
private byte status;
private short sortorder;
private int createdbyid;
private DateTime createdon;
private int modifiedbyid;
private DateTime modifiedon;
private byte sourcetype;
private int tenantid;
private List loyaltytierarray = new List();
private List loyaltyearncfgarray = new List();
#endregion
#region PublicProperties
public int LoyaltyProgramId
{
get { return loyaltyprogramid; }
set { loyaltyprogramid = value; }
}
public string ProgramCode
{
get { return programcode; }
set { programcode = value; }
}
public string ProgramName
{
get { return programname; }
set { programname = value; }
}
/// 1=B2B, 2=B2C, 3=Custom
public byte ProgramType
{
get { return programtype; }
set { programtype = value; }
}
/// Display label for points (e.g. "Stars", "Coins").
public string PointsName
{
get { return pointsname; }
set { pointsname = value; }
}
/// Days after which earned points expire. 0 = never.
public short PointsExpireDays
{
get { return pointsexpiredays; }
set { pointsexpiredays = value; }
}
/// Minimum points required before a redemption is allowed.
public decimal MinRedeemPoints
{
get { return minredeempoints; }
set { minredeempoints = value; }
}
/// Conversion rate: how much currency 1 point is worth.
public decimal PointsToCurrency
{
get { return pointstocurrency; }
set { pointstocurrency = value; }
}
/// Conversion rate: how many points 1 unit of currency earns.
public decimal CurrencyToPoints
{
get { return currencytopoints; }
set { currencytopoints = value; }
}
/// 0=No tiering, 1=Tiering enabled.
public byte AllowTiering
{
get { return allowtiering; }
set { allowtiering = value; }
}
public string Remarks
{
get { return remarks; }
set { remarks = value; }
}
public short Version
{
get { return version; }
set { version = value; }
}
public byte Status
{
get { return status; }
set { status = value; }
}
public short SortOrder
{
get { return sortorder; }
set { sortorder = value; }
}
public int CreatedById
{
get { return createdbyid; }
set { createdbyid = value; }
}
public DateTime CreatedOn
{
get { return createdon; }
set { createdon = value; }
}
public int ModifiedById
{
get { return modifiedbyid; }
set { modifiedbyid = value; }
}
public DateTime ModifiedOn
{
get { return modifiedon; }
set { modifiedon = value; }
}
public byte SourceType
{
get { return sourcetype; }
set { sourcetype = value; }
}
public int TenantId
{
get { return tenantid; }
set { tenantid = value; }
}
/// Tier definitions for this program. Empty when AllowTiering=0.
public List LoyaltyTierArray
{
get { return loyaltytierarray; }
set { loyaltytierarray = value; }
}
/// Earn rules for this program.
public List LoyaltyEarnCfgArray
{
get { return loyaltyearncfgarray; }
set { loyaltyearncfgarray = value; }
}
#endregion
}
}