51 lines
1.4 KiB
PHP
51 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Resources;
|
|
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
|
|
class CVResource extends JsonResource
|
|
{
|
|
public static $wrap = null;
|
|
|
|
private bool $isConsole = false;
|
|
|
|
public function toArray($request = null): array
|
|
{
|
|
return [
|
|
'id' => $this->when($this->isConsole, fn (): int => $this->id),
|
|
'token' => $this->token,
|
|
'email' => $this->email,
|
|
'recipient' => $this->when($this->isConsole, fn (): string => $this->recipient),
|
|
'phone' => new PhoneResource($this->resource),
|
|
'locations' => $this->locations,
|
|
'views' => $this->when(
|
|
$this->isConsole,
|
|
fn (): int => $this->resource->info()->select('id')->get()->count()
|
|
),
|
|
'registeredViews' => $this->when($this->isConsole, fn (): int => $this->views),
|
|
'mission' => $this->when(
|
|
!is_null($this->mission),
|
|
fn (): array => explode(PHP_EOL, $this->mission, 5)
|
|
),
|
|
'rodo' => $this->when(
|
|
!is_null($this->rodo),
|
|
$this->rodo
|
|
),
|
|
'position' => $this->when(
|
|
!is_null($this->position),
|
|
$this->position
|
|
),
|
|
];
|
|
}
|
|
|
|
public function setAsConsole(): self
|
|
{
|
|
$this->isConsole = true;
|
|
|
|
return $this;
|
|
}
|
|
}
|