Skip to content
Snippets Groups Projects
Commit 7121b9d1 authored by Александр Плохих's avatar Александр Плохих :waxing_gibbous_moon:
Browse files

STA-960 | add dto and cast from entities

parent 6c9559e6
No related branches found
No related tags found
1 merge request!16Sta 960
Showing
with 281 additions and 25 deletions
<?php
namespace App\DTO;
class RestaurantListDTO
{
private $pagination;
private $list;
private $filterVariants;
}
\ No newline at end of file
<?php
namespace App\DTO;
class RestaurantListingElementDTO
{
private $id;
private $name;
private $code;
private $type;
private $check;
private $image;
private $detailLink;
}
\ No newline at end of file
<?php
namespace App\Dto;
use JsonSerializable;
use Ramsey\Collection\AbstractCollection;
/** Переопределенная коллекция, что бы можно было сериалайзить коллекции */
class DtoCollection extends AbstractCollection implements JsonSerializable
{
public function __construct(
private readonly string $collectionType,
array $data = []
) {
parent::__construct($data);
}
/** @return string */
public function getType(): string
{
return $this->collectionType;
}
/** Метод для сериализации коллекции в JSON */
public function jsonSerialize(): array
{
return $this->data;
}
}
<?php
namespace App\Dto;
/** Инетерфейс, необходимый для реализации протота */
interface DtoInterface {}
<?php
namespace App\Dto;
class ErrorDto implements DtoInterface
{
public string $status;
public string $message;
public string $code;
}
<?php
namespace App\Dto;
class FileDto implements DtoInterface
{
public string $id;
public string $name;
public string $description;
public int $size;
public string $type;
public string $url;
}
<?php
namespace App\Dto;
class KitchenTypeDto implements DtoInterface
{
public string $id;
public string $name;
public string $code;
}
<?php
namespace App\Dto;
class NewsCategoryDto implements DtoInterface
{
public string $id;
public string $name;
public string $code;
}
<?php
namespace App\Dto;
class NewsDetailElementDto implements DtoInterface
{
public string $id;
public string $name;
public string $description;
public ?string $text;
/** @var FileDto Преаью */
public ?FileDto $image;
public string $create_at;
}
<?php
namespace App\Dto;
class NewsFilterVariants implements DtoInterface
{
/** @var DtoCollection<NewsCategoryDto> */
public DtoCollection $category;
}
<?php
namespace App\Dto;
class NewsListDto implements DtoInterface
{
public PaginationDto $pagination;
/** @var DtoCollection<NewsListingElementDto> */
public DtoCollection $list;
public NewsFilterVariants $filterVariants;
}
<?php
namespace App\Dto;
class NewsListingElementDto implements DtoInterface
{
public string $id;
public string $name;
public ?string $description;
/** @var ?FileDto Превью */
public ?FileDto $image;
public string $create_at;
public string $detail_link;
}
<?php
namespace App\Dto;
class PaginationDto implements DtoInterface
{
public int $current_page = 1;
public int $pages;
public int $page_size;
}
<?php
namespace App\Dto;
use Ramsey\Collection\Collection;
class RestaurantDetailElementDto implements DtoInterface
{
public string $id;
public string $name;
public string $code;
public string $coordinates;
public RestaurantTypeDto $type;
public ?string $check;
public ?string $check_info;
/** @var DtoCollection<KitchenTypeDto>|null */
public ?DtoCollection $kitchen;
/** @var DtoCollection<string>|null */
public ?DtoCollection $phone;
/** @var DtoCollection<string>|null */
public ?DtoCollection $email;
/** @var DtoCollection<string>|null */
public ?DtoCollection $address;
/** @var DtoCollection<TagDto>|null */
public ?DtoCollection $tags;
public ?string $site;
/** @var FileDto|null Превью фото */
public ?FileDto $image;
/** @var DtoCollection<FileDto>|null */
public ?DtoCollection $gallery;
}
<?php
namespace App\Dto;
use Ramsey\Collection\Collection;
class RestaurantFilterVariantsDto implements DtoInterface
{
/** @var DtoCollection<RestaurantTypeDto> */
public DtoCollection $type;
/** @var DtoCollection<KitchenTypeDto> */
public DtoCollection $kitchen;
}
<?php
namespace App\Dto;
use Ramsey\Collection\Collection;
class RestaurantListDto implements DtoInterface
{
public PaginationDto $pagination;
/** @var DtoCollection<RestaurantListingElementDto> */
public DtoCollection $list;
public RestaurantFilterVariantsDto $filterVariants;
}
<?php
namespace App\Dto;
class RestaurantListingElementDto implements DtoInterface
{
public string $id;
public string $name;
public string $code;
public RestaurantTypeDto $type;
public ?string $check;
public ?FileDto $image;
public string $detail_link;
}
<?php
namespace App\Dto;
class RestaurantTypeDto implements DtoInterface
{
public string $id;
public string $name;
public string $code;
}
<?php
namespace App\Dto;
class TagDto implements DtoInterface
{
public string $name;
/** @var DtoCollection<string> */
public DtoCollection $list;
}
<?php
namespace App\Dto;
class ValidateErrorDto extends ErrorDto {}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment