2023-05-05 14:52:24 +00:00
|
|
|
enum ComparisonType {
|
2023-05-05 18:18:49 +00:00
|
|
|
contains,
|
|
|
|
containsIgnoreCase,
|
|
|
|
endsWithIgnoreCase,
|
2023-05-05 14:52:24 +00:00
|
|
|
equals,
|
|
|
|
equalsIgnoreCase,
|
|
|
|
;
|
|
|
|
|
|
|
|
factory ComparisonType.parse(String? value) {
|
|
|
|
return ComparisonType.values.firstWhere(
|
|
|
|
(v) => v.name == value,
|
|
|
|
orElse: () => equals,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class StringFilter {
|
|
|
|
final String filterString;
|
|
|
|
final ComparisonType type;
|
|
|
|
|
|
|
|
const StringFilter({
|
|
|
|
required this.filterString,
|
|
|
|
required this.type,
|
|
|
|
});
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
|
|
'filterString': filterString,
|
2023-05-07 23:07:32 +00:00
|
|
|
'type': type.name,
|
2023-05-05 14:52:24 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
factory StringFilter.fromJson(Map<String, dynamic> json) => StringFilter(
|
|
|
|
filterString: json['filterString'],
|
|
|
|
type: ComparisonType.parse(json['type']),
|
|
|
|
);
|
|
|
|
}
|