31 lines
772 B
TypeScript
31 lines
772 B
TypeScript
import { z } from "zod";
|
|
export type Article = {
|
|
_type: "Article";
|
|
headline?: string;
|
|
datePublished?: string;
|
|
articleBody?: string;
|
|
keywords?: string[];
|
|
image?: string;
|
|
url?: string;
|
|
reviewRating?: {
|
|
bestRating?: number;
|
|
worstRating?: number;
|
|
ratingValue?: number;
|
|
};
|
|
author?: {
|
|
_type: "Person";
|
|
name?: string;
|
|
};
|
|
};
|
|
|
|
export const articleMetadataSchema = z.object({
|
|
headline: z.union([z.null(), z.string()]).describe("Headline of the article"),
|
|
author: z.union([z.null(), z.string()]).describe("Author of the article"),
|
|
datePublished: z.union([z.null(), z.string()]).describe(
|
|
"Date the article was published",
|
|
),
|
|
keywords: z.union([z.null(), z.array(z.string())]).describe(
|
|
"Keywords for the article",
|
|
),
|
|
});
|