11<?php
22
3+ declare (strict_types=1 );
4+
35namespace Extcode \CartProducts \Domain \DoctrineRepository \Product ;
46
57/*
1517
1618class ProductRepository
1719{
20+ public const TABLENAME = 'tx_cartproducts_domain_model_product_product ' ;
21+
1822 public function __construct (
19- private readonly ConnectionPool $ connectionPool
23+ private readonly ConnectionPool $ connectionPool,
2024 ) {}
2125
26+ public function findProductByUid (int $ uid ): array |bool
27+ {
28+ $ queryBuilder = $ this ->connectionPool ->getQueryBuilderForTable (self ::TABLENAME );
29+
30+ return $ queryBuilder
31+ ->select ('uid ' , 'title ' , 'images ' )
32+ ->from (self ::TABLENAME )
33+ ->where ($ queryBuilder ->expr ()->eq ('uid ' , $ queryBuilder ->createNamedParameter ($ uid )))
34+ ->setMaxResults (1 )
35+ ->executeQuery ()
36+ ->fetchAssociative ();
37+ }
38+
2239 public function getStock (int $ uid ): int
2340 {
2441 $ queryBuilder = $ this ->getQueryBuilder ();
2542
2643 return $ queryBuilder
2744 ->select ('stock ' )
28- ->from (' tx_cartproducts_domain_model_product_product ' )
45+ ->from (self :: TABLENAME )
2946 ->where (
3047 $ queryBuilder ->expr ()->eq ('uid ' , $ queryBuilder ->createNamedParameter ($ uid , Connection::PARAM_INT ))
3148 )
@@ -43,7 +60,7 @@ public function addQuantityToStock(int $uid, int $quantity): void
4360 $ queryBuilder = $ this ->getQueryBuilder ();
4461
4562 $ queryBuilder
46- ->update (' tx_cartproducts_domain_model_product_product ' )
63+ ->update (self :: TABLENAME )
4764 ->where (
4865 $ queryBuilder ->expr ()->eq ('uid ' , $ queryBuilder ->createNamedParameter ($ uid , Connection::PARAM_INT ))
4966 )
@@ -64,7 +81,7 @@ private function getQueryBuilder(): QueryBuilder
6481 {
6582 return $ this
6683 ->connectionPool
67- ->getConnectionForTable (' tx_cartproducts_domain_model_product_product ' )
84+ ->getConnectionForTable (self :: TABLENAME )
6885 ->createQueryBuilder ();
6986 }
7087}
0 commit comments