import type { ViewDataBuilder } from '../../contracts/builders/ViewDataBuilder'; import type { DashboardStatsResponseDTO } from '../../types/generated/DashboardStatsResponseDTO'; import type { AdminDashboardViewData } from '../../view-data/AdminDashboardViewData'; export class AdminDashboardViewDataBuilder { /** * Transform API DTO to ViewData * * @param apiDto - The DTO from the service * @returns ViewData for the admin dashboard */ public static build(apiDto: DashboardStatsResponseDTO): AdminDashboardViewData { return { stats: { totalUsers: apiDto.totalUsers, activeUsers: apiDto.activeUsers, suspendedUsers: apiDto.suspendedUsers, deletedUsers: apiDto.deletedUsers, systemAdmins: apiDto.systemAdmins, recentLogins: apiDto.recentLogins, newUsersToday: apiDto.newUsersToday, }, }; } } AdminDashboardViewDataBuilder satisfies ViewDataBuilder;