--- source_files: - Common/DTS.CommonCore/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryView.cs - Common/DTS.CommonCore/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryViewModel.cs generated_at: "2026-04-16T12:26:11.956445+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "a788360f54c0a8e6" --- # Documentation: Power and Battery View/ViewModel Interfaces ## 1. Purpose This module defines two marker interfaces, `IPowerAndBatteryView` and `IPowerAndBatteryViewModel`, which serve as type contracts for the Power and Battery settings feature within the system. These interfaces follow the Model-View-ViewModel (MVVM) architectural pattern, providing type identity and polymorphic compatibility with the base view/viewmodel infrastructure while remaining empty to allow implementation-specific flexibility. --- ## 2. Public Interface ### `IPowerAndBatteryView` **Signature:** ```csharp public interface IPowerAndBatteryView : IBaseView { } ``` **Location:** `DTS.Common.Interface` namespace **Behavior:** An empty marker interface that extends `IBaseView`. It imposes no additional members beyond those inherited from `IBaseView`. Implementations represent the UI layer for power and battery configuration. --- ### `IPowerAndBatteryViewModel` **Signature:** ```csharp public interface IPowerAndBatteryViewModel : IBaseViewModel { } ``` **Location:** `DTS.Common.Interface` namespace **Behavior:** An empty marker interface that extends `IBaseViewModel`. It imposes no additional members beyond those inherited from `IBaseViewModel`. Implementations represent the presentation logic and state for power and battery configuration. --- ## 3. Invariants - Both interfaces must always inherit from their respective base types (`IBaseView` and `IBaseViewModel`). - The contracts defined by `IBaseView` and `IBaseViewModel` (not visible in these source files) must be fulfilled by any implementing class. - The namespace `DTS.Common.Interface` groups these interfaces with other system interfaces. **Note:** Specific invariants regarding member requirements cannot be determined from these source files alone, as both interfaces are empty marker interfaces delegating all contracts to their parent types. --- ## 4. Dependencies ### This module depends on: - `DTS.Common.Base` — Provides `IBaseView` and `IBaseViewModel` base interfaces ### What depends on this module: **Cannot be determined from source alone.** Consumers would include concrete View and ViewModel implementations for the Power and Battery settings feature, as well as any registration, navigation, or dependency injection configuration that references these interfaces. --- ## 5. Gotchas - **Empty marker interfaces:** Both interfaces define no members of their own. All behavior contracts come from `IBaseView` and `IBaseViewModel`. Developers implementing these interfaces must consult the base interface definitions to understand required members. - **Naming inconsistency:** The folder path (`SystemSettings/PowerAndBattery/`) suggests a hierarchical organization, but the namespace flattens to `DTS.Common.Interface`. This may cause confusion when locating related types. - **No explicit coupling:** There is no compile-time enforcement linking `IPowerAndBatteryView` to `IPowerAndBatteryViewModel`. The relationship is implied by naming convention only.