Skip to content

feat: genericise CPS import via internal data models #7

Description

@pskillen

Problem

Import is currently hard-wired to a specific version of the OpenGD77 CPS CSV export. This couples every tool to one vendor format and makes it hard to add other CPS brands/versions or our own formats later.

Intended outcome

Refactor import so external formats are converted into our own internal data models (channels, zones, talk groups, TG lists, contacts). Tools consume the internal models, not raw CSV.

  • Refactor the existing OpenGD77 CSV import to map into the internal models.
  • Add a better import UI: option to pick individual files OR drag/pick a whole directory of CSV/export files at once.
  • Leave room for other formats while making OpenGD77 the first and only first-class citizen for now.

Affected tool(s)

  • tools/channel-map/ (import path + internal model), plus shared import code that future tools can reuse.

Notes

  • Stay static (HTML + sidecar JS), no bundler unless asked.
  • Parse by header name, not column index; preserve case-sensitive channel-name foreign keys.
  • This unblocks the read-only report, export, and CRUD tickets.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions