@@ -211,6 +211,7 @@ public function indexItems(int $houseId, int $listId, string $sortBy = 'custom',
211211 * @param string|null $quantity Optional quantity string.
212212 * @param string|null $rrule Optional RFC 5545 RRULE for recurrence.
213213 * @param bool $repeatFromCompletion If true, the next occurrence is measured from when the item is marked done; if false, the schedule is anchored at item creation.
214+ * @param bool $deleteOnDone If true, the item is deleted when marked done.
214215 * @param int|null $sortOrder Optional sort order.
215216 *
216217 * @return DataResponse<Http::STATUS_OK, PantryListItem, array{}>
@@ -228,9 +229,10 @@ public function addItem(
228229 ?string $ quantity = null ,
229230 ?string $ rrule = null ,
230231 bool $ repeatFromCompletion = false ,
232+ bool $ deleteOnDone = false ,
231233 ?int $ sortOrder = null ,
232234 ): DataResponse {
233- return $ this ->runAction (function () use ($ houseId , $ listId , $ name , $ description , $ categoryId , $ quantity , $ rrule , $ repeatFromCompletion , $ sortOrder ): DataResponse {
235+ return $ this ->runAction (function () use ($ houseId , $ listId , $ name , $ description , $ categoryId , $ quantity , $ rrule , $ repeatFromCompletion , $ deleteOnDone , $ sortOrder ): DataResponse {
234236 $ this ->auth ->requireMember ($ houseId , $ this ->requireUid ());
235237 $ list = $ this ->lists ->getList ($ listId );
236238 $ this ->assertListInHouse ($ list ->getHouseId (), $ houseId );
@@ -244,6 +246,7 @@ public function addItem(
244246 'quantity ' => $ quantity ,
245247 'rrule ' => $ rrule ,
246248 'repeatFromCompletion ' => $ repeatFromCompletion ,
249+ 'deleteOnDone ' => $ deleteOnDone ,
247250 'sortOrder ' => $ sortOrder ?? 0 ,
248251 ]);
249252 $ this ->notifications ->notifyItemAdded ($ houseId , $ this ->requireUid (), $ item ->getName (), $ list ->getName ());
@@ -263,6 +266,7 @@ public function addItem(
263266 * @param string|null $quantity New quantity (empty string clears).
264267 * @param string|null $rrule New RRULE (empty string clears).
265268 * @param bool|null $repeatFromCompletion New recurrence anchor mode.
269+ * @param bool|null $deleteOnDone If true, the item is deleted when marked done.
266270 * @param int|null $imageFileId File id of attached image (0 or negative clears).
267271 * @param int|null $sortOrder New sort order.
268272 * @param int|null $targetListId Move item to a different list (must belong to the same house).
@@ -283,11 +287,12 @@ public function updateItem(
283287 ?string $ quantity = null ,
284288 ?string $ rrule = null ,
285289 ?bool $ repeatFromCompletion = null ,
290+ ?bool $ deleteOnDone = null ,
286291 ?int $ imageFileId = null ,
287292 ?int $ sortOrder = null ,
288293 ?int $ targetListId = null ,
289294 ): DataResponse {
290- return $ this ->runAction (function () use ($ houseId , $ listId , $ itemId , $ name , $ description , $ categoryId , $ quantity , $ rrule , $ repeatFromCompletion , $ imageFileId , $ sortOrder , $ targetListId ): DataResponse {
295+ return $ this ->runAction (function () use ($ houseId , $ listId , $ itemId , $ name , $ description , $ categoryId , $ quantity , $ rrule , $ repeatFromCompletion , $ deleteOnDone , $ imageFileId , $ sortOrder , $ targetListId ): DataResponse {
291296 $ this ->auth ->requireMember ($ houseId , $ this ->requireUid ());
292297 $ item = $ this ->lists ->getItem ($ itemId );
293298 $ list = $ this ->lists ->getList ($ item ->getListId ());
@@ -319,6 +324,9 @@ public function updateItem(
319324 if ($ repeatFromCompletion !== null ) {
320325 $ patch ['repeatFromCompletion ' ] = $ repeatFromCompletion ;
321326 }
327+ if ($ deleteOnDone !== null ) {
328+ $ patch ['deleteOnDone ' ] = $ deleteOnDone ;
329+ }
322330 if ($ imageFileId !== null ) {
323331 $ patch ['imageFileId ' ] = $ imageFileId > 0 ? $ imageFileId : null ;
324332 }
0 commit comments