🔪 Extraction Target
Extract all shopping list operations from the 19,843-line index.mjs into a focused ShoppingListService class. Clean cut.
📁 Methods to Extract
// All of these get ripped out and moved to ShoppingListService
getShoppingList()
getShoppingLists()
addToShoppingList()
removeFromShoppingList()
clearShoppingList()
updateShoppingListItem()
// ... and any other shopping-list-related methods
🎯 Definition of Done
⚡ Implementation
// services/ShoppingListService.js
export class ShoppingListService extends BaseService {
async getShoppingList() {
// Direct copy from index.mjs - no changes
}
async addToShoppingList(productId, amount, listId) {
// Direct copy from index.mjs - no changes
}
// ... rest of shopping list methods
}
🚫 NOT in Scope
- Backward compatibility
- Deprecation warnings
- Proxy methods in GrocyClient
- Changing method signatures
- Adding new features
💀 Breaking Changes
Yes. Evolve.
Related to
Parent issue: #11
🔪 Extraction Target
Extract all shopping list operations from the 19,843-line index.mjs into a focused ShoppingListService class. Clean cut.
📁 Methods to Extract
🎯 Definition of Done
services/ShoppingListService.jsextending BaseService⚡ Implementation
🚫 NOT in Scope
💀 Breaking Changes
Yes. Evolve.
Related to
Parent issue: #11