namespace MarketingDAL.DTO.Collateral;
///
/// MarketMind AI execution layer — a Collateral (MCOLLATERAL): a thin marketing-semantic overlay
/// over a sales/marketing asset that may live in DMS's document store. Owns marketing-specific
/// tagging only (Format, linked Product/Persona) — it deliberately does NOT own the file/binary
/// itself. is a SOFT reference (int, -1 = none) to DMS's document
/// entity when the asset has actually been uploaded there; it is NOT FK-constrained for the same
/// cross-module reason as ContentRefDTO.SourceContentId (see that class's doc) — DMS and Marketing
/// are different modules, and a marketing user may be tracking a URL/external asset informally
/// without it ever living in DMS.
///
public class CollateralDTO
{
#region Collateral
public int CollateralId { get; set; }
public string CollateralCode { get; set; } = string.Empty;
public string CollateralTitle { get; set; } = string.Empty;
/// Free text — e.g. "PDF"/"Video"/"Deck" — too varied to enumerate.
public string? Format { get; set; }
/// Optional FK to MMKTPRODUCT — -1 sentinel = not applicable.
public int LinkedProductId { get; set; } = -1;
public string? LinkedProductCode { get; set; }
public string? LinkedProductName { get; set; }
/// Optional FK to MPERSONA — -1 sentinel = not applicable.
public int LinkedPersonaId { get; set; } = -1;
public string? LinkedPersonaCode { get; set; }
public string? LinkedPersonaName { get; set; }
/// Soft, non-FK-constrained reference to DMS's document entity. -1 = none (see class doc).
public int SourceDocumentId { get; set; } = -1;
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
}