/** * 待同步的单条消息 * 原始 Dart: SyncMessage (lib/data/models/chat/chat_sync.dart) */ import { z } from "zod"; export const SyncMessageSchema = z.object({ role: z.string(), content: z.string(), timestamp: z.string(), }); export type SyncMessageInput = z.input; export type SyncMessageData = z.output; export class SyncMessage { declare readonly role: string; declare readonly content: string; declare readonly timestamp: string; private constructor(input: SyncMessageInput) { const data = SyncMessageSchema.parse(input); Object.assign(this, data); Object.freeze(this); } static from(input: SyncMessageInput): SyncMessage { return new SyncMessage(input); } static fromJson(json: unknown): SyncMessage { return SyncMessage.from(json as SyncMessageInput); } toJson(): SyncMessageData { return SyncMessageSchema.parse(this); } }