flutter-freaccess-hub/lib/shared/components/molecules/modules/domain/entities/module.dart

83 lines
1.6 KiB
Dart

import 'package:hub/shared/components/molecules/modules/data/models/module_model.dart';
enum ModuleStatus { active, inactive, disabled }
enum EnumDisplay {
active('VISIVEL'),
inactive('INVISIVEL'),
expired('DESABILITADO');
final String value;
const EnumDisplay(this.value);
static EnumDisplay fromString(String? value) {
if (value == null) return EnumDisplay.inactive;
switch (value) {
case 'VISIVEL':
return EnumDisplay.active;
case 'INVISIVEL':
return EnumDisplay.inactive;
case 'DESABILITADO':
return EnumDisplay.expired;
default:
return EnumDisplay.inactive;
}
}
}
extension ModuleStatusExtension on ModuleStatus {
String get key {
switch (this) {
case ModuleStatus.active:
return 'VISIVEL';
case ModuleStatus.inactive:
return 'INVISIVEL';
case ModuleStatus.disabled:
return 'DESABILITADO';
}
}
}
class Module {
final String key;
final String display;
final String expirationDate;
final String startDate;
final int quantity;
Module({
required this.key,
required this.display,
required this.expirationDate,
required this.startDate,
required this.quantity,
});
factory Module.fromModel(ModuleModel model) {
return Module(
key: model.key,
display: model.display,
expirationDate: model.expirationDate,
startDate: model.startDate,
quantity: model.quantity,
);
}
ModuleModel toModel() {
return ModuleModel(
key: key,
display: display,
expirationDate: expirationDate,
startDate: startDate,
quantity: quantity,
);
}
}