<?php

namespace SilverStripe\ORM\Tests\ManyManyThroughListTest;

use Generator;
use SilverStripe\Dev\TestOnly;
use SilverStripe\ORM\DataObject;

class PolyItem extends DataObject implements TestOnly
{
    private static $table_name = 'ManyManyThroughListTest_PolyItem';

    private static $db = [
        'Title' => 'Varchar'
    ];

    private static $has_many = [
        'JoinObject' => PolyJoinObject::class . '.Items',
    ];

    /**
     * Placeholder for missing belongs_many_many for polymorphic relation
     *
     * @todo Make this work for belongs_many_many
     * @return Generator|DataObject[]
     */
    public function Objects()
    {
        foreach ($this->JoinObject() as $object) {
            $objectParent = $object->Parent();
            if ($objectParent && $objectParent->exists()) {
                yield $objectParent;
            }
        }
    }
}