using System; namespace GoodBooks.PAY.PAYDAL.DTO.Loyalty { /// /// Maps to MCUSTLOYALTYENROLLMENT — one row per customer per loyalty program. /// Joined fields (ProgramCode, ProgramName, TierName) are populated by read queries /// that JOIN MLOYALTYPROGRAM and MLOYALTYTIER. /// public class CustomerLoyaltyEnrollmentDTO { #region PrivateMembers private int enrollmentid; private int customerid; private int loyaltyprogramid; private int loyaltytierid; private DateTime enrolledon; private string membershipno; private decimal currentpoints; private decimal lifetimepoints; private DateTime? lastactivitydate; 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; // Joined fields — populated by GET queries only, not written back to DB private string programcode; private string programname; private string tiername; #endregion #region PublicProperties public int EnrollmentId { get { return enrollmentid; } set { enrollmentid = value; } } public int CustomerId { get { return customerid; } set { customerid = value; } } public int LoyaltyProgramId { get { return loyaltyprogramid; } set { loyaltyprogramid = value; } } public int LoyaltyTierId { get { return loyaltytierid; } set { loyaltytierid = value; } } public DateTime EnrolledOn { get { return enrolledon; } set { enrolledon = value; } } public string MembershipNo { get { return membershipno; } set { membershipno = value; } } public decimal CurrentPoints { get { return currentpoints; } set { currentpoints = value; } } public decimal LifetimePoints { get { return lifetimepoints; } set { lifetimepoints = value; } } public DateTime? LastActivityDate { get { return lastactivitydate; } set { lastactivitydate = 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; } } // ── Joined / computed fields (read-only from DB joins) ──────────────── public string ProgramCode { get { return programcode; } set { programcode = value; } } public string ProgramName { get { return programname; } set { programname = value; } } public string TierName { get { return tiername; } set { tiername = value; } } #endregion } }