--- 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.