namespace MarketingDAL.DTO.Advertisement; /// /// MarketMind AI execution layer — an Advertisement (MADVERTISEMENT), optionally attached to a /// MarketingCampaign. See the plan (~/.claude/plans/in-entitlement-also-we-async-charm.md, /// Phase 0 — MarketMind AI). /// public class AdvertisementDTO { #region Advertisement public int AdId { get; set; } public string AdCode { get; set; } = string.Empty; public string AdName { get; set; } = string.Empty; /// Optional FK to MMKTCAMPAIGN — -1 sentinel = not applicable. public int CampaignId { get; set; } = -1; public string? CampaignCode { get; set; } public string? CampaignName { get; set; } /// Free text — e.g. "Google Ads"/"Meta"/"LinkedIn" — too varied to enumerate. public string? Channel { get; set; } /// Free-text/URL reference to the ad creative (asset lives elsewhere — CMS/DMS/external). public string? CreativeRef { get; set; } public decimal SpendAmount { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public string? Remarks { get; set; } #endregion #region Base public int CreatedById { get; set; } public DateTime CreatedOn { get; set; } public string? CreatedByName { get; set; } public int ModifiedById { get; set; } public DateTime ModifiedOn { get; set; } public string? ModifiedByName { get; set; } #endregion #region Standard public short SortOrder { get; set; } public byte Status { get; set; } public short Version { get; set; } public int TenantId { get; set; } #endregion }