<?php namespace Lc\CaracoleBundle\Definition\Field\Ticket; use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; use Lc\CaracoleBundle\Definition\Field\FieldDefinitionTrait; use Lc\CaracoleBundle\Repository\Section\SectionStore; use Lc\CaracoleBundle\Solver\Ticket\TicketSolver; use Lc\SovBundle\Definition\Field\Ticket\TicketFieldDefinition as SovTicketFieldDefinition; use Lc\SovBundle\Translation\TranslatorAdmin; class TicketFieldDefinition extends SovTicketFieldDefinition { use FieldDefinitionTrait; protected SectionStore $sectionStore; public function __construct( TranslatorAdmin $translatorAdmin, TicketSolver $ticketSolver, SectionStore $sectionStore ) { parent::__construct($translatorAdmin, $ticketSolver); $this->sectionStore = $sectionStore; } public function configureFields(): array { return array_merge(parent::configureFields(), [ 'type' => ChoiceField::new('type') ->autocomplete() ->setSortable(true) ->setChoices( $this->translatorAdmin->transChoices( TicketSolver::getTypeChoices(), 'Ticket', 'type' ) ), ]); } public function configureIndex(): array { return $this->addSectionToFieldArrayIfOutOfSection($this->section, parent::configureIndex()); } public function configureForm(): array { return array_merge(['section'], parent::configureForm()); } }