/** * 登录响应 * 原始 Dart: LoginResponse (lib/data/models/auth/auth_response.dart) */ import { User } from "../user/user"; export class LoginResponse { readonly user: User; readonly token: string; readonly refreshToken: string; constructor(params: { user: User; token: string; refreshToken?: string }) { this.user = params.user; this.token = params.token; this.refreshToken = params.refreshToken ?? ""; Object.freeze(this); } toJson(): Record { return { user: this.user.toJson(), token: this.token, refreshToken: this.refreshToken, }; } static fromJson(json: Record): LoginResponse { const token = json.token; if (typeof token !== "string") { throw new Error("LoginResponse.token is required and must be a string"); } const userJson = json.user; if (typeof userJson !== "object" || userJson === null) { throw new Error("LoginResponse.user is required and must be an object"); } return new LoginResponse({ user: User.fromJson(userJson as Record), token, refreshToken: typeof json.refreshToken === "string" ? json.refreshToken : undefined, }); } }