"""
Timeline API Endpoints (Phase 4 Security Fix)
==============================================
提供後端授權的 Timeline 事件，防止前端偽造稽核軌跡。

安全設計:
- 只有 GET 端點 (唯讀)
- 事件由後端產生，前端僅顯示
- 防止透過瀏覽器 Console 偽造
"""

from fastapi import APIRouter, Query

from src.core.logging import get_logger
from src.services.approval_db import get_timeline_service

router = APIRouter(prefix="/timeline", tags=["Timeline"])
logger = get_logger("awoooi.timeline")


@router.get(
    "/events",
    summary="取得時間軸事件",
    description="取得最近的稽核事件。資料由後端產生，前端唯讀顯示。",
)
async def get_timeline_events(
    limit: int = Query(default=100, ge=1, le=200, description="回傳筆數上限"),
) -> dict:
    """
    取得時間軸事件 (後端授權來源)

    Returns:
        events: 時間軸事件清單 (最新在前)
        count: 事件總數
    """
    service = get_timeline_service()
    events = await service.get_events(limit=limit)

    logger.info(
        "timeline_events_fetched",
        count=len(events),
        limit=limit,
    )

    return {
        "count": len(events),
        "events": events,
    }
