diff --git a/HomeappData/Registry/Dto/PriceHistory/Attributes.php b/HomeappData/Registry/Dto/PriceHistory/Attributes.php new file mode 100644 index 0000000..b4e93f8 --- /dev/null +++ b/HomeappData/Registry/Dto/PriceHistory/Attributes.php @@ -0,0 +1,34 @@ +") + * @Serializer\Groups({"API"}) + */ + public ?\DateTimeImmutable $dateCreated; + + public function __construct(?int $oldPrice, ?int $newPrice, ?\DateTimeImmutable $dateCreated) + { + $this->oldPrice = $oldPrice; + $this->newPrice = $newPrice; + $this->dateCreated = $dateCreated; + } +} diff --git a/HomeappData/Registry/Dto/PriceHistory/Data.php b/HomeappData/Registry/Dto/PriceHistory/Data.php new file mode 100644 index 0000000..80abe01 --- /dev/null +++ b/HomeappData/Registry/Dto/PriceHistory/Data.php @@ -0,0 +1,31 @@ +attributes = $attributes; + $this->relationships = $relationships; + } +} diff --git a/HomeappData/Registry/Dto/PriceHistory/Relationships.php b/HomeappData/Registry/Dto/PriceHistory/Relationships.php new file mode 100644 index 0000000..32d8ed9 --- /dev/null +++ b/HomeappData/Registry/Dto/PriceHistory/Relationships.php @@ -0,0 +1,26 @@ +realty = new RelationshipsBlockSingle($realty); + } +} diff --git a/HomeappData/Registry/Dto/Realty/Relationships.php b/HomeappData/Registry/Dto/Realty/Relationships.php index 7f6eb64..0eb215d 100644 --- a/HomeappData/Registry/Dto/Realty/Relationships.php +++ b/HomeappData/Registry/Dto/Realty/Relationships.php @@ -53,6 +53,12 @@ class Relationships implements RelationshipsInterface */ public ?RelationshipsBlockSingle $externalLink = null; + /** + * @Serializer\Type("Homeapp\JsonApi\Relationships\RelationshipsBlockMultiple") + * @Serializer\Groups({"API"}) + */ + public ?RelationshipsBlockMultiple $priceHistory = null; + public function __construct(RelationshipsBlockSingle $address) { $this->address = $address; diff --git a/HomeappData/Registry/Dto/ResourceObject.php b/HomeappData/Registry/Dto/ResourceObject.php index 7c3b142..88ddcc6 100644 --- a/HomeappData/Registry/Dto/ResourceObject.php +++ b/HomeappData/Registry/Dto/ResourceObject.php @@ -30,6 +30,7 @@ * "realtyImage": "Homeapp\HomeappData\Registry\Dto\RealtyImage\Data", * "realtyMetroDistance": "Homeapp\HomeappData\Registry\Dto\RealtyMetroDistance\Data", * "externalLink": "Homeapp\HomeappData\Registry\Dto\ExternalLink\Data", + * "priceHistory": "Homeapp\HomeappData\Registry\Dto\PriceHistory\Data", * }, groups={"API"}) */ abstract class ResourceObject implements ResourceInterface, ResourceObjectInterface diff --git a/HomeappData/Registry/Enum/EntityNameEnum.php b/HomeappData/Registry/Enum/EntityNameEnum.php index 5fcaba0..c90b067 100644 --- a/HomeappData/Registry/Enum/EntityNameEnum.php +++ b/HomeappData/Registry/Enum/EntityNameEnum.php @@ -19,6 +19,7 @@ class EntityNameEnum public const EXTERNAL_LINK = 'externalLink'; public const DISTRICT = 'district'; public const CITY_AREA = 'cityArea'; + public const PRICE_HISTORY = 'priceHistory'; public static function getNames(): array { @@ -38,6 +39,7 @@ public static function getNames(): array self::EXTERNAL_LINK => 'Ссылка на площадку', self::DISTRICT => 'Район', self::CITY_AREA => 'Административный округ', + self::PRICE_HISTORY => 'Изменение цены', ]; } } diff --git a/HomeappData/Registry/Enum/Realty/IncludeEnum.php b/HomeappData/Registry/Enum/Realty/IncludeEnum.php index 34b527d..73857dc 100644 --- a/HomeappData/Registry/Enum/Realty/IncludeEnum.php +++ b/HomeappData/Registry/Enum/Realty/IncludeEnum.php @@ -18,6 +18,7 @@ class IncludeEnum public const HIGHWAYS = 'highwayDistance.highway'; public const IMAGES = 'realtyImage.image'; public const EXTERNAL_LINK = 'externalLink'; + public const PRICE_HISTORY = 'priceHistory'; public static function getNames(): array { @@ -31,6 +32,7 @@ public static function getNames(): array self::HIGHWAYS => 'highwayDistance.highway', self::IMAGES => 'realtyImage.image', self::EXTERNAL_LINK => 'externalLink', + self::PRICE_HISTORY => 'priceHistory', ]; } }