from fastapi import APIRouter, Depends, HTTPException, Query from fastapi.responses import FileResponse from sqlalchemy.orm import Session from app.database import get_db from app.models.user import User from app.schemas.journal import JournalCategoryReorderRequest from app.security import require_login from app.services import journal_service router = APIRouter(prefix="/api/journal", tags=["journal"], dependencies=[Depends(require_login)]) @router.get("/media/{attachment_id}") def get_media( attachment_id: int, thumbnail: bool = Query(False), db: Session = Depends(get_db), current_user: User = Depends(require_login), ): attachment = journal_service.get_attachment(db, attachment_id, current_user.id) if attachment is None: raise HTTPException(status_code=404, detail="첨부파일을 찾을 수 없습니다") path = attachment.thumbnail_path if (thumbnail and attachment.thumbnail_path) else attachment.file_path return FileResponse(path, filename=attachment.original_filename) @router.post("/categories/reorder") def reorder_categories( data: JournalCategoryReorderRequest, db: Session = Depends(get_db), current_user: User = Depends(require_login), ): journal_service.reorder_categories(db, current_user.id, data.category_ids) return {"ok": True}