ldc-ovoteam/domain/Models/ValueObjects/Entities/ProductId.php
Jérémy Munsch 1a12569395
feat(directory): update ProductDirectory to use ProductId
- 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.
2026-09-21 11:43:39 +02:00

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');
}
}
}