/**
 * Tasks module route group — tasks-board-engine.
 * Mounted at /api/tasks in apps/zync-api/src/routes/index.ts.
 *
 * All routes run behind authMiddleware + requireModuleEnabled('tasks').
 */
import { Hono } from 'hono'
import type { AppEnv } from '../../types'
import { authMiddleware } from '../../middleware/auth'
import { requireModuleEnabled } from '../../middleware/require-module-enabled'
import { tasksRoute } from '../tasks'
import { taskSettingsRoute } from '../tasks/settings'
import { taskStatusesRoute } from '../task-statuses'
import { recurringTasksRoute } from '../tasks/recurring'
import { taskMessagesRouter } from '../task-messages'
import { taskDependenciesRoute } from '../task-dependencies'

const taskModuleRouter = new Hono<AppEnv>()

taskModuleRouter.use('*', authMiddleware)
taskModuleRouter.use('*', requireModuleEnabled('tasks'))

// Status routes before the general tasks route (avoids /statuses matching /:id)
taskModuleRouter.route('/', taskStatusesRoute)
taskModuleRouter.route('/', taskSettingsRoute)
// Recurring tasks before general tasks (avoids /recurring matching /:id)
taskModuleRouter.route('/', recurringTasksRoute)
taskModuleRouter.route('/', tasksRoute)
// Task messages (tasks-detail-communication)
taskModuleRouter.route('/', taskMessagesRouter)
// Task dependencies (task-dependencies)
taskModuleRouter.route('/', taskDependenciesRoute)

export { taskModuleRouter }
