import inquirer from 'inquirer'; import { loadConfig } from '../config.js'; import { initDirectusClient, searchItems, updateItem } from '../directus/client.js'; export const updateReadingProgress = async () => { const config = await loadConfig(); initDirectusClient(config); const readingBooks = await searchItems('books', '', { read_status: 'started' }); if (!readingBooks.length) { console.log('📖 No books currently marked as "started".'); return; } const { bookId } = await inquirer.prompt({ type: 'list', name: 'bookId', message: '📚 Select a book to update progress:', choices: readingBooks.map((book) => { const title = book.title || book.name || `Book #${book.id}`; const progress = book.progress ?? 0; return { name: `${title} (${progress}%)`, value: book.id }; }) }); const { progress } = await inquirer.prompt({ name: 'progress', message: '📕 New progress percentage (0–100):', validate: (input) => { const num = Number(input); return (!isNaN(num) && num >= 0 && num <= 100) || 'Enter a number from 0 to 100'; } }); await updateItem('books', bookId, { progress: Number(progress) }); console.log(`✅ Updated book progress to ${progress}%`); };