# Create a new file: users/utils/agent_utils.py

from api.property_api.agent.models.agent import Agent
from api.property_api.agent.serializer.agent_serializer import AgentSerializer
import logging

logger = logging.getLogger(__name__)


# users/utils/agent_utils.py

def get_agent_data(user, request=None):
    """
    Fetch agent data for a user with role 'agent'
    
    Args:
        user: User instance
        request: The current HTTP request object (needed for image URLs)
        
    Returns:
        dict: Contains agent_id and agent serialized data
    """
    if user.role != 'agent':
        return None
    
    try:
        agent = Agent.objects.get(agent_user=user)
        
        # Pass the request object to the serializer context
        serializer = AgentSerializer(
            agent, 
            context={'request': request}
        )
        
        return {
            'agent_id': agent.id,
            'agent': serializer.data  # Now this will work because context is present
        }
    except Agent.DoesNotExist:
        logger.warning(f"No agent profile found for user: {user.email}")
        return {
            'agent_id': None,
            'agent': None
        }
    except Exception as e:
        logger.error(f"Error fetching agent details for user {user.email}: {str(e)}")
        return {
            'agent_id': None,
            'agent': None
        }