package storage import ( "database/sql" "fmt" ) func ArchiveMessage(db *sql.DB, userID, messageID int) error { _, err := db.Exec(` UPDATE user_messages SET is_archived = TRUE, archived_at = CURRENT_TIMESTAMP WHERE id = ? AND recipientId = ? `, messageID, userID) return err } func MarkMessageAsRead(db *sql.DB, messageID, userID int) error { result, err := db.Exec(` UPDATE user_messages SET is_read = TRUE WHERE id = ? AND recipientId = ? `, messageID, userID) if err != nil { return err } rowsAffected, err := result.RowsAffected() if err != nil { return err } if rowsAffected == 0 { return fmt.Errorf("no matching message found for user_id=%d and message_id=%d", userID, messageID) } return nil } func RestoreMessage(db *sql.DB, userID, messageID int) error { _, err := db.Exec(` UPDATE user_messages SET is_archived = FALSE, archived_at = NULL WHERE id = ? AND recipientId = ? `, messageID, userID) return err }