Entry model setup

This commit is contained in:
Matt Young 2024-05-30 22:22:25 -05:00
parent 33747e0658
commit a452234c44
10 changed files with 186 additions and 0 deletions

View File

@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class EntryController extends Controller
{
//
}

View File

@ -4,8 +4,15 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOne;
class Audition extends Model
{
use HasFactory;
public function event(): BelongsTo
{
return $this->belongsTo(Event::class);
}
}

22
app/Models/Entry.php Normal file
View File

@ -0,0 +1,22 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Entry extends Model
{
use HasFactory;
public function student(): BelongsTo
{
return $this->belongsTo(Student::class);
}
public function audition(): BelongsTo
{
return $this->belongsTo(Audition::class);
}
}

View File

@ -4,8 +4,14 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Event extends Model
{
use HasFactory;
public function auditions(): HasMany
{
return $this->hasMany(Audition::class);
}
}

View File

@ -0,0 +1,66 @@
<?php
namespace App\Policies;
use App\Models\Entry;
use App\Models\User;
use Illuminate\Auth\Access\Response;
class EntryPolicy
{
/**
* Determine whether the user can view any models.
*/
public function viewAny(User $user): bool
{
//
}
/**
* Determine whether the user can view the model.
*/
public function view(User $user, Entry $entry): bool
{
//
}
/**
* Determine whether the user can create models.
*/
public function create(User $user): bool
{
//
}
/**
* Determine whether the user can update the model.
*/
public function update(User $user, Entry $entry): bool
{
//
}
/**
* Determine whether the user can delete the model.
*/
public function delete(User $user, Entry $entry): bool
{
//
}
/**
* Determine whether the user can restore the model.
*/
public function restore(User $user, Entry $entry): bool
{
//
}
/**
* Determine whether the user can permanently delete the model.
*/
public function forceDelete(User $user, Entry $entry): bool
{
//
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Entry>
*/
class EntryFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
//
];
}
}

View File

@ -0,0 +1,31 @@
<?php
use App\Models\Audition;
use App\Models\Student;
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('entries', function (Blueprint $table) {
$table->id();
$table->foreignIdFor(Student::class)->constrained()->restrictOnDelete()->cascadeOnUpdate();
$table->foreignIdFor(Audition::class)->constrained()->restrictOnDelete()->cascadeOnUpdate();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('entries');
}
};

View File

@ -0,0 +1,17 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class EntrySeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
}
}

View File

@ -17,6 +17,7 @@
<!-- Current: "bg-indigo-700 text-white", Default: "text-white hover:bg-indigo-500 hover:bg-opacity-75" -->
<x-layout.nav-link href="/dashboard" :active="request()->is('dashboard')">Dashboard</x-layout.nav-link>
<x-layout.nav-link href="/students" :active="request()->is('students')">Students</x-layout.nav-link>
<x-layout.nav-link href="/entries" :actve="request()->is('entries')">Entries</x-layout.nav-link>
{{-- <a href="/dashboard" class="bg-indigo-700 text-white rounded-md px-3 py-2 text-sm font-medium" aria-current="page">Dashboard</a>--}}
{{-- <a href="/students" class="text-white hover:bg-indigo-500 hover:bg-opacity-75 rounded-md px-3 py-2 text-sm font-medium">Students</a>--}}

View File

@ -18,6 +18,9 @@ Route::middleware(['auth','verified'])->group(function () {
Route::get('/my_school', [DashboardController::class, 'my_school']);
});
// Entry Related Routes
// User Related Routes
Route::middleware(['auth','verified'])->controller(UserController::class)->group(function() {
Route::patch('/users/{user}/set_school', 'set_school');