namespace FLSDAL.DTO.Survey; // Question-bank fields only (no options) — used to assemble SurveyQuestionDetailDto. // No primary constructor (init-only properties) so this gets an implicit parameterless // constructor — Dapper's positional-record materializer requires an exact reader-schema // type match per parameter, which a System.Int32 reader column can never satisfy against // a Nullable constructor parameter. Property-setter mapping (used when a // parameterless constructor exists) handles nullable value types correctly instead. public record SurveyQuestionCoreRow { public int QuestionId { get; init; } public string QuestionCode { get; init; } = string.Empty; public string QuestionText { get; init; } = string.Empty; public int QuestionTypeId { get; init; } public int IsRequired { get; init; } public int SortOrder { get; init; } public int? RatingMin { get; init; } public int? RatingMax { get; init; } public string? RatingLabelLow { get; init; } public string? RatingLabelHigh { get; init; } public int? TextMaxLength { get; init; } public int? TextMinLength { get; init; } public string? YesLabel { get; init; } public string? NoLabel { get; init; } }