feat: add repository interfaces (ports) for Article, ArticleType, Platform, Customer, Order
This commit is contained in:
parent
e8fb01f707
commit
047c3e2588
5 changed files with 103 additions and 0 deletions
27
src/Domain/Article/Repository/ArticleRepositoryInterface.php
Normal file
27
src/Domain/Article/Repository/ArticleRepositoryInterface.php
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Domain\Article\Repository;
|
||||||
|
|
||||||
|
use App\Domain\Article\Article;
|
||||||
|
use App\Domain\Article\ArticleStatus;
|
||||||
|
use Symfony\Component\Uid\Uuid;
|
||||||
|
|
||||||
|
interface ArticleRepositoryInterface
|
||||||
|
{
|
||||||
|
public function findById(Uuid $id): ?Article;
|
||||||
|
|
||||||
|
public function findBySku(string $sku): ?Article;
|
||||||
|
|
||||||
|
public function findByInventoryNumber(string $inventoryNumber): ?Article;
|
||||||
|
|
||||||
|
/** @return list<Article> */
|
||||||
|
public function findByStatus(ArticleStatus $status): array;
|
||||||
|
|
||||||
|
public function decrementStockAtomic(Uuid $articleId): bool;
|
||||||
|
|
||||||
|
public function save(Article $article): void;
|
||||||
|
|
||||||
|
public function remove(Article $article): void;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Domain\Article\Repository;
|
||||||
|
|
||||||
|
use App\Domain\Article\ArticleType;
|
||||||
|
use Symfony\Component\Uid\Uuid;
|
||||||
|
|
||||||
|
interface ArticleTypeRepositoryInterface
|
||||||
|
{
|
||||||
|
public function findById(Uuid $id): ?ArticleType;
|
||||||
|
|
||||||
|
public function findByName(string $name): ?ArticleType;
|
||||||
|
|
||||||
|
/** @return list<ArticleType> */
|
||||||
|
public function findAll(): array;
|
||||||
|
|
||||||
|
public function save(ArticleType $articleType): void;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Domain\Channel\Repository;
|
||||||
|
|
||||||
|
use App\Domain\Channel\Platform;
|
||||||
|
use Symfony\Component\Uid\Uuid;
|
||||||
|
|
||||||
|
interface PlatformRepositoryInterface
|
||||||
|
{
|
||||||
|
public function findById(Uuid $id): ?Platform;
|
||||||
|
|
||||||
|
public function findByType(string $type): ?Platform;
|
||||||
|
|
||||||
|
/** @return list<Platform> */
|
||||||
|
public function findAll(): array;
|
||||||
|
|
||||||
|
public function save(Platform $platform): void;
|
||||||
|
}
|
||||||
19
src/Domain/Order/Repository/CustomerRepositoryInterface.php
Normal file
19
src/Domain/Order/Repository/CustomerRepositoryInterface.php
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Domain\Order\Repository;
|
||||||
|
|
||||||
|
use App\Domain\Order\Customer;
|
||||||
|
use Symfony\Component\Uid\Uuid;
|
||||||
|
|
||||||
|
interface CustomerRepositoryInterface
|
||||||
|
{
|
||||||
|
public function findById(Uuid $id): ?Customer;
|
||||||
|
|
||||||
|
public function findByPlatformId(string $platform, string $platformUserId): ?Customer;
|
||||||
|
|
||||||
|
public function findByMatchingKey(string $matchingKey): ?Customer;
|
||||||
|
|
||||||
|
public function save(Customer $customer): void;
|
||||||
|
}
|
||||||
17
src/Domain/Order/Repository/OrderRepositoryInterface.php
Normal file
17
src/Domain/Order/Repository/OrderRepositoryInterface.php
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Domain\Order\Repository;
|
||||||
|
|
||||||
|
use App\Domain\Order\Order;
|
||||||
|
use Symfony\Component\Uid\Uuid;
|
||||||
|
|
||||||
|
interface OrderRepositoryInterface
|
||||||
|
{
|
||||||
|
public function findById(Uuid $id): ?Order;
|
||||||
|
|
||||||
|
public function findByPlatformOrderId(string $platformOrderId): ?Order;
|
||||||
|
|
||||||
|
public function save(Order $order): void;
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue