Files

68 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
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 templates `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.