--- source_files: - Common/DTS.Common/Enums/GroupTemplates/GroupTemplateChannelFields.cs - Common/DTS.Common/Enums/GroupTemplates/GroupTemplateFields.cs generated_at: "2026-04-16T03:20:41.367109+00:00" model: "Qwen/Qwen3-Coder-Next-FP8" schema_version: 1 sha256: "4e111d67a04151ac" --- # GroupTemplates ## 1. Purpose This module defines two strongly-typed enumerations—`GroupTemplateChannelFields` and `GroupTemplateFields`—that represent the set of valid field names used when working with group templates and their associated channels in the DTS system. These enums serve as standardized identifiers for field-level operations (e.g., serialization, mapping, validation, or UI binding) related to group template data structures, ensuring consistency across layers that consume or produce group template metadata. ## 2. Public Interface ### `GroupTemplateChannelFields` A `public enum` in namespace `DTS.Common.Enums.GroupTemplates` representing fields specific to a *channel* within a group template. - **Members**: - `Required` (`int`): Indicates whether the channel is mandatory. - `Name` (`int`): The display name of the channel. - `ISOCode` (`int`): The ISO-standardized code associated with the channel (e.g., language or region code). - `Custom` (`int`): A flag or value indicating the channel is user-defined/custom. - `DisplayOrder` (`int`): The numeric order in which the channel should be rendered or processed. ### `GroupTemplateFields` A `public enum` in namespace `DTS.Common.Enums.GroupTemplates` representing top-level fields of a *group template* entity. - **Members**: - `Name` (`int`): The name of the group template. - `Description` (`int`): A textual description of the group template’s purpose or behavior. - `Channels` (`int`): A collection of channel definitions associated with the template. - `LastModifiedBy` (`int`): Identifier (e.g., user ID or name) of the last modifier. - `LastModified` (`int`): Timestamp of the last modification. - `AssociatedGroups` (`int`): A collection of groups that are linked to this template. ## 3. Invariants - All enum values are *exhaustive* for their respective domains (i.e., no additional fields are defined beyond those listed). - The `Channels` field in `GroupTemplateFields` is semantically a *container* for `GroupTemplateChannelFields`-defined properties, implying a hierarchical relationship: each channel object in a template’s `Channels` collection is described using keys from `GroupTemplateChannelFields`. - No runtime validation or enforcement logic is present in the source; enums are purely declarative and must be validated/consumed by other components. ## 4. Dependencies - **Internal**: - No external dependencies are referenced in the source files (no `using` statements, no references to other types). - Both enums reside in the same namespace (`DTS.Common.Enums.GroupTemplates`), suggesting co-location for related functionality. - **Consumers**: - Likely used by higher-level modules handling group template serialization (e.g., JSON/XML mapping), UI form generation, or data persistence layers (e.g., ORM mappings). - Notable absence of direct references to `GroupTemplate` or `GroupTemplateChannel` classes in the source means their definitions (and usage of these enums) must be in other files. ## 5. Gotchas - **Ambiguity in `Custom` and `Required` semantics**: The source does not clarify whether `Custom` is a boolean flag or a string/value field (e.g., custom metadata). Similarly, `Required` may represent a boolean, string, or enum—its meaning is inferred but not defined here. - **No versioning or deprecation markers**: The enums lack attributes (e.g., `[Obsolete]`) or comments indicating field lifecycle status, which could lead to misuse if fields are retired or renamed. - **No explicit mapping to database columns or JSON keys**: While the enum names suggest field identifiers, their actual serialization behavior (e.g., camelCase, underscore naming, or numeric values) is not specified in this module. - **None identified from source alone.**