* @category Class * @license https://www.gnu.org/licenses/lgpl-3.0.en.html GNU Lesser General Public License * @link www.splendidbear.org * @since 2019. 10. 27. */ #[Entity(repositoryClass: GridRepository::class)] class Grid { #[Id, GeneratedValue, Column] public private(set) ?int $id = null; #[OneToOne(inversedBy: 'grid', cascade: ['persist'])] public ?PlayedGame $playedGame = null; #[OneToMany(targetEntity: GridRow::class, mappedBy: 'grid', cascade: ['persist'])] #[JoinColumn(name: 'grid_row', referencedColumnName: 'id', onDelete: 'CASCADE')] public private(set) Collection $gridRow; public function __construct() { $this->gridRow = new ArrayCollection(); } public function addGridRow(GridRow $gridRow): void { $this->gridRow->add($gridRow); $gridRow->grid = $this; } public function removeGridRow(GridRow $gridRow): void { $this->gridRow->removeElement($gridRow); } }