Spaces:
Running
Running
| from sqlalchemy.orm import Session | |
| from app.models.user import AdminNotification | |
| from datetime import datetime | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| def create_admin_notification(db: Session, title: str, message: str): | |
| """ | |
| Registra de forma segura una notificación para el administrador en la DB. | |
| Maneja excepciones y realiza rollback en caso de fallo para no romper la transacción principal. | |
| """ | |
| try: | |
| notif = AdminNotification( | |
| title=title, | |
| message=message, | |
| created_at=datetime.utcnow(), | |
| read=False | |
| ) | |
| db.add(notif) | |
| db.commit() | |
| logger.info(f"[AdminNotif] Notificación registrada: {title} - {message}") | |
| except Exception as e: | |
| db.rollback() | |
| logger.warning(f"[AdminNotif] Error al guardar notificación de admin: {e}") | |