from fastapi import APIRouter, Depends from typing import List from ..controller import message as message_controller from ..schema.message import MessageUpdate, MessageResponse from ..lib.auth import get_current_user router = APIRouter() @router.get("/session/{session_id}", response_model=list[MessageResponse]) async def get_messages_by_session_endpoint( session_id: int, user_id: int = Depends(get_current_user) ): """Retrieve all messages for a specific session.""" return await message_controller.get_messages_by_session(session_id, user_id) @router.get("/{message_id}", response_model=MessageResponse) async def get_message_endpoint( message_id: int, user_id: int = Depends(get_current_user) ): """Retrieve a specific message by ID.""" return await message_controller.get_message(message_id, user_id) @router.put("/{message_id}", response_model=MessageResponse) async def update_message_endpoint( message_id: int, payload: MessageUpdate, user_id: int = Depends(get_current_user) ): """Update a message's content or feedback fields.""" return await message_controller.update_message(message_id, user_id, payload) @router.delete("/{message_id}", status_code=204) async def delete_message_endpoint( message_id: int, user_id: int = Depends(get_current_user) ): """Delete a message by ID.""" await message_controller.delete_message(message_id, user_id)