änderungen zuammengeführt

This commit is contained in:
Alexander Gabriel 2026-05-12 20:23:45 +00:00
parent ec5b6ba86f
commit e952c060f3
33 changed files with 1097 additions and 0 deletions

View File

@ -0,0 +1,57 @@
<?php
namespace App\Filament\Resources\Belts;
use App\Filament\Resources\Belts\Pages\CreateBelt;
use App\Filament\Resources\Belts\Pages\EditBelt;
use App\Filament\Resources\Belts\Pages\ListBelts;
use App\Filament\Resources\Belts\Schemas\BeltForm;
use App\Filament\Resources\Belts\Tables\BeltsTable;
use App\Filament\Resources\Belts\RelationManagers\CoursesRelationManager;
use App\Models\Belt;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class BeltResource extends Resource
{
protected static ?string $model = Belt::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::ArrowUpCircle;
protected static ?string $recordTitleAttribute = 'name';
protected static ?string $pluralLabel = 'Gürtel';
protected static ?string $label = 'Gürtel';
protected static ?string $navigationLabel = "Gürtel";
protected static ?string $pluralModelLabel = "Gürtel";
protected static ?string $modelLabel = "Gürtel";
public static function form(Schema $schema): Schema
{
return BeltForm::configure($schema);
}
public static function table(Table $table): Table
{
return BeltsTable::configure($table);
}
public static function getRelations(): array
{
return [
CoursesRelationManager::class
];
}
public static function getPages(): array
{
return [
'index' => ListBelts::route('/'),
'create' => CreateBelt::route('/create'),
'edit' => EditBelt::route('/{record}/edit'),
];
}
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\Belts\Pages;
use App\Filament\Resources\Belts\BeltResource;
use Filament\Resources\Pages\CreateRecord;
class CreateBelt extends CreateRecord
{
protected static string $resource = BeltResource::class;
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Belts\Pages;
use App\Filament\Resources\Belts\BeltResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditBelt extends EditRecord
{
protected static string $resource = BeltResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Belts\Pages;
use App\Filament\Resources\Belts\BeltResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListBelts extends ListRecords
{
protected static string $resource = BeltResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}

View File

@ -0,0 +1,67 @@
<?php
namespace App\Filament\Resources\Belts\RelationManagers;
use Filament\Actions\AttachAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DetachAction;
use Filament\Actions\DetachBulkAction;
use Filament\Actions\EditAction;
use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class CoursesRelationManager extends RelationManager
{
protected static string $relationship = 'courses';
public function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->required(),
TextInput::make('duration')
->required()
->numeric(),
]);
}
public function table(Table $table): Table
{
return $table
->recordTitleAttribute('name')
->columns([
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('name')
->searchable(),
TextColumn::make('duration')
->numeric()
->sortable(),
])
->filters([
//
])
->headerActions([
AttachAction::make()->preloadRecordSelect(),
])
->recordActions([
DetachAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DetachBulkAction::make(),
]),
]);
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace App\Filament\Resources\Belts\Schemas;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class BeltForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->required(),
]);
}
}

View File

@ -0,0 +1,41 @@
<?php
namespace App\Filament\Resources\Belts\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class BeltsTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('name')
->searchable(),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Filament\Resources\Courses;
use App\Filament\Resources\Courses\Pages\CreateCourse;
use App\Filament\Resources\Courses\Pages\EditCourse;
use App\Filament\Resources\Courses\Pages\ListCourses;
use App\Filament\Resources\Courses\Pages\ViewCourse;
use App\Filament\Resources\Courses\RelationManagers\KidsRelationManager;
use App\Filament\Resources\Courses\Schemas\CourseForm;
use App\Filament\Resources\Courses\Schemas\CourseInfolist;
use App\Filament\Resources\Courses\Tables\CoursesTable;
use App\Models\Course;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class CourseResource extends Resource
{
protected static ?string $model = Course::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::ArchiveBox;
protected static ?string $recordTitleAttribute = 'name';
protected static ?string $pluralLabel = 'Kurse';
protected static ?string $label = 'Kurs';
protected static ?string $navigationLabel = "Kurse";
protected static ?string $pluralModelLabel = "Kurse";
protected static ?string $modelLabel = "Kurs";
public static function form(Schema $schema): Schema
{
return CourseForm::configure($schema);
}
public static function infolist(Schema $schema): Schema
{
return CourseInfolist::configure($schema);
}
public static function table(Table $table): Table
{
return CoursesTable::configure($table);
}
public static function getRelations(): array
{
return [
KidsRelationManager::class
];
}
public static function getPages(): array
{
return [
'index' => ListCourses::route('/'),
'create' => CreateCourse::route('/create'),
'view' => ViewCourse::route('/{record}'),
'edit' => EditCourse::route('/{record}/edit'),
];
}
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\Courses\Pages;
use App\Filament\Resources\Courses\CourseResource;
use Filament\Resources\Pages\CreateRecord;
class CreateCourse extends CreateRecord
{
protected static string $resource = CourseResource::class;
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Filament\Resources\Courses\Pages;
use App\Filament\Resources\Courses\CourseResource;
use Filament\Actions\DeleteAction;
use Filament\Actions\ViewAction;
use Filament\Resources\Pages\EditRecord;
class EditCourse extends EditRecord
{
protected static string $resource = CourseResource::class;
protected function getHeaderActions(): array
{
return [
ViewAction::make(),
DeleteAction::make(),
];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Courses\Pages;
use App\Filament\Resources\Courses\CourseResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListCourses extends ListRecords
{
protected static string $resource = CourseResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Courses\Pages;
use App\Filament\Resources\Courses\CourseResource;
use Filament\Actions\EditAction;
use Filament\Resources\Pages\ViewRecord;
class ViewCourse extends ViewRecord
{
protected static string $resource = CourseResource::class;
protected function getHeaderActions(): array
{
return [
EditAction::make(),
];
}
}

View File

@ -0,0 +1,103 @@
<?php
namespace App\Filament\Resources\Courses\RelationManagers;
use Filament\Actions\AttachAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\DetachAction;
use Filament\Actions\DetachBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\TextInput;
use Filament\Infolists\Components\TextEntry;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class KidsRelationManager extends RelationManager
{
protected static string $relationship = 'kids';
public function isReadOnly(): bool
{
return false;
}
public function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->required(),
TextInput::make('email')
->label('Email address')
->email(),
]);
}
public function infolist(Schema $schema): Schema
{
return $schema
->components([
TextEntry::make('created_at')
->dateTime()
->placeholder('-'),
TextEntry::make('updated_at')
->dateTime()
->placeholder('-'),
TextEntry::make('name'),
TextEntry::make('email')
->label('Email address')
->placeholder('-'),
]);
}
public function table(Table $table): Table
{
return $table
->recordTitleAttribute('name')
->columns([
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('name')
->searchable(),
TextColumn::make('email')
->label('Email address')
->searchable(),
])
->filters([
//
])
->headerActions([
CreateAction::make(),
AttachAction::make()
->form(fn (AttachAction $action): array => [
$action->getRecordSelect(),
DatePicker::make('date')->required(),
])->preloadRecordSelect()
])
->recordActions([
ViewAction::make(),
EditAction::make(),
DetachAction::make(),
DeleteAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DetachBulkAction::make(),
DeleteBulkAction::make(),
]),
]);
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Filament\Resources\Courses\Schemas;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class CourseForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->required(),
TextInput::make('duration')
->required()
->numeric(),
]);
}
}

View File

@ -0,0 +1,25 @@
<?php
namespace App\Filament\Resources\Courses\Schemas;
use Filament\Infolists\Components\TextEntry;
use Filament\Schemas\Schema;
class CourseInfolist
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextEntry::make('created_at')
->dateTime()
->placeholder('-'),
TextEntry::make('updated_at')
->dateTime()
->placeholder('-'),
TextEntry::make('name'),
TextEntry::make('duration')
->numeric(),
]);
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace App\Filament\Resources\Courses\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class CoursesTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('name')
->searchable(),
TextColumn::make('duration')
->numeric()
->sortable(),
])
->filters([
//
])
->recordActions([
ViewAction::make(),
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Filament\Resources\Kids;
use App\Filament\Resources\Kids\Pages\CreateKid;
use App\Filament\Resources\Kids\Pages\EditKid;
use App\Filament\Resources\Kids\Pages\ListKids;
use App\Filament\Resources\Kids\Pages\ViewKid;
use App\Filament\Resources\Kids\RelationManagers\CoursesRelationManager;
use App\Filament\Resources\Kids\Schemas\KidForm;
use App\Filament\Resources\Kids\Schemas\KidInfolist;
use App\Filament\Resources\Kids\Tables\KidsTable;
use App\Models\Kid;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class KidResource extends Resource
{
protected static ?string $model = Kid::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::UserCircle;
protected static ?string $recordTitleAttribute = 'name';
protected static ?string $pluralLabel = 'Kinder';
protected static ?string $label = 'Kind';
protected static ?string $navigationLabel = "Kinder";
protected static ?string $pluralModelLabel = "Kinder";
protected static ?string $modelLabel = "Kind";
public static function form(Schema $schema): Schema
{
return KidForm::configure($schema);
}
public static function infolist(Schema $schema): Schema
{
return KidInfolist::configure($schema);
}
public static function table(Table $table): Table
{
return KidsTable::configure($table);
}
public static function getRelations(): array
{
return [
CoursesRelationManager::class
];
}
public static function getPages(): array
{
return [
'index' => ListKids::route('/'),
'create' => CreateKid::route('/create'),
'view' => ViewKid::route('/{record}'),
'edit' => EditKid::route('/{record}/edit'),
];
}
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\Kids\Pages;
use App\Filament\Resources\Kids\KidResource;
use Filament\Resources\Pages\CreateRecord;
class CreateKid extends CreateRecord
{
protected static string $resource = KidResource::class;
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Filament\Resources\Kids\Pages;
use App\Filament\Resources\Kids\KidResource;
use Filament\Actions\DeleteAction;
use Filament\Actions\ViewAction;
use Filament\Resources\Pages\EditRecord;
class EditKid extends EditRecord
{
protected static string $resource = KidResource::class;
protected function getHeaderActions(): array
{
return [
ViewAction::make(),
DeleteAction::make(),
];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Kids\Pages;
use App\Filament\Resources\Kids\KidResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListKids extends ListRecords
{
protected static string $resource = KidResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Kids\Pages;
use App\Filament\Resources\Kids\KidResource;
use Filament\Actions\EditAction;
use Filament\Resources\Pages\ViewRecord;
class ViewKid extends ViewRecord
{
protected static string $resource = KidResource::class;
protected function getHeaderActions(): array
{
return [
EditAction::make(),
];
}
}

View File

@ -0,0 +1,104 @@
<?php
namespace App\Filament\Resources\Kids\RelationManagers;
use Filament\Actions\AttachAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\DetachAction;
use Filament\Actions\DetachBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\TextInput;
use Filament\Infolists\Components\TextEntry;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class CoursesRelationManager extends RelationManager
{
protected static string $relationship = 'courses';
public function isReadOnly(): bool
{
return false;
}
public function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->required(),
TextInput::make('duration')
->required()
->numeric(),
DatePicker::make('date')
]);
}
public function infolist(Schema $schema): Schema
{
return $schema
->components([
TextEntry::make('created_at')
->dateTime()
->placeholder('-'),
TextEntry::make('updated_at')
->dateTime()
->placeholder('-'),
TextEntry::make('name'),
TextEntry::make('duration')
->numeric(),
]);
}
public function table(Table $table): Table
{
return $table
->recordTitleAttribute('name')
->columns([
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('name')
->searchable(),
TextColumn::make('date')
->searchable(),
TextColumn::make('duration')
->numeric()
->sortable(),
])
->filters([
//
])
->headerActions([
AttachAction::make()
->schema(fn (AttachAction $action): array => [
$action->getRecordSelect(),
DatePicker::make('date')->required(),
])->preloadRecordSelect()
])
->recordActions([
ViewAction::make(),
EditAction::make(),
DetachAction::make(),
DeleteAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DetachBulkAction::make(),
DeleteBulkAction::make(),
]),
]);
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Filament\Resources\Kids\Schemas;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class KidForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->required(),
TextInput::make('email')
->label('Email address')
->email(),
]);
}
}

View File

@ -0,0 +1,26 @@
<?php
namespace App\Filament\Resources\Kids\Schemas;
use Filament\Infolists\Components\TextEntry;
use Filament\Schemas\Schema;
class KidInfolist
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextEntry::make('created_at')
->dateTime()
->placeholder('-'),
TextEntry::make('updated_at')
->dateTime()
->placeholder('-'),
TextEntry::make('name'),
TextEntry::make('email')
->label('Email address')
->placeholder('-'),
]);
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace App\Filament\Resources\Kids\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class KidsTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('name')
->searchable(),
TextColumn::make('email')
->label('Email address')
->searchable(),
])
->filters([
//
])
->recordActions([
ViewAction::make(),
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}

17
app/Models/Belt.php Normal file
View File

@ -0,0 +1,17 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Belt extends Model
{
protected $fillable = ["name"];
public function courses(): BelongsToMany
{
return $this->belongsToMany(Course::class);
}
}

23
app/Models/Course.php Normal file
View File

@ -0,0 +1,23 @@
<?php
namespace App\Models;
use App\Models\Kid;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Course extends Model
{
protected $fillable = ["name", "duration"];
public function kids(): BelongsToMany
{
return $this->belongsToMany(Kid::class)->withPivot("date");
}
public function belts(): BelongsToMany
{
return $this->belongsToMany(Belt::class);
}
}

16
app/Models/Kid.php Normal file
View File

@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Kid extends Model
{
protected $fillable = ["name", "email"];
public function courses(): BelongsToMany
{
return $this->belongsToMany(Course::class)->withPivot("date");
}
}

View File

@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('kids', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string("name");
$table->string("email")->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('kids');
}
};

View File

@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('courses', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string("name");
$table->integer("duration");
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('courses');
}
};

View File

@ -0,0 +1,32 @@
<?php
use App\Models\Course;
use App\Models\Kid;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('course_kid', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->foreignIdFor(Kid::class);
$table->foreignIdFor(Course::class);
$table->date("date")->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('course_kid');
}
};

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('belts', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string("name");
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('coursecategories');
}
};

View File

@ -0,0 +1,31 @@
<?php
use App\Models\Belt;
use App\Models\Course;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('belt_course', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->foreignIdFor(Belt::class);
$table->foreignIdFor(Course::class);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('belt_course');
}
};