* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\Chrono\Provider; use KTXF\Json\JsonDeserializable; use KTXF\Chrono\Service\IServiceBase; interface IProviderServiceMutate extends JsonDeserializable { public const CAPABILITY_SERVICE_FRESH = 'ServiceFresh'; public const CAPABILITY_SERVICE_CREATE = 'ServiceCreate'; public const CAPABILITY_SERVICE_UPDATE = 'ServiceUpdate'; public const CAPABILITY_SERVICE_DESTROY = 'ServiceDestroy'; /** * construct and new blank service instance * * @since 2025.05.01 */ public function serviceFresh(string $uid = ''): IServiceBase; /** * create a service configuration for a specific user * * @since 2025.05.01 */ public function serviceCreate(string $uid, IServiceBase $service): string; /** * modify a service configuration for a specific user * * @since 2025.05.01 */ public function serviceModify(string $uid, IServiceBase $service): string; /** * delete a service configuration for a specific user * * @since 2025.05.01 */ public function serviceDestroy(string $uid, IServiceBase $service): bool; }