Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

45 lines
936B

  1. <?php
  2. namespace App\Logics\Shop;
  3. use App\Exceptions\ParamException;
  4. use App\Models\HtpmsCustomer\Deposit\Deposit;
  5. use App\Models\HtpmsCustomer\Mst\Shop;
  6. use App\Models\User;
  7. class ShopLogic
  8. {
  9. private User|null $customerUser = null;
  10. private Shop|null $shop = null;
  11. public function create(User $customerUser, Shop $shop)
  12. {
  13. $this->customerUser = $customerUser;
  14. $this->shop = $shop;
  15. // チェック処理
  16. if (Shop::whereName($shop->name)->exists()) {
  17. ParamException::throw(Shop::COL_NAME_NAME, trans('validation.unique'));
  18. }
  19. $shop->save();
  20. // デポジット
  21. $deposit = new Deposit();
  22. $deposit->shop_id = $shop->id;
  23. $deposit->save();
  24. return $shop;
  25. }
  26. public function delete(Shop $shop)
  27. {
  28. $shop->delete();
  29. foreach ($shop->users as $user) {
  30. $user->delete();
  31. }
  32. }
  33. }