QuestionsModel class

Constructors

QuestionsModel({required String question, required String key, String? validationMessage, QuestionFieldType? type, List<String>? options, QuestionOptionsPresentation? optionsPresentation, int? optionsChipMaxCount, String? optionsSheetTitle, Future<String?> onValidate(String answer)?})
const

Properties

hashCode int
The hash code for this object.
no setterinherited
key String
The key to store the answer in the data map.
final
onValidate Future<String?> Function(String answer)?
Optional async callback for custom validation after the AI accepts the answer.
final
options List<String>?
Optional fixed choices for this question. When non-empty, the chat shows chips or a searchable sheet (see optionsPresentation); the chosen string is sent to the model. The AI is instructed to accept only those values.
final
optionsChipMaxCount int?
Overrides the automatic chip threshold (only used when optionsPresentation is null or QuestionOptionsPresentation.automatic).
final
optionsPresentation QuestionOptionsPresentation?
How to show options. Null means QuestionOptionsPresentation.automatic: chips if the count is at most optionsChipMaxCount (default kDefaultOptionsChipMaxCount), otherwise a searchable bottom sheet.
final
optionsSheetTitle String?
Title on the searchable sheet (e.g. Select country).
final
question String
The question to ask the user.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
type QuestionFieldType?
Optional hint for how to interpret answers (text vs numeric, etc.).
final
validationMessage String?
Custom instructions for the AI on how to judge this answer (injected into the system prompt).
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

normalizeOptionsList(List<String>? raw) List<String>
Trim, drop empty entries, and dedupe by trimmed value (first occurrence wins).
useSearchableSheetForOptions({required List<String> normalized, QuestionOptionsPresentation? presentation, int? chipMaxCount}) bool
Whether the UI should use the searchable sheet for this normalized option list.

Constants

kDefaultOptionsChipMaxCount → const int
Default max options shown as inline chips before using a searchable sheet.