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