melodix-api / app /utils /notifications.py
GitHub Action
deploy from github actions
440bac0
Raw
History Blame Contribute Delete
863 Bytes
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}")