FE_Test / schema /gradio-proxy /summary.ts
GitHub Actions
Deploy from GitHub Actions [test] - 2025-10-31 10:18:25
5f2aab6
import type { SummaryBaseData, SummaryData } from '@/types/api';
import { z } from 'zod';
// summary APIリクエストスキーマ
export const summaryRequestSchema = z.object({
commonDict: z.record(z.string(), z.unknown()),
scoreDict: z.record(z.string(), z.unknown()),
score_total: z.record(z.string(), z.unknown()),
url_category_scores: z.record(z.string(), z.unknown()),
own_category_score: z.record(z.string(), z.unknown()),
dummyMode: z.boolean().optional().default(false),
userEmail: z.string().nullable().optional(),
userIdentifier: z.string().min(1, 'ユーザー識別子が必要です。'),
});
export type SummaryRequest = z.infer<typeof summaryRequestSchema>;
// summary APIレスポンススキーマ
export const summaryResponseSchema = z.union([
z.tuple([
z.custom<SummaryData>(), // SummaryData
z.unknown(), // null
z.custom<SummaryBaseData>(), // SummaryBaseData
]),
z.object({
status: z.literal('error'),
message: z.string(),
}),
]);
export type SummaryResponse = z.infer<typeof summaryResponseSchema>;
// エラーレスポンス型
export interface SummaryErrorResponse {
status: 'error';
message: string;
}