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();
}
}