--- source_files: - Common/DTS.Common/Enums/Channels/ChannelCodeType.cs generated_at: "2026-04-16T03:21:26.344972+00:00" model: "Qwen/Qwen3-Coder-Next-FP8" schema_version: 1 sha256: "bc6b8c24b93cadcb" --- # Channels ## 1. Purpose This module defines shared enumerations and constants related to channel code types within the DTS system. It serves as a centralized source of truth for identifying and validating channel codes—specifically distinguishing between standardized ISO 13499 codes and custom user-defined codes—ensuring consistency across modules that handle channel identification, serialization, or validation. ## 2. Public Interface The module exposes a single nested `enum` and four `public const` fields within the `ChannelEnumsAndConstants` class: - **`ChannelCodeType`** (`enum`) A two-valued enumeration indicating the type of channel code: - `ISO` — Represents a channel code conforming to the ISO 13499 standard. - `User` — Represents a user-defined (non-standardized) channel code. - **`IsoCodeTypeString`** (`public const string`) Value: `"ISO 13499"` Used as a human-readable identifier for the ISO channel code type. - **`UserCodeTypeString`** (`public const string`) Value: `"User"` Used as a human-readable identifier for the user-defined channel code type. - **`ISO_CODE_LENGTH`** (`public const int`) Value: `16` Specifies the expected fixed length (in characters) of an ISO channel code. - **`USER_CODE_LENGTH`** (`public const int`) Value: `50` Specifies the maximum allowed length (in characters) of a user-defined channel code. ## 3. Invariants - Any channel code of type `ChannelCodeType.ISO` must be exactly `ISO_CODE_LENGTH` (16) characters long. - Any channel code of type `ChannelCodeType.User` must be no longer than `USER_CODE_LENGTH` (50) characters. - The string values of `IsoCodeTypeString` and `UserCodeTypeString` are immutable and intended for display or serialization purposes only. - The `ChannelCodeType` enum values (`ISO`, `User`) are exhaustive and mutually exclusive; no other code types are defined in this module. ## 4. Dependencies - **No external dependencies**: The file contains no `using` directives and defines all its members inline. - **Used by**: Based on naming and structure, this module is likely referenced by higher-level components handling channel configuration, data import/export, or validation logic (e.g., in `DTS.Common` or downstream projects), though no explicit consumers are visible in the provided source. ## 5. Gotchas - The `ChannelCodeType` enum is defined *inside* the `ChannelEnumsAndConstants` class (not as a top-level type), so consumers must reference it as `ChannelEnumsAndConstants.ChannelCodeType`. - `USER_CODE_LENGTH` defines a *maximum* length (≤50), whereas `ISO_CODE_LENGTH` defines an *exact* length (=16); validation logic must respect this distinction. - The constants `IsoCodeTypeString` and `UserCodeTypeString` are string literals—not enum-based—so string comparisons (e.g., `codeTypeString == ChannelEnumsAndConstants.IsoCodeTypeString`) may be error-prone; prefer using the `ChannelCodeType` enum where possible. - None identified from source alone.