"""This module registers all event listeners for the application"""

import logging
from src.events.dispatcher import on_event_async
from src.apps.auth.events import UserLoggedInEvent, UserLoggedOutEvent


logger = logging.getLogger(__name__)


@on_event_async('auth.user.logged_in')
async def handle_user_logged_event(event: UserLoggedInEvent):
    """Handle user logged in event"""
    logger.info(f"User logged in id: {event.data['user_id']}")
    logger.info(f"User logged in: {event.data}")

    # with SessionLocal() as db:
    #     invoice_service = InvoiceService(db)
    #     try:
    #         invoice = invoice_service.create_invoice(
    #             payment_id=event.data['payment_id'],
    #             customer_id=event.data['customer_id'],
    #             amount=event.data['amount']
    #         )
    #         logger.info(f"Invoice created: {invoice.id}")
    #     except Exception as e:
    #         logger.error(f"Failed to create invoice for payment {event.data['payment_id']}: {e}")

@on_event_async('auth.user.logged_out')
async def handle_user_logged_out_event(event: UserLoggedOutEvent):
    """Handle user logged out event"""
    logger.info(f"User logged out id: {event.data['user_id']}")
    logger.info(f"User logged out: {event.data}")