from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from app.auth.service import get_current_user from app.database.session import get_db from app.media.schemas import AttachmentCreateRequest, AttachmentRead, UploadUrlRequest, UploadUrlResponse from app.media.service import generate_upload_url, store_attachment_metadata from app.users.models import User router = APIRouter(prefix="/media", tags=["media"]) @router.post("/upload-url", response_model=UploadUrlResponse) async def create_upload_url( payload: UploadUrlRequest, _current_user: User = Depends(get_current_user), ) -> UploadUrlResponse: return await generate_upload_url(payload) @router.post("/attachments", response_model=AttachmentRead) async def create_attachment_metadata( payload: AttachmentCreateRequest, db: AsyncSession = Depends(get_db), current_user: User = Depends(get_current_user), ) -> AttachmentRead: return await store_attachment_metadata(db, user_id=current_user.id, payload=payload)