68 lines
4.1 KiB
Markdown
68 lines
4.1 KiB
Markdown
|
|
---
|
|||
|
|
source_files:
|
|||
|
|
- Common/DTS.CommonCore/Enums/GroupTemplates/GroupTemplateChannelFields.cs
|
|||
|
|
- Common/DTS.CommonCore/Enums/GroupTemplates/GroupTemplateFields.cs
|
|||
|
|
generated_at: "2026-04-16T02:44:06.705516+00:00"
|
|||
|
|
model: "Qwen/Qwen3-Coder-Next-FP8"
|
|||
|
|
schema_version: 1
|
|||
|
|
sha256: "e8a5b65535302547"
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# GroupTemplates
|
|||
|
|
|
|||
|
|
## Documentation: Group Template Field Enumerations
|
|||
|
|
|
|||
|
|
### 1. Purpose
|
|||
|
|
This module defines two strongly-typed enumerations—`GroupTemplateFields` and `GroupTemplateChannelFields`—that represent the set of valid field names used when referencing or manipulating group template data structures within the system. These enums serve as standardized identifiers for field-level operations (e.g., filtering, sorting, mapping, or validation) related to group templates and their associated channels, ensuring consistency across layers that consume or produce group template metadata.
|
|||
|
|
|
|||
|
|
### 2. Public Interface
|
|||
|
|
No classes, methods, or properties are exposed. Only two `public enum` types are defined:
|
|||
|
|
|
|||
|
|
- **`GroupTemplateFields`**
|
|||
|
|
```csharp
|
|||
|
|
public enum GroupTemplateFields
|
|||
|
|
{
|
|||
|
|
Name,
|
|||
|
|
Description,
|
|||
|
|
Channels,
|
|||
|
|
LastModifiedBy,
|
|||
|
|
LastModified,
|
|||
|
|
AssociatedGroups
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
Represents top-level fields of a group template entity. Values correspond to core properties of a group template (e.g., `Name`, `Description`) or nested collections (`Channels`, `AssociatedGroups`), as well as audit metadata (`LastModifiedBy`, `LastModified`).
|
|||
|
|
|
|||
|
|
- **`GroupTemplateChannelFields`**
|
|||
|
|
```csharp
|
|||
|
|
public enum GroupTemplateChannelFields
|
|||
|
|
{
|
|||
|
|
Required,
|
|||
|
|
Name,
|
|||
|
|
ISOCode,
|
|||
|
|
Custom,
|
|||
|
|
DisplayOrder
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
Represents fields of individual channel objects *within* a group template’s `Channels` collection. Includes both required metadata (`Name`, `ISOCode`), configuration flags (`Required`, `Custom`), and ordering (`DisplayOrder`).
|
|||
|
|
|
|||
|
|
### 3. Invariants
|
|||
|
|
- All enum values are *exhaustive* for their respective domains (i.e., no additional fields are defined beyond those listed).
|
|||
|
|
- `GroupTemplateFields.Channels` is the only field in `GroupTemplateFields` that contains *nested* data; its value is expected to be a collection of objects, each describable via `GroupTemplateChannelFields`.
|
|||
|
|
- `GroupTemplateChannelFields.Required` and `GroupTemplateChannelFields.Custom` are boolean-like flags (though represented as enum values, not booleans), implying they are used as discrete states rather than numeric values.
|
|||
|
|
- No ordering guarantees are implied by the enum definitions themselves (i.e., `DisplayOrder` is a *field name*, not an ordering of the enum values).
|
|||
|
|
|
|||
|
|
### 4. Dependencies
|
|||
|
|
- **Internal dependencies**:
|
|||
|
|
- `DTS.Common.Enums.GroupTemplates` namespace (inferred from `namespace` declaration).
|
|||
|
|
- Likely consumed by modules handling group template serialization/deserialization, UI form generation, or data mapping (e.g., ORM or DTO layers), though no direct imports are visible in the provided source.
|
|||
|
|
- **External dependencies**: None (no `using` statements present in the source).
|
|||
|
|
- **Depended upon**: Other modules in the `DTS.CommonCore` assembly (or downstream projects) that require field-level metadata for group templates or channels.
|
|||
|
|
|
|||
|
|
### 5. Gotchas
|
|||
|
|
- **No semantic validation**: The enums themselves do not enforce constraints (e.g., `Required` is not validated against `Custom` or `ISOCode` behavior). Consumers must implement business logic around field relationships.
|
|||
|
|
- **Ambiguity in `Custom`**: The meaning of `GroupTemplateChannelFields.Custom` is unclear without additional context—it may indicate user-defined fields, non-standard channel types, or a flag for dynamic extensibility.
|
|||
|
|
- **No versioning**: The enums are static; adding new fields requires a breaking change.
|
|||
|
|
- **Case sensitivity**: As with all C# enums, string comparisons (e.g., in JSON or database mappings) must preserve exact casing (`"Name"` ≠ `"name"`).
|
|||
|
|
- **`LastModified` type ambiguity**: While `GroupTemplateFields.LastModified` is listed, the underlying type (e.g., `DateTime`, `string`, `long`) is not defined here and must be inferred from consuming code.
|
|||
|
|
|
|||
|
|
None identified beyond the above.
|