import uuid

from db.redis import (
    add_presence,
    remove_presence,
    get_presence
)


async def user_join_group(group_id: str | uuid.UUID, user_id: str | uuid.UUID):
    """
    Called when websocket connects
    """
    await add_presence(str(group_id), str(user_id))


async def user_leave_group(group_id: str | uuid.UUID, user_id: str | uuid.UUID):
    """
    Called when websocket disconnects
    """
    await remove_presence(str(group_id), str(user_id))


async def list_online_users(group_id: str | uuid.UUID):
    """
    Returns online users in a group
    """
    return await get_presence(str(group_id))
