import { ViewData } from '@/lib/contracts/view-data/ViewData'; import type { DashboardStats } from '@/lib/types/admin'; import type { AdminDashboardViewData } from '@/lib/view-data/AdminDashboardViewData'; /** * AdminDashboardViewDataBuilder * * Transforms DashboardStats API DTO into AdminDashboardViewData for server-side rendering. * Deterministic; side-effect free; no HTTP calls. */ import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder"; export class AdminDashboardViewDataBuilder implements ViewDataBuilder { build(input: any): any { return AdminDashboardViewDataBuilder.build(input); } static build( static build(apiDto: DashboardStats): AdminDashboardViewData { return { stats: { totalUsers: apiDto.totalUsers, activeUsers: apiDto.activeUsers, suspendedUsers: apiDto.suspendedUsers, deletedUsers: apiDto.deletedUsers, systemAdmins: apiDto.systemAdmins, recentLogins: apiDto.recentLogins, newUsersToday: apiDto.newUsersToday, }, }; } }