import { getDb } from './database.js';

/**
 * Create an in-app notification for a user.
 * Non-fatal — exceptions are swallowed so that the main operation is never blocked.
 *
 * @param {number} userId   - Recipient user ID
 * @param {string} type     - Notification type (room_share_added | room_share_removed | federation_invite_received)
 * @param {string} title    - Short title (e.g. room name or "from" address)
 * @param {string|null} body  - Optional longer message
 * @param {string|null} link  - Optional frontend path to navigate to when clicked
 */
export async function createNotification(userId, type, title, body = null, link = null) {
  try {
    const db = getDb();
    await db.run(
      'INSERT INTO notifications (user_id, type, title, body, link) VALUES (?, ?, ?, ?, ?)',
      [userId, type, title, body, link],
    );
  } catch {
    // Notifications are non-critical — never break main functionality
  }
}
