1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Sync;
4:
5: /**
6: * Serialized sync entity relationship data formats, inspired by JSON-LD
7: */
8: interface SyncEntityLinkType
9: {
10: /**
11: * "@type" and "@id"
12: *
13: * ```php
14: * <?php
15: * [
16: * '@type' => 'prefix:Foo',
17: * '@id' => 42,
18: * ]
19: * ```
20: */
21: public const DEFAULT = 0;
22:
23: /**
24: * "@id" only (identifier type not preserved)
25: *
26: * ```php
27: * <?php
28: * [
29: * '@id' => 'prefix:Foo/42',
30: * ]
31: * ```
32: */
33: public const COMPACT = 1;
34:
35: /**
36: * "@type", "@id", "@name" and "@description" (empty values removed)
37: *
38: * ```php
39: * <?php
40: * [
41: * '@type' => 'prefix:Foo',
42: * '@id' => 42,
43: * '@name' => 'Foo',
44: * ]
45: * ```
46: */
47: public const FRIENDLY = 2;
48: }
49: