schema([ Forms\Components\Select::make('educational_programs_id') ->searchable() ->label('Образовательная программа') ->options(EducationalProgram::whereIn('status', [EducationalProgramStatus::PUBLISHED, EducationalProgramStatus::IN_PROGRESS])->pluck('name', 'id')), Forms\Components\Select::make('admission_campaigns_id') ->label('Приемная компания') ->options(AdmissionCampaign::all()->pluck('name', 'id')), Section::make('План приема')->schema([ Forms\Components\Repeater::make('exams')->label('Вступительные испытания')->schema([ TextInput::make('title')->label('Название-предмета'), Forms\Components\Select::make('type_exam')->label('Тип-ВИ') ->options(['ege' => 'ЕГЭ', 'internal_test' => 'ВИ, проводимое организацией самостоятельно']), TextInput::make('min_score')->label('Минимальный-балл')->integer() ])->live()->maxItems(2)->collapsed()->addActionLabel('Добавить вступительное испытание')->columns(3) ->itemLabel(function (Get $get) { static $count = 0; $maxCount = count($get('exams')); $count = ($count++ <= $maxCount) ? $count : 1; return "Вступительное испытание #" . $count; }), Forms\Components\Repeater::make('contests')->label('Условия поступления')->schema([ Forms\Components\Select::make('form_education')->label('Форма образования') ->options(['och' => 'Очная форма обучения', 'zaoch' => 'Заочная форма обучения', 'och_zaoch' => 'Очно-заочная форма обучения']), Forms\Components\Select::make('financing_source')->label('Источник финансирования') ->options(['budget' => 'Бюджетное место', 'non_budget' => 'С оплатой обучения']), TextInput::make('budget_quantity_position')->label('Количество бюджетных мест')->integer(), TextInput::make('non_budget_quantity_position')->label('Количество платных мест')->integer() ])->live()->maxItems(2)->collapsed()->addActionLabel('Добавить группу')->columns(3) ->itemLabel(function (Get $get) { static $count = 0; $maxCount = count($get('contests')); $count = ($count++ <= $maxCount) ? $count : 1; return "Группа #" . $count; }), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ // ]) ->filters([ // ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ ]; } public static function getPages(): array { return [ 'index' => Pages\ListAdmissionPlans::route('/'), 'create' => Pages\CreateAdmissionPlan::route('/create'), 'edit' => Pages\EditAdmissionPlan::route('/{record}/edit'), ]; } }