- Changed the find method to accept ProductId instead of int. - Added findBySlug method to retrieve products by slug. - Updated getCategoryProducts method to return CategoryProducts type. feat(eloquent): implement findBySlug in EloquentProductDirectory - Implemented findBySlug method to retrieve products by slug. - Updated find method to handle ProductId. feat(dto): enhance CategoryProducts to serialize product IDs - Updated CategoryProducts to serialize product IDs as strings. feat(controller): modify ProductController to handle search limits - Set limitPerCategory to -1 for search functionality. refactor(model): change Product model ID to UUID - Changed the id field in Product model to UUID. - Updated related methods to handle UUIDs. feat(migration): alter products and recipes tables for UUIDs - Updated migrations to use UUIDs for primary keys in products and recipes tables. - Adjusted foreign key constraints in product_recipe table. feat(route): add route model binding for products - Implemented route model binding for products using ProductId and slug. chore(seed): remove CSV import calls from MandatorySeeder - Removed calls to ImportProductsCsvSeeder and ImportRecipesCsvSeeder. feat(entity): create ProductId and RecipeId value objects - Added ProductId and RecipeId classes to encapsulate UUIDs. feat(frontend): update TypeScript interfaces for products - Updated TypeScript interfaces to reflect changes in product structure.
20 lines
429 B
PHP
20 lines
429 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Domain\Models\ValueObjects\Entities;
|
|
|
|
use Ramsey\Uuid\UuidInterface;
|
|
use Shared\DDD\EntityId;
|
|
use Shared\Helpers\UuidHelper;
|
|
|
|
final readonly class ProductId extends EntityId
|
|
{
|
|
public function __construct(
|
|
public UuidInterface $value
|
|
) {
|
|
if (! UuidHelper::isV7($value)) {
|
|
throw new \DomainException('value must be a valid UUID v7');
|
|
}
|
|
}
|
|
}
|