/** * Reset Password ViewModel Builder * * Transforms API DTOs into ResetPasswordViewModel for client-side state management. * Deterministic, side-effect free, no business logic. */ import { ResetPasswordViewData } from '@/lib/view-data/ResetPasswordViewData'; import { ResetPasswordFormState, ResetPasswordUIState, ResetPasswordViewModel } from '@/lib/view-models/auth/ResetPasswordViewModel'; import { ViewModelBuilder } from "../../contracts/builders/ViewModelBuilder"; export class ResetPasswordViewModelBuilder implements ViewModelBuilder { build(input: any): any { return ResetPasswordViewModelBuilder.build(input); } static build( static build(viewData: ResetPasswordViewData): ResetPasswordViewModel { const formState: ResetPasswordFormState = { fields: { newPassword: { value: '', error: undefined, touched: false, validating: false }, confirmPassword: { value: '', error: undefined, touched: false, validating: false }, }, isValid: true, isSubmitting: false, submitError: undefined, submitCount: 0, }; const uiState: ResetPasswordUIState = { showPassword: false, showConfirmPassword: false, }; return new ResetPasswordViewModel( viewData.token, viewData.returnTo, formState, uiState, false, null, false, null ); } }