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>;
|