. */ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBankRepetition; /** * Class PiggyBankObserver */ class PiggyBankObserver { public function created(PiggyBank $piggyBank): void { app('log')->debug('Observe "created" of a piggy bank.'); $repetition = new PiggyBankRepetition(); $repetition->piggyBank()->associate($piggyBank); $repetition->startdate = $piggyBank->startdate; $repetition->targetdate = $piggyBank->targetdate; $repetition->currentamount = '0'; $repetition->save(); } /** * Also delete related objects. */ public function deleting(PiggyBank $piggyBank): void { app('log')->debug('Observe "deleting" of a piggy bank.'); foreach ($piggyBank->attachments()->get() as $attachment) { $attachment->delete(); } $piggyBank->piggyBankEvents()->delete(); $piggyBank->piggyBankRepetitions()->delete(); $piggyBank->notes()->delete(); } }