/** * Chat wire payload fragments shared by send response and history messages. */ import { z } from "zod"; import { booleanOrFalse, schemaOr, stringOrNull } from "../nullable-defaults"; const CHAT_IMAGE_DEFAULTS = { type: null, url: null } as const; const CHAT_LOCK_DETAIL_DEFAULTS = { locked: false, reason: null, } as const; export const ChatImageSchema = schemaOr( z.object({ type: stringOrNull, url: stringOrNull, }), CHAT_IMAGE_DEFAULTS, ).readonly(); export const ChatLockDetailSchema = schemaOr( z.object({ locked: booleanOrFalse, reason: stringOrNull, }), CHAT_LOCK_DETAIL_DEFAULTS, ).readonly(); export type ChatImageInput = z.input; export type ChatImageData = z.output; export type ChatLockDetailInput = z.input; export type ChatLockDetailData = z.output;