Files
cozsweet-frontend-nextjs/src/data/schemas/chat/chat_send_response.ts
T

28 lines
970 B
TypeScript

/**
* 发送消息响应
*
*/
import { z } from "zod";
import { booleanOrFalse, numberOrZero, stringOrNull } from "../nullable-defaults";
import { ChatImageSchema, ChatLockDetailSchema } from "./chat_payloads";
export const ChatSendResponseSchema = z.object({
reply: z.string(),
audioUrl: z.string().default(""),
messageId: z.string(),
isGuest: booleanOrFalse,
// 函数式 default —— 每次 parse 时重新调 Date.now()(后端不返回 timestamp 时用当下时间)
timestamp: z.number().default(() => Date.now()),
image: ChatImageSchema,
lockDetail: ChatLockDetailSchema,
canSendMessage: z.boolean().default(true),
cannotSendReason: stringOrNull,
creditBalance: numberOrZero,
creditsCharged: numberOrZero,
requiredCredits: numberOrZero,
shortfallCredits: numberOrZero,
});
export type ChatSendResponseInput = z.input<typeof ChatSendResponseSchema>;
export type ChatSendResponseData = z.output<typeof ChatSendResponseSchema>;