/**
 * Admin stats route — admin-dashboard.
 * GET /api/admin/stats → PlatformStats + last 20 audit rows.
 */
import { Hono } from 'hono'
import { createDb } from '@zync/db/queries'
import { getPlatformStats, getRecentAdminActivity } from '@zync/db/queries'
import type { AppEnv } from '../../types'
import { adminAuthMiddleware } from '../../middleware/admin-auth'
import { requireAdminSession } from '../../middleware/guards'
import { requireAdminPermission } from '@zync/auth'

const adminStatsRoutes = new Hono<AppEnv>()

adminStatsRoutes.use('*', adminAuthMiddleware)
adminStatsRoutes.use('*', requireAdminSession())
adminStatsRoutes.use('*', requireAdminPermission('admin.tenants:read'))

adminStatsRoutes.get('/', async (c) => {
  const db = createDb(c.env)
  const [stats, recentActivity] = await Promise.all([
    getPlatformStats(db),
    getRecentAdminActivity(db, 20),
  ])
  return c.json({ stats, recentActivity })
})

export { adminStatsRoutes }
