birzha_mobile/lib/models/attributes/packaging.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;
}