gruene-seele/app/Repositories/UserShopRepository.php
2025-04-01 10:39:21 +02:00

71 lines
No EOL
1.8 KiB
PHP

<?php
namespace App\Repositories;
use App\User;
use App\Services\Util;
use App\Models\UserShop;
use App\Models\PromotionUserProduct;
use Illuminate\Support\Facades\Auth;
use App\Models\PromotionAdminProduct;
class UserShopRepository extends BaseRepository {
public function __construct(UserShop $model){
$this->model = $model;
}
public function update($id, $data)
{
$data['active'] = isset($data['active']) ? 1 : 0;
$data['pick_up'] = isset($data['pick_up']) ? 1 : 0;
$data['url'] = Util::sanitize($data['user_shop_url'], true, false, true, true);
$this->model = $this->getById($id);
$this->model->fill($data);
$this->model->save();
return $this->model;
}
public function create(User $user){
$user_name = $user->getFullName(false);
$url = Util::sanitize($user_name, true, false, true, true);
$url = $this->makeUniqueURL($url);
UserShop::create([
'user_id' => $user->id,
'url' => $url,
'name' => __('shop.greetings')." ".$user_name,
'description' => __('shop.default_description'),
'about_you' => $user->account->about_you,
'user_address' => Auth::user()->getFullAddress()."\n".__('shop.default_user_open'),
'pick_up' => false,
'active' => true,
'active_date' => now(),
]);
return User::find($user->id);
}
public function makeUniqueURL($url){
$bool = true;
$count = 1;
$unique_url = $url;
while($bool){
if(UserShop::where('url', $unique_url)->count()){
$unique_url = $url."_".$count;
$count ++;
}else{
$bool = false;
}
}
return $unique_url;
}
}