diff --git a/app/src/News/Service/NewsPrepareResponseService.php b/app/src/News/Service/NewsPrepareResponseService.php index 7836146b6d3efaa1d7a0f2d1f0ddf442f504fd50..24a680e3322681926ce21371ab2a40be45918093 100644 --- a/app/src/News/Service/NewsPrepareResponseService.php +++ b/app/src/News/Service/NewsPrepareResponseService.php @@ -10,13 +10,13 @@ use App\News\DtoFactory\NewsDetailElementDtoFactory; use App\News\DtoFactory\NewsFilterVariantsDtoFactory; use App\News\DtoFactory\NewsListDtoFactory; use App\News\DtoFactory\NewsListingElementDtoFactory; -use App\News\EntityFabric\NewsEntityFabric; use App\News\Request\NewsCreateRequest; use App\News\Request\NewsDetailRequest; use App\News\Request\NewsFullUpdateRequest; use App\News\Request\NewsListingRequest; use App\News\Request\NewsPartUpdateRequest; use App\Shared\DtoFactory\PaginationDtoFactory; +use App\Shared\EntityFactory\NewsEntityFactory; use App\Shared\Error\NotFoundError; use App\Shared\Repository\NewsCategoriesRepository; use App\Shared\Repository\NewsRepository; @@ -32,7 +32,7 @@ class NewsPrepareResponseService private readonly NewsListDtoFactory $listingFactory, private readonly NewsCategoryDtoFactory $categoryFactory, private readonly NewsDetailElementDtoFactory $detailElementFactory, - private readonly NewsEntityFabric $entityFabric, + private readonly NewsEntityFactory $entityFabric, ) { } diff --git a/app/src/Shared/Entity/Restaurants.php b/app/src/Shared/Entity/Restaurants.php index 11033eb315b16404f82679979c1883c6dbafa086..7a8e894017cfde271704304877178dd9e1624bb6 100644 --- a/app/src/Shared/Entity/Restaurants.php +++ b/app/src/Shared/Entity/Restaurants.php @@ -393,4 +393,17 @@ class Restaurants return $this; } + + #[ORM\PrePersist] + public function setCreatedAtValue(): void + { + $this->createdAt = new DateTimeImmutable(); + $this->updateAt = new DateTimeImmutable(); + } + + #[ORM\PreUpdate] + public function setUpdateAtValue(): void + { + $this->updateAt = new DateTimeImmutable(); + } } diff --git a/app/src/News/EntityFabric/NewsEntityFabric.php b/app/src/Shared/EntityFactory/NewsEntityFactory.php similarity index 94% rename from app/src/News/EntityFabric/NewsEntityFabric.php rename to app/src/Shared/EntityFactory/NewsEntityFactory.php index 65f36c8dc2014eb2113327d4107c38ab11ffe50d..abcf0b6be304830a8aba78d9cda4de8a992ff569 100644 --- a/app/src/News/EntityFabric/NewsEntityFabric.php +++ b/app/src/Shared/EntityFactory/NewsEntityFactory.php @@ -1,6 +1,6 @@ */ private readonly Collection $newsSetters; @@ -25,7 +25,7 @@ class NewsEntityFabric private readonly NewsCategoriesRepository $categoriesRepository, private readonly FileRepository $fileRepository, ) { - $this->newsSetters = $this->getSetters(); + $this->newsSetters = $this->setNewsSetters(); } public function create(NewsCreateRequest $request): News @@ -72,7 +72,8 @@ class NewsEntityFabric return $news; } - private function getSetters(): Collection + /** @return Collection */ + private function setNewsSetters(): Collection { $newsSetters = new Collection('callable'); diff --git a/app/src/Shared/EntityFactory/RestaurantEntityFactory.php b/app/src/Shared/EntityFactory/RestaurantEntityFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..a38f1f72a9df08299bd58cb453532e67a8ab1432 --- /dev/null +++ b/app/src/Shared/EntityFactory/RestaurantEntityFactory.php @@ -0,0 +1,17 @@ + */ + private readonly Collection $restaurantSetters; + + /** @return Collection */ + private function setRestaurantSetters(): Collection + { + + } +} \ No newline at end of file diff --git a/app/src/Shared/EventListener/NewsPerCreate.php b/app/src/Shared/EventListener/NewsPerCreate.php index 41a5332f13626d519d448613c559dde92f9205de..ffb29c0e440a1804e13bce8997c9a40b70d1d029 100644 --- a/app/src/Shared/EventListener/NewsPerCreate.php +++ b/app/src/Shared/EventListener/NewsPerCreate.php @@ -17,7 +17,7 @@ class NewsPerCreate public function preFlush(News $news, PreFlushEventArgs $args) { if ($news->getSort() === null) { - $news->setSort($news->getSort() + 1); + $news->setSort($this->newsRepository->getMaxValueSort() + 1); } if ($news->isMainPageRender()) { diff --git a/app/src/Shared/EventListener/RestaurantPerCreate.php b/app/src/Shared/EventListener/RestaurantPerCreate.php new file mode 100644 index 0000000000000000000000000000000000000000..72f17297dc346b94f25092da5490f58dc858291c --- /dev/null +++ b/app/src/Shared/EventListener/RestaurantPerCreate.php @@ -0,0 +1,25 @@ +getSort() === null) { + $restaurant->setSort($this->restaurantsRepository->getMaxValueSort() + 1); + } + } +} diff --git a/app/src/Shared/Repository/RestaurantsRepository.php b/app/src/Shared/Repository/RestaurantsRepository.php index 48eef29c71b89a3ab453955aaec6e357fc71e6fd..5bbf103e070b71c18cc3c0e37f3649ea0898b732 100644 --- a/app/src/Shared/Repository/RestaurantsRepository.php +++ b/app/src/Shared/Repository/RestaurantsRepository.php @@ -24,6 +24,14 @@ class RestaurantsRepository extends ServiceEntityRepository parent::__construct($registry, Restaurants::class); } + public function getMaxValueSort(): int + { + return $this->createQueryBuilder('r') + ->select('MAX(r.sort)') + ->getQuery() + ->getSingleScalarResult(); + } + /** @return Collection */ protected function toCollection(QueryBuilder $query): Collection {