<?php
declare(strict_types=1);
namespace Slivki\Response\Beauty\Offer;
use OpenApi\Annotations as OA;
use JsonSerializable;
final class MasterLocationResponse implements JsonSerializable
{
/**
* @OA\Property(
* property="locationId",
* type="integer",
* description="Идентификатор локации",
* example=1234,
* )
*/
private int $locationId;
/**
* @OA\Property(
* property="name",
* type="string",
* description="Название локации",
* example="Название локации",
* )
*/
private string $name;
/**
* @OA\Property(
* property="phones",
* type="array",
* description="Телефоны",
* @OA\Items(type="string"),
* )
*/
private array $phones;
/**
* @OA\Property(
* description="Рассстояние от пользователя в метрах",
* example=6123,
* nullable=true,
* )
*/
private ?int $distance;
private ?float $latitude;
private ?float $longitude;
public function __construct(
int $locationId,
string $name,
array $phones,
?float $latitude = null,
?float $longitude = null,
?int $distance = null
) {
$this->locationId = $locationId;
$this->name = $name;
$this->phones = $phones;
$this->latitude = $latitude;
$this->longitude = $longitude;
$this->distance = $distance;
}
public function getLocationId(): int
{
return $this->locationId;
}
public function getName(): string
{
return $this->name;
}
public function getPhones(): array
{
return $this->phones;
}
public function getDistance(): ?int
{
return $this->distance;
}
public function getLatitude(): ?float
{
return $this->latitude;
}
public function getLongitude(): ?float
{
return $this->longitude;
}
public function updateDistance(?int $distance): void
{
$this->distance = $distance;
}
public function jsonSerialize(): array
{
return [
'locationId' => $this->locationId,
'name' => $this->name,
'phones' => $this->phones,
'distance' => $this->distance,
'latitude' => $this->latitude,
'longitude' => $this->longitude,
];
}
}