"""Trabajo programado de la cuenta."""

import logging

from celery import shared_task

from apps.accounts.services import purge_session_records

logger = logging.getLogger(__name__)


@shared_task(name='apps.accounts.tasks.purge_sessions')
def purge_sessions() -> dict:
    """
    Aplica la retención de las filas de sesión ya cerradas.

    Sin esta tarea el plazo declarado en la configuración sería una intención:
    la dirección de origen y el agente de usuario de cada sesión cerrada
    quedarían guardados para siempre.
    """
    deleted = purge_session_records()
    logger.info('sesiones purgadas: %s', deleted)
    return {'deleted': deleted}
