Add enable/disable management for book tools (characters, worlds, and locations)

- Introduced toggling functionality for managing `characters`, `worlds`, and `locations` tool availability per book.
- Updated `CharacterComponent`, `WorldSetting`, and `LocationComponent` with toggle switches for tool enablement.
- Added `book_tools` database table and related schema migration for storing tool settings.
- Extended API calls, models, and IPC handlers to support tool enablement states.
- Localized new strings for English with supporting descriptions and messages.
- Adjusted conditional rendering logic across components to respect tool enablement.
This commit is contained in:
natreex
2026-01-14 17:42:59 -05:00
parent 7215ac5c4f
commit e45a15225b
19 changed files with 782 additions and 341 deletions

View File

@@ -111,6 +111,12 @@ interface UpdateWorldData {
world: WorldProps;
}
interface UpdateBookToolData {
bookId: string;
toolName: 'characters' | 'worlds' | 'locations';
enabled: boolean;
}
// GET /books - Get all books
ipcMain.handle('db:book:books', createHandler<void, BookProps[]>(
async function(userId: string, _body: void, lang: 'fr' | 'en'):Promise<BookProps[]> {
@@ -412,3 +418,11 @@ ipcMain.handle('db:book:world:update', createHandler<UpdateWorldData, boolean>(
}
)
);
// PATCH /book/tool-setting - Update book tool setting
ipcMain.handle('db:book:tool:update', createHandler<UpdateBookToolData, boolean>(
function(userId: string, data: UpdateBookToolData, lang: 'fr' | 'en') {
return Book.updateBookToolSetting(userId, data.bookId, data.toolName, data.enabled, lang);
}
)
);