/** * Google 登录请求 DTO */ import { GoogleLoginRequestSchema, type GoogleLoginRequestInput, type GoogleLoginRequestData, } from "@/data/schemas/auth/request/google_login_request"; export class GoogleLoginRequest { declare readonly idToken: string; declare readonly platform: string; declare readonly guestId: string; declare readonly isTestAccount: boolean; private constructor(input: GoogleLoginRequestInput) { const data = GoogleLoginRequestSchema.parse(input); Object.assign(this, data); Object.freeze(this); } static from(input: GoogleLoginRequestInput): GoogleLoginRequest { return new GoogleLoginRequest(input); } static fromJson(json: unknown): GoogleLoginRequest { return GoogleLoginRequest.from(json as GoogleLoginRequestInput); } toJson(): GoogleLoginRequestData { return GoogleLoginRequestSchema.parse(this); } }