"""
HRM Event Handlers.

هندلرهای رویدادهای پلتفرم و بین‌ماژولی.
"""
import logging
from apps.core.event_bus.events import EventBus

logger = logging.getLogger(__name__)


def handle_user_created(event):
    """
    وقتی کاربر جدید ایجاد شد.
    بررسی آیا نیاز به ایجاد پرونده کارمندی هست.
    """
    logger.info(
        "HRM: Received user.created event for user %s",
        event.aggregate_id,
    )


def handle_org_unit_updated(event):
    """
    وقتی واحد سازمانی آپدیت شد.
    بروزرسانی اطلاعات مرتبط در HRM.
    """
    logger.info(
        "HRM: Received org_unit.updated event for unit %s",
        event.aggregate_id,
    )


def handle_org_unit_deleted(event):
    """
    وقتی واحد سازمانی حذف شد.
    بررسی کارمندان و پست‌های مرتبط.
    """
    logger.info(
        "HRM: Received org_unit.deleted event for unit %s",
        event.aggregate_id,
    )


def register_event_handlers():
    """ثبت تمام event handlerهای HRM."""
    bus = EventBus()
    bus.subscribe("platform.user.created", handle_user_created)
    bus.subscribe("platform.org_unit.updated", handle_org_unit_updated)
    bus.subscribe("platform.org_unit.deleted", handle_org_unit_deleted)
    logger.info("HRM event handlers registered.")
