'_id', 'parent_key' => 'id'] * @return Model Return parent model */ public function childOf(string $parent_class, array $id_definitions); /** * Parent relationship * @param string $child_class Child model class * @param array $id_definitions ['self_key' => 'id', 'child_key' => '_id'] * @return ModelFactory ModelFactory for modification before returning model */ public function parentOf(string $child_class, array $id_definitions): ModelFactory; /** * Parent relationship to one * @param string $child_class Child model class * @param array $id_definitions ['self_key' => 'id', 'child_key' => '_id'] * @return Model Return child model */ public function parentOfOne(string $child_class, array $id_definitions); /** * Parent relationship to many * @param string $child_class Child model class * @param array $id_definitions ['self_key' => 'id', 'child_key' => '_id'] * @return array Return array with child models */ public function parentOfMany(string $child_class, array $id_definitions); /** * Many to Many relationship * @param string $sibling_class Sibling model class * @param string $table_through Table connecting siblings * @param array $id_definitions ['sibling_through_key' => '_id', * 'sibling_key' => 'id', * 'self_through_key' => '_id', * 'self_key' => 'id' * ] * @return array Return array with sibling models */ public function siblingOf(string $sibling_class, string $table_through, array $id_definitions): ModelFactory; public function siblingOfOne(string $sibling_class, string $table_through, array $id_definitions); public function siblingOfMany(string $sibling_class, string $table_through, array $id_definitions); /** * Cast to array * @return array Return array with all columns, can be overriden to include children */ public function toArray(): array; }