. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\ORM\Relation; use Espo\ORM\Entity; use Espo\ORM\EntityCollection; /** * @internal Not ready for production. */ interface Relations { /** * Reset a specific relation. */ public function reset(string $relation): void; /** * Reset all. */ public function resetAll(): void; /** * @param Entity|null $related */ public function set(string $relation, Entity|null $related): void; /** * Is a relation set (updated). */ public function isSet(string $relation): bool; /** * Get set (updated) record or records. * * @return Entity|null */ public function getSet(string $relation): Entity|null; /** * Get one related record. For has-one, belongs-to. */ public function getOne(string $relation): ?Entity; /** * Get a collection of related records. For has-many, many-many, has-children. * * @return EntityCollection */ public function getMany(string $relation): EntityCollection; }