From 440540657ad6a2624990e0700f8d4f82852b13bb Mon Sep 17 00:00:00 2001 From: JB Date: Sat, 19 Sep 2026 10:02:28 -0400 Subject: [PATCH] refactor: share domain reference reader contracts --- src/lib/server/reference/types.ts | 90 ++++--------------------------- 1 file changed, 10 insertions(+), 80 deletions(-) diff --git a/src/lib/server/reference/types.ts b/src/lib/server/reference/types.ts index 6d14210..c087d5c 100644 --- a/src/lib/server/reference/types.ts +++ b/src/lib/server/reference/types.ts @@ -1,4 +1,12 @@ -import type { ReferenceRepository } from '../../domain/model'; +import type { ReferenceReaderHandle } from '../../domain/reference'; +export type { + ReferenceRepository, ReferenceCategoryRecord, ReferenceGroupRecord, + ReferenceTypeRecord, ReferenceRegionRecord, ReferenceConstellationRecord, + ReferenceSystemRecord, ReferenceStationEvidence, ReferenceStationRecord, + ReferenceSearchOptions, ReferenceListOptions, ReferenceIdSelection, + ReferenceGroupSelection, ReferenceSystemSelection, ReferenceStationSelection, + ReferenceReader, +} from '../../domain/reference'; export const REFERENCE_SOURCES = ['reference-data', 'hoboleaks', 'esi-universe'] as const; export type ReferenceSourceName = (typeof REFERENCE_SOURCES)[number]; @@ -141,84 +149,6 @@ export interface EsiUniversePayload { stations?: Record; } -export interface ReferenceCategoryRecord { - id: number; - name: string; - published?: boolean; -} -export interface ReferenceGroupRecord { - id: number; - categoryId: number; - name: string; - published?: boolean; -} -export interface ReferenceTypeRecord { - id: number; - name: string; - categoryId: number; - groupId: number; - published?: boolean; - volume?: number; -} -export interface ReferenceRegionRecord { id: number; name: string | null; } -export interface ReferenceConstellationRecord { id: number; name: string | null; regionId: number | null; } -export interface ReferenceSystemRecord { - id: number; - name: string; - constellationId: number; - regionId: number | null; - x: number; - y: number; - z: number; - securityStatus: number; - securityClass: string | null; -} -export type ReferenceStationEvidence = 'verified' | 'system_listed'; -export interface ReferenceStationRecord { - id: number; - systemId: number; - systemName: string | null; - regionId: number | null; - /** Evidence distinguishes authoritative station rows from system-list-only IDs. */ - evidence: ReferenceStationEvidence; - /** Compatibility projection; true exactly when evidence is `verified`. */ - sourceVerified: boolean; - name: string | null; - typeId: number | null; - ownerId: number | null; - x: number | null; - y: number | null; - z: number | null; -} -export interface ReferenceSearchOptions { - query: string; - categoryId?: number; - groupId?: number; - published?: boolean; - limit?: number; - offset?: number; -} -export interface ReferenceListOptions { - ids?: number[]; - query?: string; - limit?: number; - offset?: number; -} -export type ReferenceIdSelection = number[] | ReferenceListOptions | undefined; -export type ReferenceGroupSelection = number[] | (ReferenceListOptions & { categoryId?: number }) | undefined; -export type ReferenceSystemSelection = number[] | (ReferenceListOptions & { constellationId?: number; regionId?: number }) | undefined; -export type ReferenceStationSelection = number[] | (ReferenceListOptions & { systemId?: number }) | undefined; -export interface ReferenceReader extends ReferenceRepository { - searchTypes(options: ReferenceSearchOptions): Promise; - searchTypesByName(query: string, options?: Omit): Promise; - categories(selection?: ReferenceIdSelection): Promise; - groups(selection?: ReferenceGroupSelection): Promise; - regions(selection?: ReferenceIdSelection): Promise; - constellations(selection?: ReferenceIdSelection): Promise; - systems(selection?: ReferenceSystemSelection): Promise; - stations(selection?: ReferenceStationSelection): Promise; -} - export interface SourceCheck { source: ReferenceSourceName; checkedAt: string; @@ -377,7 +307,7 @@ export interface SourceCheckResult { error?: string; } -export interface ReferenceSnapshot extends ReferenceReader { +export interface ReferenceSnapshot extends ReferenceReaderHandle { close(): void; readonly pinnedVersion: string; }