# from sqlalchemy import select
# from app.core.database import get_db
# from app.models.visitor import Visitor
# from app.models.message import Message
# from sqlalchemy.ext.asyncio import AsyncSession
# from fastapi import APIRouter, Depends, HTTPException
# from app.models.agent import AgentAssignmentHistory

# router = APIRouter(prefix="/agents", tags=["Agents"])

# @router.get("/dashboard/visitors")
# async def get_visitors_for_dashboard(agent_id: int, db: AsyncSession = Depends(get_db)):
    
#     # Find active assignments
#     result = await db.execute( select(AgentAssignmentHistory).where(AgentAssignmentHistory.is_active == True) )
#     active_assignments = {a.visitor_id: a.agent_id for a in result.scalars().all()}

#     # Fetch visitors
#     visitors_query = await db.execute( select(Visitor).order_by(Visitor.created_at.desc()) )
#     visitors = visitors_query.scalars().all()

#     out = []
#     for v in visitors:

#         assigned_agent_id = active_assignments.get(v.id)

#         status = (
#             "assigned_to_me"
#             if assigned_agent_id == agent_id else
#             "free" if assigned_agent_id is None else
#             "assigned_to_other"
#         )

#         # Last message
#         last_msg_query = await db.execute( select(Message).where(Message.visitor_id == v.id).order_by(Message.id.desc()).limit(1) )
#         last_msg = last_msg_query.scalar_one_or_none()

#         out.append({
#             "visitor_id": v.id,
#             "name": v.name,
#             "last_message": last_msg.text if last_msg else "",
#             "assigned_agent": assigned_agent_id,
#             "assigned_to_me": assigned_agent_id == agent_id,
#             "status": status,
#             "created_at": v.created_at,
#         })

#     return out
