/**
* Admin Stats Actions
* Server-side actions for core dashboard statistics
*
* Usage in your Next.js app:
*
* ```javascript
* // app/(admin)/admin/[...admin]/page.js
* import { protectAdmin } from '@zen/core/features/admin';
* import { getDashboardStats } from '@zen/core/features/admin/actions';
* import { AdminPagesClient } from '@zen/core/features/admin/pages';
*
* export default async function AdminPage({ params }) {
* const { user } = await protectAdmin();
*
* const statsResult = await getDashboardStats();
* const dashboardStats = statsResult.success ? statsResult.stats : null;
*
* return (
*
* );
* }
* ```
*/
'use server';
import { query } from '@zen/core/database';
import { fail } from '@zen/core/shared/logger';
/**
* Get total number of users
* @returns {Promise}
*/
async function getTotalUsersCount() {
try {
const result = await query(
`SELECT COUNT(*) as count FROM zen_auth_users`
);
return parseInt(result.rows[0].count) || 0;
} catch (error) {
fail(`Error getting users count: ${error.message}`);
return 0;
}
}
/**
* Get core dashboard statistics
* @returns {Promise