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
}