'use strict' const { execute, queryOne, query } = require('../database/postgres') class Notification { static async create({ user_cpf, title, message, type }) { return execute( `INSERT INTO notifications (user_cpf, title, message, type) VALUES ($1, $2, $3, $4) RETURNING id`, [user_cpf, title, message, type || 'info'] ) } static async getUserNotifications(user_cpf) { return query( `SELECT * FROM notifications WHERE user_cpf = $1 ORDER BY created_at DESC LIMIT 50`, [user_cpf] ) } static async getUnreadCount(user_cpf) { const row = await queryOne( `SELECT COUNT(*) as total FROM notifications WHERE user_cpf = $1 AND read_at IS NULL`, [user_cpf] ) return row ? parseInt(row.total) : 0 } static async markAsRead(id, user_cpf) { return execute( `UPDATE notifications SET read_at = NOW() WHERE id = $1 AND user_cpf = $2 AND read_at IS NULL`, [id, user_cpf] ) } } module.exports = Notification