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