const db = require('../db') // Upsert — re-granting the same temp role refreshes its expiry instead of // creating a duplicate row (see UNIQUE(guild,user,role) in schema.sql). async function add({ guildId, userId, roleId, expiresAt, createdBy }) { await db.query( `INSERT INTO temp_roles (guild_id, user_id, role_id, expires_at, created_by) VALUES (?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE expires_at = VALUES(expires_at), created_by = VALUES(created_by)`, [guildId, userId, roleId, expiresAt, createdBy || null], ) } async function remove(guildId, userId, roleId) { await db.query('DELETE FROM temp_roles WHERE guild_id = ? AND user_id = ? AND role_id = ?', [guildId, userId, roleId]) } async function listExpired() { return db.query('SELECT id, guild_id, user_id, role_id FROM temp_roles WHERE expires_at <= NOW()') } async function removeById(id) { await db.query('DELETE FROM temp_roles WHERE id = ?', [id]) } module.exports = { add, remove, listExpired, removeById }