/**
 * Portal proposals route — tenant-portals (wave 9d, Task 9).
 * GET /api/portal/proposals
 */
import { Hono } from 'hono'
import { listPortalProposals } from '@zync/db/queries'
import type { AppEnv } from '../../types'
import { portalAuthMiddleware, type PortalAuthVariables } from '../../middleware/portalAuth'
import { requirePortalVisibility } from './visibility'

type PortalDataEnv = {
  Bindings: AppEnv['Bindings']
  Variables: PortalAuthVariables
}

export const portalProposalsRoutes = new Hono<PortalDataEnv>()

portalProposalsRoutes.use('*', portalAuthMiddleware)

portalProposalsRoutes.get('/', async (c) => {
  const visibilityError = await requirePortalVisibility(c, 'show_proposals')
  if (visibilityError) return visibilityError
  const portal = c.get('portal')
  const db = c.get('db')
  const items = await listPortalProposals(db, portal.tenantId, portal.customerId)
  return c.json({ items }, 200)
})
