▍ humdrum codex / soft
629 B raw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import { z } from "zod";

// A watchlist of stock / crypto symbols (Yahoo Finance chart endpoint, keyless).
// Crypto uses Yahoo's pair form, e.g. BTC-USD, ETH-USD.
export const MarketsConfig = z.object({
  symbols: z.array(z.string()).default([]),
});
export type MarketsConfig = z.infer<typeof MarketsConfig>;

export const MarketQuote = z.object({
  symbol: z.string(),
  name: z.string(),
  price: z.number(),
  changePct: z.number().nullable(),
  currency: z.string(),
});

export const MarketsPayload = z.object({
  quotes: z.array(MarketQuote).default([]),
});
export type MarketsPayload = z.infer<typeof MarketsPayload>;