67 lines
1.5 KiB
Dart
67 lines
1.5 KiB
Dart
import 'package:birzha/models/attributes/attribute.dart';
|
|
import 'package:birzha/models/settings/settingsModel.dart';
|
|
|
|
enum PackagingType { yes, no }
|
|
|
|
class PackagingOption extends PostAttribute<String>
|
|
with AttributeWithValueNameMixin {
|
|
final PackagingType marketType;
|
|
|
|
PackagingOption._(this.marketType) : super({'id': _idToSet(marketType)});
|
|
|
|
static String _idToSet(PackagingType type) {
|
|
switch (type) {
|
|
case PackagingType.yes:
|
|
return 'yes';
|
|
case PackagingType.no:
|
|
return 'no';
|
|
}
|
|
}
|
|
|
|
@override
|
|
String get label {
|
|
switch (marketType) {
|
|
case PackagingType.yes:
|
|
return 'yes'.translation;
|
|
case PackagingType.no:
|
|
return 'no'.translation;
|
|
}
|
|
}
|
|
|
|
@override
|
|
String get primaryKeyField => 'id';
|
|
|
|
@override
|
|
String get value => label;
|
|
}
|
|
|
|
class PackagingAttribute extends PostAttribute<String>
|
|
with
|
|
KeyIndexedAttributeMixin,
|
|
SelectableAttributeMixin<String, AttributeWithValueNameMixin>,
|
|
OptionedAttributeMixin {
|
|
PackagingAttribute._(this.options) : super({'key': 'packaging'});
|
|
|
|
static PackagingAttribute getAttribute() {
|
|
return PackagingAttribute._(
|
|
PackagingType.values.map((e) => PackagingOption._(e)).toList());
|
|
}
|
|
|
|
@override
|
|
String get key => 'packaging';
|
|
|
|
@override
|
|
String get label => 'packaging'.translation;
|
|
|
|
@override
|
|
String get primaryKeyField => 'key';
|
|
|
|
@override
|
|
selectDelegate(groupValue) {
|
|
return SingleOptionSelectableDelegate(groupValue, options);
|
|
}
|
|
|
|
@override
|
|
final List<PackagingOption> options;
|
|
}
|