using CommunityToolkit.Mvvm.ComponentModel; using HC_APTBS.Models; using HC_APTBS.Services; namespace HC_APTBS.ViewModels { /// /// ViewModel for a curated bank of auxiliary relay toggles on the Bench page. /// Excludes relays driven by dedicated controls /// (oil pump, direction, heater / cooler, counter). /// public sealed partial class RelayBankViewModel : ObservableObject { private readonly IBenchService _bench; /// Solenoid power / pump keep-alive relay. [ObservableProperty] private bool _isElectronicOn; /// Panel flasher relay (status lamp blink). [ObservableProperty] private bool _isFlasherOn; /// 4-pulse-per-revolution output signal relay. [ObservableProperty] private bool _isPulse4SignalOn; /// Bench service used to drive the relays. public RelayBankViewModel(IBenchService benchService) { _bench = benchService; } partial void OnIsElectronicOnChanged(bool value) => _bench.SetRelay(RelayNames.Electronic, value); partial void OnIsFlasherOnChanged(bool value) => _bench.SetRelay(RelayNames.Flasher, value); partial void OnIsPulse4SignalOnChanged(bool value) => _bench.SetRelay(RelayNames.Pulse4Signal, value); } }