Spaces:
Sleeping
Sleeping
| 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; | |
| } | |