init
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/Interface/CustomerDetails/ICustomerDetailsView.cs
|
||||
- Common/DTS.CommonCore/Interface/CustomerDetails/ICustomerDetailsViewModel.cs
|
||||
generated_at: "2026-04-16T12:19:49.445469+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "b07af412c78e07b1"
|
||||
---
|
||||
|
||||
# Documentation: Customer Details Interfaces
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module defines two marker interfaces—`ICustomerDetailsView` and `ICustomerDetailsViewModel`—that establish type identity for customer details components within a Model-View-ViewModel (MVVM) architecture. These interfaces exist to provide a contract for customer-specific views and view models, enabling type-safe binding, dependency injection, and navigation patterns while inheriting core behaviors from base interfaces in the `DTS.Common.Base` namespace.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `ICustomerDetailsView`
|
||||
- **Namespace:** `DTS.Common.Interface`
|
||||
- **Inheritance:** `IBaseView` (from `DTS.Common.Base`)
|
||||
- **Signature:**
|
||||
```csharp
|
||||
public interface ICustomerDetailsView : IBaseView { }
|
||||
```
|
||||
- **Behavior:** Empty marker interface. Any concrete view implementing this interface signals that it represents a customer details screen. All actual behavior and members are inherited from `IBaseView`.
|
||||
|
||||
### `ICustomerDetailsViewModel`
|
||||
- **Namespace:** `DTS.Common.Interface`
|
||||
- **Inheritance:** `IBaseViewModel` (from `DTS.Common.Base`)
|
||||
- **Signature:**
|
||||
```csharp
|
||||
public interface ICustomerDetailsViewModel : IBaseViewModel { }
|
||||
```
|
||||
- **Behavior:** Empty marker interface. Any concrete view model implementing this interface signals that it provides the presentation logic for a customer details view. All actual behavior and members are inherited from `IBaseViewModel`.
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- **Type identity guarantee:** Any class implementing `ICustomerDetailsView` or `ICustomerDetailsViewModel` must also satisfy the contracts of `IBaseView` or `IBaseViewModel` respectively.
|
||||
- **No additional members:** Neither interface defines its own properties, methods, or events; they rely entirely on their base interfaces for functionality.
|
||||
- **Naming convention:** The interfaces follow a naming pattern suggesting a 1:1 correspondence between `ICustomerDetailsView` and `ICustomerDetailsViewModel`.
|
||||
|
||||
**Note:** Specific invariants regarding `IBaseView` and `IBaseViewModel` cannot be determined from the provided source files.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- `DTS.Common.Base` — Provides `IBaseView` and `IBaseViewModel` base interfaces.
|
||||
|
||||
### What depends on this module:
|
||||
- Cannot be determined from the provided source files alone. Likely consumers include:
|
||||
- Concrete view implementations (e.g., WinForms, WPF, or web views displaying customer details)
|
||||
- Concrete view model implementations for customer details
|
||||
- Navigation or routing services that resolve views by interface type
|
||||
- Dependency injection configurations
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
- **Empty marker interfaces:** Both interfaces define no members of their own. If `IBaseView` and `IBaseViewModel` also lack meaningful members, these interfaces serve purely as type markers. This design is intentional for type discrimination but may confuse developers expecting explicit contracts.
|
||||
- **Base interface contracts unknown:** The actual capabilities and requirements of these interfaces are entirely determined by `IBaseView` and `IBaseViewModel`. Developers must consult those base definitions to understand what members must be implemented.
|
||||
- **Potential tight coupling to base types:** Any changes to `IBaseView` or `IBaseViewModel` will ripple to all implementers of these customer details interfaces.
|
||||
Reference in New Issue
Block a user