using System; using System.Collections.Generic; namespace FrameworkDAL.DTO.MetaReport { /// /// MMETAREPORTASPECTOPTION row — one selectable value within an aspect. Value is stored as /// text; ValueType says how the frontend should parse it back (0=string, 1=number, /// 2=boolean), matching IMetaReportOption.value's `string | number | boolean` union. /// ApplicableVariantIds is populated from MMETAREPORTOPTIONVARIANT by the DAL/BLL assembly /// step, not by a direct column on this table — an empty list means "always applicable" /// (IMetaReportOption.applicableVariants omitted/empty), not "applicable to nothing". /// OptionId <= 0 means "new row, not yet saved" for the diff-based reconcile. /// public class MetaReportAspectOptionDTO { public int OptionId { get; set; } public int AspectId { get; set; } public string Label { get; set; } = string.Empty; public string Value { get; set; } = string.Empty; /// 0 = String, 1 = Number, 2 = Boolean. public byte ValueType { get; set; } public short SortOrder { get; set; } = 9999; public int CreatedById { get; set; } = -1; public DateTime CreatedOn { get; set; } public int ModifiedById { get; set; } = -1; public DateTime ModifiedOn { get; set; } public List ApplicableVariantIds { get; set; } = new(); } }