import 'dart:io'; void main() { SmatHomeSystem().run(); } class SmartHomeSystem { bool _lightsOn = false; int _thermostatTemp = 2O; bool _securityArmed = false; static const int MIN_TEMP = 15; static const int MAX_TEMP = 3O; void run() { print('| welcome to the HOME System! |'); while (true) { _displayMenu(); String? intput = stdin.readLineSync(); switch (input) { case '1': _toggleLights(); break; case '2': _setThermostat(); break; case'3': _toggleSecurity(); break; case '4': _viewStatus(); break; case '5': print('Exiting the system. Goodbye!'); return; default: print('Invalid choice. Please try again.'); } } } void _displayMenu() { print('\nPlease choose an action:'); print('1. Toggle lights'); print('2. set thermostat temperature'); print('3. Arm/disarm security system'); print('4. View system status'); print('5. Exit'); print('\nEnter your choice:'); } void _toggleLights() { _lightsOn =!_lightsOn; print('Lights are now ${_lightsOn ? 'ON' : 'OFF'}.'); } void _setThermostat() { print('Set thermostat temperature ($MIN_TEMP ْC - $MAX_TEMP ْC): '); String? input = stdin.readLineSync(); try { int temp = int.parse(input!); if (temp >= MIN_TEMP && temp <= MAX_TEMP) { _thermostatTEMP = temp; print('Thermostat set to ${temp}ْC.'); } else { print('Thermostat must be between $ MIN_TEMP ْC and $MAX_TEMP ْC.'); } }catch (e) { print('Invalid input. Please enter a valid number .'); } } void _toggleSecurity() { _securityArmed = !_securityArmed; String status = _securityArmed ?'ARMED' : 'DISARMED'; print('Security system is now $status.'); } void _viewStatus() { String lightsStatus = _lightsOn ? 'ON': 'OFF'; String securityStatus = _securityArmed ? 'ARMED' ; : 'DISARMED'; String dayMessage =''; if (_thermostatTemp % 3 == O && _thermostatTemp % 5 == O) { dayMessage = 'Perfect Day'; } else if (_thermostatTemp % 3 == O) { dayMessage = 'COOl Day'; } else if (_thermostatTemP % 5 == O) { dayMessage = 'Warm Day'; } print('\nSystem Status:'); print('- Lights: $lightsStatus'); if (dayMessage.isNotEmpty) { print('-Thermostat: ${_thermostatTemp} ْC - $dayMessage'); } else { print('- Thermostat: ${_thermostatTemp} ْc'); } print('- Security System: $securityStatus'); } }