Files
OpsLog/frontend/src/types.ts
T
rouggyandClaude Opus 4.7 7ace2cc602 Initial codebase: Go + Wails amateur radio logbook
Backend (Go 1.25 / Wails v2):
- QSO storage on SQLite (modernc) with embedded migrations (0001..0005)
- Streaming ADIF import (batch insert) + WorkedBefore per callsign and DXCC
- Callsign lookup with QRZ.com + HamQTH providers (primary/failsafe routing)
  and SQLite-backed TTL cache
- DXCC resolver from cty.dat (auto-download, longest-prefix-match)
- Multi-profile operator identities (home/portable/SOTA/contest) — every
  QSO stamps MY_* from the active profile
- CAT control via OmniRig COM on a single OS-locked goroutine, with
  bidirectional sync (freq/mode/band/split/VFOs) and Rig1/Rig2 hot-swap
- Settings store (key/value), CAT debug log at %APPDATA%/HamLog/cat.log

Frontend (React 18 + TypeScript + Tailwind v4 + shadcn-style):
- Single-row entry strip with CAT-aware band/mode/freq, RST, Start/End
  UTC, per-field locks (band/mode/freq/start/end) for backdated QSOs
- Topbar: live freq (MHz.kHz.Hz dotted), live UTC, band/mode/SPLIT badges,
  CAT pill with rig selector and clickable Azimuth pill (rotor TODO)
- Settings tree: Profiles (Log4OM-style manager), Station Information
  (edits the active profile), unified Callsign Lookup with Test buttons,
  Bands/Modes lists, CAT
- Worked-before matrix (band × mode × class) with new-DXCC highlighting
- ADIF import from menu + Maintenance > Refresh cty.dat

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-26 00:16:45 +02:00

20 lines
1.1 KiB
TypeScript

// Form-friendly views of the Wails-generated model classes.
//
// Wails generates each Go struct as a TS *class* with a hidden `convertValues`
// method used by the runtime for nested struct hydration. That method is
// irrelevant to our UI, but its presence means strict TS rejects any plain
// object literal we try to spread/assign back into the state setter.
//
// We strip it here so React component state stays usable with normal
// `{...prev, key: value}` patterns. Wails class instances remain assignable
// to these views since they have every required property.
import type { main, qso } from '../wailsjs/go/models';
export type LookupSettingsForm = Omit<main.LookupSettings, 'convertValues'>;
export type StationSettingsForm = Omit<main.StationSettings, 'convertValues'>;
export type ListsSettingsForm = Omit<main.ListsSettings, 'convertValues'>;
export type ModePresetForm = Omit<main.ModePreset, 'convertValues'>;
export type QSOForm = Omit<qso.QSO, 'convertValues'>;
export type WorkedBeforeView = Omit<qso.WorkedBefore, 'convertValues'>;