"""Audit log endpoints.""" from typing import Optional from fastapi import APIRouter, Depends, Query from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import get_db from app.core.security import require_role from app.models.user import User from app.services.audit_log_service import AuditLogService router = APIRouter(prefix="/audit", tags=["审计日志"]) @router.get("/logs") async def list_audit_logs( page: int = Query(1, ge=1), page_size: int = Query(20, ge=1, le=100), user_id: Optional[int] = None, action: Optional[str] = None, target_type: Optional[str] = None, db: AsyncSession = Depends(get_db), current_user: User = Depends(require_role("admin", "dba")), ): return await AuditLogService.list_logs( db, page=page, page_size=page_size, user_id=user_id, action=action, target_type=target_type, )