""" 公告相关路由(前台) """ from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from typing import List from ..core.database import get_db from ..schemas.announcement import AnnouncementResponse from ..services.announcement_service import AnnouncementService router = APIRouter(prefix="/api/announcements", tags=["announcements"]) @router.get("/", response_model=List[AnnouncementResponse]) def get_announcements( page: int = Query(1, ge=1), size: int = Query(10, ge=1, le=100), db: Session = Depends(get_db) ): """ 获取公告列表(前台) """ skip = (page - 1) * size return AnnouncementService.get_announcements(db, skip, size) @router.get("/active", response_model=List[AnnouncementResponse]) def get_active_announcements( limit: int = Query(5, le=20), db: Session = Depends(get_db) ): """ 获取活跃公告(前台) """ return AnnouncementService.get_active_announcements(db, limit)