refactor: service interfaces
All checks were successful
Build Test / build (pull_request) Successful in 14s
JS Unit Tests / test (pull_request) Successful in 14s
PHP Unit Tests / test (pull_request) Successful in 48s

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-05-09 17:00:00 -04:00
parent 4e7260ad86
commit b8cda71c17
5 changed files with 40 additions and 28 deletions

View File

@@ -11,6 +11,7 @@ namespace KTXF\Mail\Service;
use KTXF\Mail\Entity\EntityBaseInterface;
use KTXF\Mail\Entity\EntityMutableInterface;
use KTXF\Mail\Object\MessagePropertiesMutableInterface;
use KTXF\Resource\Identifier\CollectionIdentifier;
use KTXF\Resource\Identifier\EntityIdentifier;
@@ -22,11 +23,12 @@ use KTXF\Resource\Identifier\EntityIdentifier;
*
* @since 2025.05.01
*/
interface ServiceEntityMutableInterface extends ServiceBaseInterface {
interface ServiceEntityMutableInterface {
public const CAPABILITY_ENTITY_CREATE = 'EntityCreate';
public const CAPABILITY_ENTITY_MODIFY = 'EntityModify';
public const CAPABILITY_ENTITY_DELETE = 'EntityDelete';
public const CAPABILITY_ENTITY_PATCH = 'EntityPatch';
public const CAPABILITY_ENTITY_COPY = 'EntityCopy';
public const CAPABILITY_ENTITY_MOVE = 'EntityMove';
@@ -44,33 +46,32 @@ interface ServiceEntityMutableInterface extends ServiceBaseInterface {
*
* @since 2025.05.01
*
* @param string|int $collection collection identifier
* @param EntityMutableInterface $entity Entity data
* @param array $options additional options
* @param CollectionIdentifier $target Target collection identifier
* @param MessagePropertiesMutableInterface $properties Entity properties
* @param array $options Additional options
*
* @return EntityBaseInterface Created entity
*/
public function entityCreate(string|int $collection, EntityMutableInterface $entity, array $options = []): EntityBaseInterface;
public function entityCreate(CollectionIdentifier $target, MessagePropertiesMutableInterface $properties, array $options = []): EntityBaseInterface;
/**
* Modifies an existing entity
*
* @since 2025.05.01
*
* @param string|int $collection Collection identifier
* @param string|int $identifier Entity identifier
* @param EntityMutableInterface $entity Entity data
* @param EntityIdentifier $target Target entity identifier
* @param MessagePropertiesMutableInterface $properties Entity properties to update
*
* @return EntityBaseInterface Modified entity
*/
public function entityModify(string|int $collection, string|int $identifier, EntityMutableInterface $entity): EntityBaseInterface;
public function entityModify(EntityIdentifier $target, MessagePropertiesMutableInterface $properties): EntityBaseInterface;
/**
* Deletes entities
*
* @since 2026.04.01
*
* @param EntityIdentifier ...$identifiers Source entities to delete
* @param EntityIdentifier ...$targets Source entities to delete
*
* @return array<string, array{
* disposition: 'moved'|'deleted'|'error',
@@ -78,23 +79,21 @@ interface ServiceEntityMutableInterface extends ServiceBaseInterface {
* mutation: EntityIdentifier
* }> Results keyed by source entity identifier
*/
public function entityDelete(EntityIdentifier ...$identifiers): array;
public function entityDelete(EntityIdentifier ...$targets): array;
/**
* Copies entities to another collection
* Patches an existing entity(ies) with partial data
*
* @since 2025.05.01
*
* @param CollectionIdentifier $target Target collection identifier
* @param EntityIdentifier ...$identifiers Source entities to copy
* @param MessagePropertiesMutableInterface $properties Partial entity properties
* @param EntityIdentifier ...$targets Source entities to patch
*
* @return array<string, array{
* disposition: 'copied'|'error',
* destination: ?CollectionIdentifier,
* mutation: EntityIdentifier
* disposition: 'patched'|'error'
* }> Results keyed by source entity identifier
*/
public function entityCopy(CollectionIdentifier $target, EntityIdentifier ...$identifiers): array;
public function entityPatch(MessagePropertiesMutableInterface $properties, EntityIdentifier ...$targets): array;
/**
* Moves entities to another collection
@@ -102,7 +101,7 @@ interface ServiceEntityMutableInterface extends ServiceBaseInterface {
* @since 2025.05.01
*
* @param CollectionIdentifier $target Target collection identifier
* @param EntityIdentifier ...$identifiers Source entities to move
* @param EntityIdentifier ...$sources Source entities to move
*
* @return array<string, array{
* disposition: 'moved'|'error',
@@ -110,6 +109,22 @@ interface ServiceEntityMutableInterface extends ServiceBaseInterface {
* mutation: EntityIdentifier
* }> Results keyed by source entity identifier
*/
public function entityMove(CollectionIdentifier $target, EntityIdentifier ...$identifiers): array;
public function entityMove(CollectionIdentifier $target, EntityIdentifier ...$sources): array;
/**
* Copies entities to another collection
*
* @since 2025.05.01
*
* @param CollectionIdentifier $target Target collection identifier
* @param EntityIdentifier ...$sources Source entities to copy
*
* @return array<string, array{
* disposition: 'copied'|'error',
* destination: ?CollectionIdentifier,
* mutation: EntityIdentifier
* }> Results keyed by source entity identifier
*/
public function entityCopy(CollectionIdentifier $target, EntityIdentifier ...$sources): array;
}