--- source_files: - Common/DTS.Common/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryView.cs - Common/DTS.Common/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryViewModel.cs generated_at: "2026-04-17T16:25:09.412115+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "1379d037a4fc0710" --- # PowerAndBattery ### Purpose This module defines the contract interfaces for the Power and Battery settings feature within the system settings hierarchy. It follows the Model-View-ViewModel (MVVM) pattern, providing empty marker interfaces that extend base view and view model contracts, allowing concrete implementations to be injected and swapped at runtime. ### Public Interface **`IPowerAndBatteryView`** (`IPowerAndBatteryView.cs`) - **Signature:** `public interface IPowerAndBatteryView : IBaseView { }` - **Behavior:** Marker interface for Power and Battery settings views. Inherits from `IBaseView` but defines no additional members. **`IPowerAndBatteryViewModel`** (`IPowerAndBatteryViewModel.cs`) - **Signature:** `public interface IPowerAndBatteryViewModel : IBaseViewModel { }` - **Behavior:** Marker interface for Power and Battery settings view models. Inherits from `IBaseViewModel` but defines no additional members. ### Invariants - Both interfaces must remain empty marker interfaces, relying entirely on their base contracts (`IBaseView`, `IBaseViewModel`) for functionality. - The View-ViewModel pairing is implied by naming convention but not enforced at compile time. ### Dependencies - **Depends on:** `DTS.Common.Base` (specifically `IBaseView` and `IBaseViewModel`) - **Dependents:** Unknown from source alone—likely consumed by concrete implementations in a UI layer and dependency injection configuration. ### Gotchas - The interfaces define no Power/Battery-specific members. Any domain-specific properties or methods must be added to these interfaces or handled through the base interfaces' mechanisms. The current design suggests either a placeholder implementation or that all required behavior is already defined in the base interfaces. ---