/** * 头像数据模型 - 对应后端 AvatarData schema * 原始 Dart: AvatarData (lib/data/models/user/user.dart) */ import { z } from "zod"; export const AvatarDataSchema = z.object({ avatarUrl: z.string().default(""), userId: z.string(), }); export type AvatarDataInput = z.input; export type AvatarDataData = z.output; export class AvatarData { declare readonly avatarUrl: string; declare readonly userId: string; private constructor(data: AvatarDataData) { Object.assign(this, data); Object.freeze(this); } static from(input: AvatarDataInput): AvatarData { return new AvatarData(AvatarDataSchema.parse(input)); } static fromJson(json: unknown): AvatarData { return AvatarData.from(json as AvatarDataInput); } toJson(): AvatarDataData { return AvatarDataSchema.parse(this); } }