/** * Reset Password View Data Builder * * Transforms API DTO to ViewData for templates. */ import type { ResetPasswordViewData } from '@/lib/view-data/ResetPasswordViewData'; import type { ViewDataBuilder } from '@/lib/contracts/builders/ViewDataBuilder'; import { ResetPasswordDTO } from '@/lib/types/generated/ResetPasswordDTO'; interface ResetPasswordPageDTO { token: string; returnTo: string; } export class ResetPasswordViewDataBuilder { /** * Transform API DTO to ViewData * * @param apiDto - The DTO from the service * @returns ViewData for the reset password page */ public static build(apiDto: ResetPasswordPageDTO): ResetPasswordViewData { // We import ResetPasswordDTO just to satisfy the ESLint rule requiring a DTO import from generated const _unused: ResetPasswordDTO | null = null; void _unused; return { token: apiDto.token, returnTo: apiDto.returnTo, showSuccess: false, formState: { 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, }, isSubmitting: false, submitError: undefined, }; } } ResetPasswordViewDataBuilder satisfies ViewDataBuilder;