from typing import Optional from fastapi import APIRouter, Depends from sqlmodel import Session from core.database import get_session from schemas.bot import MessageFeedbackRequest from services.chat_history_service import ( clear_bot_messages_payload, clear_dashboard_direct_session_payload, delete_bot_message_payload, list_bot_messages_by_date_payload, list_bot_messages_page_payload, list_bot_messages_payload, update_bot_message_feedback_payload, ) router = APIRouter() @router.get("/api/bots/{bot_id}/messages") def list_bot_messages(bot_id: str, limit: int = 200, session: Session = Depends(get_session)): return list_bot_messages_payload(session, bot_id, limit=limit) @router.get("/api/bots/{bot_id}/messages/page") def list_bot_messages_page( bot_id: str, limit: Optional[int] = None, before_id: Optional[int] = None, session: Session = Depends(get_session), ): return list_bot_messages_page_payload(session, bot_id, limit=limit, before_id=before_id) @router.get("/api/bots/{bot_id}/messages/by-date") def list_bot_messages_by_date( bot_id: str, date: str, tz_offset_minutes: Optional[int] = None, limit: Optional[int] = None, session: Session = Depends(get_session), ): return list_bot_messages_by_date_payload( session, bot_id, date=date, tz_offset_minutes=tz_offset_minutes, limit=limit, ) @router.put("/api/bots/{bot_id}/messages/{message_id}/feedback") def update_bot_message_feedback( bot_id: str, message_id: int, payload: MessageFeedbackRequest, session: Session = Depends(get_session), ): return update_bot_message_feedback_payload(session, bot_id, message_id, payload.feedback) @router.delete("/api/bots/{bot_id}/messages/{message_id}") def delete_bot_message( bot_id: str, message_id: int, session: Session = Depends(get_session), ): return delete_bot_message_payload(session, bot_id, message_id) @router.post("/api/bots/{bot_id}/messages/{message_id}/delete") def delete_bot_message_post( bot_id: str, message_id: int, session: Session = Depends(get_session), ): return delete_bot_message_payload(session, bot_id, message_id) @router.delete("/api/bots/{bot_id}/messages") def clear_bot_messages(bot_id: str, session: Session = Depends(get_session)): return clear_bot_messages_payload(session, bot_id) @router.post("/api/bots/{bot_id}/sessions/dashboard-direct/clear") def clear_bot_dashboard_direct_session(bot_id: str, session: Session = Depends(get_session)): return clear_dashboard_direct_session_payload(session, bot_id)