Files
DP44/enriched-partialglm/Common/DTS.CommonCore/Interface/TestMetaData.md
2026-04-17 14:55:32 -04:00

5.9 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/TestMetaData/ITestEngineerDetailsDbRecord.cs
Common/DTS.CommonCore/Interface/TestMetaData/ICustomerDetailsDbRecord.cs
Common/DTS.CommonCore/Interface/TestMetaData/ILabratoryDetailsDbRecord.cs
2026-04-16T12:13:05.880610+00:00 zai-org/GLM-5-FP8 1 adb5cdc8cb4cf74e

Documentation: DTS.Common.Core Test Metadata Interfaces

1. Purpose

This module defines three data contract interfaces—ITestEngineerDetailsDbRecord, ICustomerDetailsDbRecord, and ILabratoryDetailsDbRecord—within the DTS.Common.Interface.TestMetaData namespace. These interfaces abstract the database schema for test metadata entities, mapping properties to specific database columns using System.ComponentModel.DataAnnotations attributes. They serve as the data access layer contracts for Test Engineer, Customer, and Laboratory records, likely supporting an ORM framework such as Entity Framework.

2. Public Interface

ITestEngineerDetailsDbRecord

Defines the contract for a record in the TestEngineerDetails database table.

Properties:

  • int TestEngineerId { get; set; }: The primary key for the record. Mapped to the column TestEngineerId.
  • string Name { get; set; }: Mapped to the column Name.
  • string TestEngineerName { get; set; }: Mapped to the column TestEngineerName.
  • string TestEngineerPhone { get; set; }: Mapped to the column TestEngineerPhone.
  • string TestEngineerFax { get; set; }: Mapped to the column TestEngineerFax.
  • string TestEngineerEmail { get; set; }: Mapped to the column TestEngineerEmail.
  • bool LocalOnly { get; set; }: Mapped to the column LocalOnly.
  • DateTime LastModified { get; set; }: Mapped to the column LastModified.
  • string LastModifiedBy { get; set; }: Mapped to the column LastModifiedBy.
  • int Version { get; set; }: Mapped to the column Version.

ICustomerDetailsDbRecord

Defines the contract for a record in the CustomerDetails database table.

Properties:

  • int CustomerId { get; set; }: The primary key for the record. Mapped to the column CustomerId.
  • string Name { get; set; }: Mapped to the column Name.
  • string CustomerName { get; set; }: Mapped to the column CustomerName.
  • string CustomerTestRefNumber { get; set; }: Mapped to the column CustomerTestRefNumber.
  • string ProjectRefNumber { get; set; }: Mapped to the column ProjectRefNumber.
  • string CustomerOrderNumber { get; set; }: Mapped to the column CustomerOrderNumber.
  • string CustomerCostUnit { get; set; }: Mapped to the column CustomerCostUnit.
  • bool LocalOnly { get; set; }: Mapped to the column LocalOnly.
  • DateTime LastModified { get; set; }: Mapped to the column LastModified.
  • string LastModifiedBy { get; set; }: Mapped to the column LastModifiedBy.
  • int Version { get; set; }: Mapped to the column Version.

ILabratoryDetailsDbRecord

Defines the contract for a record in the LabratoryDetails database table.

Properties:

  • int LabratoryId { get; set; }: The primary key for the record. Mapped to the column LabratoryId.
  • string Name { get; set; }: Mapped to the column Name.
  • string LabratoryName { get; set; }: Mapped to the column LabratoryName.
  • string LabratoryContactName { get; set; }: Mapped to the column LabratoryContactName.
  • string LabratoryContactPhone { get; set; }: Mapped to the column LabratoryContactPhone.
  • string LabratoryContactFax { get; set; }: Mapped to the column LabratoryContactFax.
  • string LabratoryContactEmail { get; set; }: Mapped to the column LabratoryContactEmail.
  • string LabratoryTestRefNumber { get; set; }: Mapped to the column LabratoryTestRefNumber.
  • string LabratoryProjectRefNumber { get; set; }: Mapped to the column LabratoryProjectRefNumber.
  • DateTime LastModified { get; set; }: Mapped to the column LastModified.
  • string LastModifiedBy { get; set; }: Mapped to the column LastModifiedBy.
  • bool LocalOnly { get; set; }: Mapped to the column LocalOnly.
  • int Version { get; set; }: Mapped to the column Version.

3. Invariants

  • Primary Keys: Each interface requires an integer-based primary key property (TestEngineerId, CustomerId, LabratoryId) decorated with the [Key] attribute.
  • Column Mapping: All properties are explicitly mapped to database columns using the [Column("...")] attribute.
  • Audit Trail: All three interfaces guarantee the existence of LastModified (DateTime), LastModifiedBy (string), and Version (int) properties.
  • Locality: All three interfaces guarantee a LocalOnly boolean flag.

4. Dependencies

  • System.ComponentModel.DataAnnotations: Used for the [Key] attribute.
  • System.ComponentModel.DataAnnotations.Schema: Used for the [Column] attribute.
  • System: Used for basic types (String, Int32, DateTime, Boolean).
  • Consumers: Unknown from source alone, but these interfaces are likely implemented by concrete entity classes consumed by a database context (e.g., Entity Framework DbContext).

5. Gotchas

  • Spelling Error: The interface ILabratoryDetailsDbRecord and its associated properties/columns (e.g., LabratoryId, LabratoryName) misspell "Laboratory" as "Labratory". This typo appears to be embedded in the codebase and likely mirrors a typo in the underlying database schema.
  • Redundant Name Fields: Both ITestEngineerDetailsDbRecord and ICustomerDetailsDbRecord define a generic Name property alongside a more specific TestEngineerName or CustomerName property. The semantic difference between these two fields is unclear from the source code alone.
  • Nullable Reference Types: The source code does not enable nullable reference types (no #nullable enable directive or ? annotations on string properties). Consumers should assume strings are nullable or verify data integrity at runtime.