Skip to content

Commit

Permalink
PHP-1875 - task/PHP-1875 (#38)
Browse files Browse the repository at this point in the history
* PHP-1875: priceHistory;

* PHP-1875: priceHistory;

* PHP-1875: priceHistory;

* PHP-1875: priceHistory;

* PHP-1875: priceHistory;

* PHP-1875: priceHistory;

* PHP-1875: priceHistory;

* PHP-1875: priceHistory;
  • Loading branch information
tehdeel committed Jul 5, 2022
1 parent 486cd20 commit 5af1076
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 0 deletions.
34 changes: 34 additions & 0 deletions HomeappData/Registry/Dto/PriceHistory/Attributes.php
@@ -0,0 +1,34 @@
<?php declare(strict_types=1);

namespace Homeapp\HomeappData\Registry\Dto\PriceHistory;

use Homeapp\JsonApi\Attributes\AttributesInterface;
use JMS\Serializer\Annotation as Serializer;

class Attributes implements AttributesInterface
{
/**
* @Serializer\Type("int")
* @Serializer\Groups({"API"})
*/
public ?int $oldPrice;

/**
* @Serializer\Type("int")
* @Serializer\Groups({"API"})
*/
public ?int $newPrice;

/**
* @Serializer\Type("DateTimeImmutable<'Y-m-d H:i:s'>")
* @Serializer\Groups({"API"})
*/
public ?\DateTimeImmutable $dateCreated;

public function __construct(?int $oldPrice, ?int $newPrice, ?\DateTimeImmutable $dateCreated)
{
$this->oldPrice = $oldPrice;
$this->newPrice = $newPrice;
$this->dateCreated = $dateCreated;
}
}
31 changes: 31 additions & 0 deletions HomeappData/Registry/Dto/PriceHistory/Data.php
@@ -0,0 +1,31 @@
<?php declare(strict_types=1);

namespace Homeapp\HomeappData\Registry\Dto\PriceHistory;

use Homeapp\HomeappData\Registry\Dto\ResourceObject;
use Homeapp\HomeappData\Registry\Enum\EntityNameEnum;
use JMS\Serializer\Annotation as Serializer;

class Data extends ResourceObject
{
/**
* @property-read
* @Serializer\Type("Homeapp\HomeappData\Registry\Dto\PriceHistory\Attributes")
* @Serializer\Groups({"API"})
*/
public ?Attributes $attributes = null;

/**
* @property-read
* @Serializer\Type("Homeapp\HomeappData\Registry\Dto\PriceHistory\Relationships")
* @Serializer\Groups({"API"})
*/
public ?Relationships $relationships = null;

public function __construct(?string $id, ?Attributes $attributes, ?Relationships $relationships)
{
parent::__construct($id, EntityNameEnum::REALTY);
$this->attributes = $attributes;
$this->relationships = $relationships;
}
}
26 changes: 26 additions & 0 deletions HomeappData/Registry/Dto/PriceHistory/Relationships.php
@@ -0,0 +1,26 @@
<?php declare(strict_types=1);

namespace Homeapp\HomeappData\Registry\Dto\PriceHistory;

use Homeapp\JsonApi\Relationships\RelationshipsBlockSingle;
use Homeapp\JsonApi\Relationships\RelationshipsInterface;
use Homeapp\JsonApi\ResourceIdentifierObject;
use JMS\Serializer\Annotation as Serializer;

class Relationships implements RelationshipsInterface
{
/**
* @var RelationshipsBlockSingle|null
* @Serializer\Type("Homeapp\JsonApi\Relationships\RelationshipsBlockSingle")
* @Serializer\Groups({"API"})
*/
public ?RelationshipsBlockSingle $realty = null;

/**
* @param ResourceIdentifierObject|null $realty
*/
public function __construct(?ResourceIdentifierObject $realty = null)
{
$this->realty = new RelationshipsBlockSingle($realty);
}
}
6 changes: 6 additions & 0 deletions HomeappData/Registry/Dto/Realty/Relationships.php
Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions HomeappData/Registry/Dto/ResourceObject.php
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions HomeappData/Registry/Enum/EntityNameEnum.php
Expand Up @@ -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
{
Expand All @@ -38,6 +39,7 @@ public static function getNames(): array
self::EXTERNAL_LINK => 'Ссылка на площадку',
self::DISTRICT => 'Район',
self::CITY_AREA => 'Административный округ',
self::PRICE_HISTORY => 'Изменение цены',
];
}
}
2 changes: 2 additions & 0 deletions HomeappData/Registry/Enum/Realty/IncludeEnum.php
Expand Up @@ -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
{
Expand All @@ -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',
];
}
}

0 comments on commit 5af1076

Please sign in to comment.