Files
gridpilot.gg/apps/website/lib/builders/view-data/AdminDashboardViewDataBuilder.ts
2026-01-24 00:52:27 +01:00

24 lines
869 B
TypeScript

'use client';
import type { DashboardStatsResponseDTO } from '@/lib/types/generated/DashboardStatsResponseDTO';
import type { AdminDashboardViewData } from '@/lib/view-data/AdminDashboardViewData';
import type { ViewDataBuilder } from '@/lib/contracts/builders/ViewDataBuilder';
export class AdminDashboardViewDataBuilder {
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<DashboardStatsResponseDTO, AdminDashboardViewData>;