Die Zefix-CSV nennt keine Firmennamen, sondern Tageszahlen je Branche. Als Lead-Karte zwischen sechs echten Firmenmeldungen war sie ein Fremdkörper: Man kann eine Branchenzahl nicht anrufen, und genau das verspricht eine Lead-Karte mit «Empfohlene nächste Handlung». Aggregierte Einträge werden weiterhin gelesen und beurteilt — die Quelle bleibt angebunden und belegt, dass Livia auch strukturierte Daten verarbeitet —, zählen aber als Beobachtungsposten statt als Lead. Das entspricht der «Early Watch»-Einordnung der Vorgabe (§19), und die Zahlen der Kopfzeile gehen weiterhin auf. Die Quellenbeschreibung sagt jetzt selbst, warum dort keine Karte erscheint, statt dass sich das jemand aus dem Ausbleiben erschliessen muss. Geprüft: tsc 0 Fehler, eslint 0 Fehler/0 Warnungen, Build erfolgreich, Live-Lauf 49 Einträge — Zefix erscheint nicht mehr als Lead, Summe aus verworfen, Watchlist und Leads ergibt die Gesamtzahl. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
53 lines
1.9 KiB
TypeScript
53 lines
1.9 KiB
TypeScript
/**
|
|
* Property On — die real angebundenen Recherchequellen von Livia.
|
|
*
|
|
* Eine einzige Liste für beide Seiten: die serverlose Funktion liest daraus
|
|
* die abzurufenden Adressen, die Oberfläche zeigt daraus «Angebundene Kanäle
|
|
* & Systeme». Stünden die URLs an zwei Stellen, könnte der angezeigte Link
|
|
* irgendwann auf etwas anderes zeigen als der tatsächliche Abruf — und genau
|
|
* die Nachvollziehbarkeit ist der Zweck der Anzeige (§2).
|
|
*
|
|
* Die Datei enthält bewusst nur Daten und keine Abruflogik: so kann `api/`
|
|
* sie importieren, ohne dass der HTML-Parser im Frontend-Bundle landet.
|
|
*/
|
|
|
|
export interface ResearchSourceDescriptor {
|
|
id: string
|
|
name: string
|
|
url: string
|
|
/** Wofür die Quelle im PoC steht — erscheint in der Oberfläche. */
|
|
purpose: string
|
|
}
|
|
|
|
export const RESEARCH_SOURCES = {
|
|
ZHK: {
|
|
id: 'zhk',
|
|
name: 'Zürcher Handelskammer — News',
|
|
url: 'https://www.zhk.ch/de/wirtschaft-und-politik/news-liste.html',
|
|
purpose: 'Regionale Unternehmensmeldungen, Expansion, Investitionen, Kapazitätsausbau',
|
|
},
|
|
GZA: {
|
|
id: 'gza',
|
|
name: 'Greater Zurich Area — News',
|
|
url: 'https://www.greaterzuricharea.com/de/alle-news',
|
|
purpose: 'Ansiedlungen, Markteintritte, internationale Expansionen und neue Standorte',
|
|
},
|
|
ZEFIX: {
|
|
id: 'zefix',
|
|
name: 'Zefix / Open Data Kanton Zürich',
|
|
url: 'https://www.web.statistik.zh.ch/ogd/data/KANTON_ZUERICH_ZEFIX_Neugruendungen.csv',
|
|
purpose:
|
|
'Strukturierte Daten zu Zürcher Neugründungen; CSV wird direkt eingelesen — '
|
|
+ 'Marktindikator ohne Firmennamen, erscheint deshalb nicht als Lead',
|
|
},
|
|
} as const satisfies Record<string, ResearchSourceDescriptor>
|
|
|
|
export const RESEARCH_SOURCE_LIST: ResearchSourceDescriptor[] = [
|
|
RESEARCH_SOURCES.ZHK,
|
|
RESEARCH_SOURCES.GZA,
|
|
RESEARCH_SOURCES.ZEFIX,
|
|
]
|
|
|
|
/** Der eine Endpoint des PoC (§20). */
|
|
export const RESEARCH_REFRESH_ENDPOINT = '/api/livia/research/refresh'
|