|
@@ -2,9 +2,9 @@
|
|
|
|
|
|
|
|
namespace App\Services;
|
|
namespace App\Services;
|
|
|
|
|
|
|
|
|
|
+use App\Models\Franchisee;
|
|
|
|
|
+use App\Models\FranchiseeUnit;
|
|
|
use App\Models\Unit;
|
|
use App\Models\Unit;
|
|
|
-use App\Models\UnitContract;
|
|
|
|
|
-use App\Models\UnitPartner;
|
|
|
|
|
use Illuminate\Database\Eloquent\Collection;
|
|
use Illuminate\Database\Eloquent\Collection;
|
|
|
use Illuminate\Http\UploadedFile;
|
|
use Illuminate\Http\UploadedFile;
|
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Support\Facades\Storage;
|
|
@@ -31,28 +31,31 @@ public function findById(int $id): ?Unit
|
|
|
|
|
|
|
|
public function create(array $data): Unit
|
|
public function create(array $data): Unit
|
|
|
{
|
|
{
|
|
|
- $partners = $data['partners'] ?? [];
|
|
|
|
|
- $contracts = $data['contracts'] ?? [];
|
|
|
|
|
- unset($data['partners'], $data['contracts']);
|
|
|
|
|
|
|
+ $franchiseeData = [
|
|
|
|
|
+ 'name' => $data['fantasy_name'],
|
|
|
|
|
+ 'cnpj' => $data['cnpj'],
|
|
|
|
|
+ 'cpf' => null,
|
|
|
|
|
+ 'rg' => null,
|
|
|
|
|
+ 'phone' => $data['cell_number'] ?? null,
|
|
|
|
|
+ 'cellphone_number' => $data['phone_number'] ?? null,
|
|
|
|
|
+ 'street' => $data['street'],
|
|
|
|
|
+ 'address_number' => $data['address_number'] ?? null,
|
|
|
|
|
+ 'neighborhood' => $data['neighborhood'],
|
|
|
|
|
+ 'postal_code' => $data['postal_code'],
|
|
|
|
|
+ 'city_id' => $data['city_id'],
|
|
|
|
|
+ 'state_id' => $data['state_id'],
|
|
|
|
|
+ 'birth_date' => null,
|
|
|
|
|
+ ];
|
|
|
|
|
|
|
|
$data = $this->handleAvatar($data);
|
|
$data = $this->handleAvatar($data);
|
|
|
$unit = Unit::create($data);
|
|
$unit = Unit::create($data);
|
|
|
|
|
|
|
|
- foreach ($partners as $partnerData) {
|
|
|
|
|
- if (isset($partnerData['avatar']) && $partnerData['avatar'] instanceof UploadedFile) {
|
|
|
|
|
- $partnerData['avatar_url'] = $partnerData['avatar']->store('unit-partners/avatars');
|
|
|
|
|
- unset($partnerData['avatar']);
|
|
|
|
|
- }
|
|
|
|
|
- UnitPartner::create(array_merge($partnerData, ['unit_id' => $unit->id]));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ $franchisee = Franchisee::create($franchiseeData);
|
|
|
|
|
|
|
|
- foreach ($contracts as $file) {
|
|
|
|
|
- UnitContract::create([
|
|
|
|
|
- 'unit_id' => $unit->id,
|
|
|
|
|
- 'name' => $file->getClientOriginalName(),
|
|
|
|
|
- 'file_url' => $file->store('unit-contracts'),
|
|
|
|
|
- ]);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ FranchiseeUnit::create([
|
|
|
|
|
+ 'franchisee_id' => $franchisee->id,
|
|
|
|
|
+ 'unit_id' => $unit->id,
|
|
|
|
|
+ ]);
|
|
|
|
|
|
|
|
return $unit;
|
|
return $unit;
|
|
|
}
|
|
}
|
|
@@ -65,6 +68,8 @@ public function update(int $id, array $data): ?Unit
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ unset($data['franchisee']);
|
|
|
|
|
+
|
|
|
$data = $this->handleAvatar($data, $model->avatar_url);
|
|
$data = $this->handleAvatar($data, $model->avatar_url);
|
|
|
$model->update($data);
|
|
$model->update($data);
|
|
|
return $model->fresh(['city', 'state']);
|
|
return $model->fresh(['city', 'state']);
|