mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 14:34:04 +00:00
Also move pivot record deletion to that listener and improve tests The 'tenant pivot records are deleted along with the tenants to which they belong to' test is failing in this commit -- the listener for deleting mappings when a *tenant* is deleted is only implemented in the next commit. The only change done here is to re-add FKs (necessary for passing *in this commit* in that specific dataset variant) that were removed from the default test migration as we now have the the DeleteResourceMapping listener that's enabled by default.
38 lines
1 KiB
PHP
38 lines
1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Stancl\Tenancy\ResourceSyncing;
|
|
|
|
interface Syncable
|
|
{
|
|
public function getGlobalIdentifierKeyName(): string;
|
|
|
|
public function getGlobalIdentifierKey(): string|int;
|
|
|
|
public function getCentralModelName(): string;
|
|
|
|
public function getSyncedAttributeNames(): array;
|
|
|
|
public function triggerSyncEvent(): void;
|
|
|
|
public function triggerDeleteEvent(bool $forceDelete = false): void;
|
|
|
|
/**
|
|
* Get the attributes used for creating the *other* model (i.e. tenant if this is the central one, and central if this is the tenant one).
|
|
*
|
|
* You can also specify the default values for the attributes.
|
|
*
|
|
* E.g. return [
|
|
* 'attribute',
|
|
* 'attribute2' => 'default value',
|
|
* ];
|
|
*
|
|
* In the ResourceSyncing trait, this method defaults to getSyncedAttributeNames().
|
|
*
|
|
* Note: These values are *merged into* getSyncedAttributeNames().
|
|
*/
|
|
public function getCreationAttributes(): array;
|
|
|
|
public function shouldSync(): bool;
|
|
}
|