using System;
namespace GoodBooks.PAY.PAYDAL.DTO.Loyalty
{
///
/// Maps to MLOYALTYEARNCFG — earn-rule configuration for a loyalty program.
/// Higher-priority rules (specific gateway / tier / product) override global rules
/// when the BLL resolves the applicable rule at earn-time.
///
public class LoyaltyEarnCfgDTO
{
#region PrivateMembers
private int loyaltyearncfgid;
private int loyaltyprogramid;
private string rulename;
private byte ruletype;
private int referenceid;
private decimal earnpoints;
private DateTime validfrom;
private DateTime? validto;
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;
#endregion
#region PublicProperties
public int LoyaltyEarnCfgId
{
get { return loyaltyearncfgid; }
set { loyaltyearncfgid = value; }
}
public int LoyaltyProgramId
{
get { return loyaltyprogramid; }
set { loyaltyprogramid = value; }
}
public string RuleName
{
get { return rulename; }
set { rulename = value; }
}
/// 1=Global, 2=ByCategory, 3=ByGateway, 4=ByTier, 5=ByProduct
public byte RuleType
{
get { return ruletype; }
set { ruletype = value; }
}
///
/// Reference entity ID relevant to the RuleType
/// (CategoryId, PayGatewayId, LoyaltyTierId, or ProductId).
/// Defaults to -1 for Global rules where no reference entity applies.
///
public int ReferenceId
{
get { return referenceid; }
set { referenceid = value; }
}
/// Points awarded per unit of currency for orders matching this rule.
public decimal EarnPoints
{
get { return earnpoints; }
set { earnpoints = value; }
}
public DateTime ValidFrom
{
get { return validfrom; }
set { validfrom = value; }
}
/// NULL means the rule never expires.
public DateTime? ValidTo
{
get { return validto; }
set { validto = 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; }
}
#endregion
}
}