27 lines
829 B
TypeScript
27 lines
829 B
TypeScript
import { DashboardStats } from '@/lib/api/admin/AdminApiClient';
|
|
import { AdminDashboardViewData } from '@/lib/view-data/AdminDashboardViewData';
|
|
|
|
/**
|
|
* AdminDashboardViewDataBuilder
|
|
*
|
|
* Server-side builder that transforms API DashboardStats DTO
|
|
* directly into ViewData for the AdminDashboardTemplate.
|
|
*
|
|
* Deterministic, side-effect free.
|
|
*/
|
|
export class AdminDashboardViewDataBuilder {
|
|
static build(apiStats: DashboardStats): AdminDashboardViewData {
|
|
return {
|
|
stats: {
|
|
totalUsers: apiStats.totalUsers,
|
|
activeUsers: apiStats.activeUsers,
|
|
suspendedUsers: apiStats.suspendedUsers,
|
|
deletedUsers: apiStats.deletedUsers,
|
|
systemAdmins: apiStats.systemAdmins,
|
|
recentLogins: apiStats.recentLogins,
|
|
newUsersToday: apiStats.newUsersToday,
|
|
},
|
|
};
|
|
}
|
|
}
|