*/ final class AIPipelineJobCrudController extends AbstractCrudController { public static function getEntityFqcn(): string { return AIPipelineJob::class; } public function configureCrud(Crud $crud): Crud { return $crud->setEntityLabelInSingular('AI Pipeline Job')->setEntityLabelInPlural('AI Pipeline Jobs'); } public function configureActions(Actions $actions): Actions { return $actions->disable(Action::NEW, Action::EDIT, Action::DELETE); } public function configureFields(string $pageName): iterable { yield IdField::new('id')->hideOnForm(); yield ChoiceField::new('type')->setChoices( array_combine( array_map(static fn ($t) => $t->value, AIPipelineJobType::cases()), AIPipelineJobType::cases(), ) ); yield ChoiceField::new('status')->setChoices( array_combine( array_map(static fn ($s) => $s->value, AIPipelineJobStatus::cases()), AIPipelineJobStatus::cases(), ) ); yield IntegerField::new('attemptCount', 'Attempts'); } }