--- source_files: - Common/DTS.CommonCore/Interface/CustomerDetails/ICustomerDetailsView.cs - Common/DTS.CommonCore/Interface/CustomerDetails/ICustomerDetailsViewModel.cs generated_at: "2026-04-17T16:36:39.753469+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "68517ff654ee10bc" --- # Documentation: Customer Details Interfaces ## 1. Purpose This module defines two marker interfaces, `ICustomerDetailsView` and `ICustomerDetailsViewModel`, which establish the View and ViewModel contracts for a Customer Details feature within an MVVM (Model-View-ViewModel) architecture. These interfaces extend base framework types (`IBaseView` and `IBaseViewModel`) without adding additional members, serving primarily as type identifiers for dependency injection, navigation, or view-binding purposes within the DTS.CommonCore system. --- ## 2. Public Interface ### `ICustomerDetailsView` **Namespace:** `DTS.Common.Interface` **Declaration:** ```csharp public interface ICustomerDetailsView : IBaseView { } ``` **Description:** A marker interface representing the View component for customer details. Inherits from `IBaseView` (defined in `DTS.Common.Base`). Declares no additional members beyond its base interface. --- ### `ICustomerDetailsViewModel` **Namespace:** `DTS.Common.Interface` **Declaration:** ```csharp public interface ICustomerDetailsViewModel : IBaseViewModel { } ``` **Description:** A marker interface representing the ViewModel component for customer details. Inherits from `IBaseViewModel` (defined in `DTS.Common.Base`). Declares no additional members beyond its base interface. --- ## 3. Invariants - Both interfaces are empty marker interfaces; any invariants are inherited from their respective base interfaces (`IBaseView` and `IBaseViewModel`). - **Unclear from source:** The specific contracts, properties, or methods guaranteed by `IBaseView` and `IBaseViewModel` are not defined in the provided source files. --- ## 4. Dependencies ### This module depends on: - `DTS.Common.Base` namespace - `IBaseView` — base interface for `ICustomerDetailsView` - `IBaseViewModel` — base interface for `ICustomerDetailsViewModel` ### What depends on this module: - **Unclear from source alone.** Consumers would typically include: - Concrete View implementations (e.g., WPF windows, pages, or user controls implementing `ICustomerDetailsView`) - Concrete ViewModel implementations implementing `ICustomerDetailsViewModel` - DI container registrations or navigation service configurations --- ## 5. Gotchas - **Empty marker interfaces:** Neither interface defines any members. All functionality must come from the base interfaces (`IBaseView`, `IBaseViewModel`) or be added via extension methods elsewhere in the codebase. - **No explicit contract:** Without visibility into `IBaseView` and `IBaseViewModel`, the actual capabilities and requirements of these interfaces cannot be determined from the provided source. - **Naming convention:** The interfaces follow a strict naming pattern (`ICustomerDetailsView` / `ICustomerDetailsViewModel`) suggesting a paired relationship, but this pairing is not enforced at the type level.