import 'package:syncrow_web/pages/routines/models/gang_switches/base_switch_function.dart';
import 'package:syncrow_web/pages/routines/models/gang_switches/switch_operational_value.dart';
import 'package:syncrow_web/utils/constants/assets.dart';

class TwoGangSwitch1Function extends BaseSwitchFunction {
  TwoGangSwitch1Function({required super.deviceId, required super.deviceName})
      : super(
          code: 'switch_1',
          operationName: 'Light 1 Switch',
          icon: Assets.assetsAcPower,
        );

  @override
  List<SwitchOperationalValue> getOperationalValues() => [
        SwitchOperationalValue(
          icon: Assets.assetsAcPower,
          description: "ON",
          value: true,
        ),
        SwitchOperationalValue(
          icon: Assets.assetsAcPowerOFF,
          description: "OFF",
          value: false,
        ),
      ];
}

class TwoGangSwitch2Function extends BaseSwitchFunction {
  TwoGangSwitch2Function({required super.deviceId, required super.deviceName})
      : super(
          code: 'switch_2',
          operationName: 'Light 2 Switch',
          icon: Assets.assetsAcPower,
        );

  @override
  List<SwitchOperationalValue> getOperationalValues() => [
        SwitchOperationalValue(
          icon: Assets.assetsAcPower,
          description: "ON",
          value: true,
        ),
        SwitchOperationalValue(
          icon: Assets.assetsAcPowerOFF,
          description: "OFF",
          value: false,
        ),
      ];
}

class TwoGangCountdown1Function extends BaseSwitchFunction {
  TwoGangCountdown1Function({required super.deviceId, required super.deviceName})
      : super(
          code: 'countdown_1',
          operationName: 'Light 1 Countdown',
          icon: Assets.assetsLightCountdown,
        );

  @override
  List<SwitchOperationalValue> getOperationalValues() => [
        SwitchOperationalValue(
          icon: '',
          description: "sec",
          value: 0.0,
          minValue: 0,
          maxValue: 43200,
          stepValue: 1,
        ),
      ];
}

class TwoGangCountdown2Function extends BaseSwitchFunction {
  TwoGangCountdown2Function({required super.deviceId, required super.deviceName})
      : super(
          code: 'countdown_2',
          operationName: 'Light 2 Countdown',
          icon: Assets.assetsLightCountdown,
        );

  @override
  List<SwitchOperationalValue> getOperationalValues() => [
        SwitchOperationalValue(
          icon: '',
          description: "sec",
          value: 0.0,
          minValue: 0,
          maxValue: 43200,
          stepValue: 1,
        ),
      ];
}
