From b0846b2fefc8ed6546e3b45864446fcaa4d3aca1 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Tue, 8 Apr 2025 15:08:33 +0300 Subject: [PATCH] Add Gateway operational value classes and implementations --- lib/pages/routines/models/gateway.dart | 108 +++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 lib/pages/routines/models/gateway.dart diff --git a/lib/pages/routines/models/gateway.dart b/lib/pages/routines/models/gateway.dart new file mode 100644 index 00000000..be257a8b --- /dev/null +++ b/lib/pages/routines/models/gateway.dart @@ -0,0 +1,108 @@ +import 'package:syncrow_web/pages/routines/models/device_functions.dart'; +import 'package:syncrow_web/utils/constants/assets.dart'; + +class GatewayOperationalValue { + final String icon; + final String description; + final dynamic value; + + GatewayOperationalValue({ + required this.icon, + required this.description, + required this.value, + }); +} + +abstract class GatewayFunctions extends DeviceFunction { + final String type; + + GatewayFunctions({ + required super.deviceId, + required super.deviceName, + required super.code, + required super.operationName, + required super.icon, + required this.type, + }); + + List getOperationalValues(); +} + +final class GatewaySwitchAlarmSound extends GatewayFunctions { + GatewaySwitchAlarmSound({ + required super.deviceId, + required super.deviceName, + required super.type, + super.code = '', + super.operationName = 'Switch Alarm Sound', + super.icon = Assets.activeBell, + }); + + @override + List getOperationalValues() => [ + GatewayOperationalValue( + icon: Assets.assetsAcPower, + description: "ON", + value: true, + ), + GatewayOperationalValue( + icon: Assets.assetsAcPowerOFF, + description: "OFF", + value: false, + ), + ]; +} + +final class GatewayMasterState extends GatewayFunctions { + GatewayMasterState({ + required super.deviceId, + required super.deviceName, + required super.type, + super.code = '', + super.operationName = 'Master State', + super.icon = Assets.gear, + }); + + @override + List getOperationalValues() { + return [ + GatewayOperationalValue( + icon: Assets.assetsAcPower, + description: "Normal", + value: true, + ), + GatewayOperationalValue( + icon: Assets.assetsAcPowerOFF, + description: "Alarm", + value: false, + ), + ]; + } +} + +final class GatewayFactoryReset extends GatewayFunctions { + GatewayFactoryReset({ + required super.deviceId, + required super.deviceName, + required super.type, + super.code = '', + super.operationName = 'Factory Reset', + super.icon = Assets.factoryReset, + }); + + @override + List getOperationalValues() { + return [ + GatewayOperationalValue( + icon: Assets.assetsAcPower, + description: "ON", + value: true, + ), + GatewayOperationalValue( + icon: Assets.assetsAcPowerOFF, + description: "OFF", + value: false, + ), + ]; + } +}