diff --git a/app/Http/Controllers/CompetitionController.php b/app/Http/Controllers/CompetitionController.php index 7232190..c95fc62 100644 --- a/app/Http/Controllers/CompetitionController.php +++ b/app/Http/Controllers/CompetitionController.php @@ -3,13 +3,13 @@ namespace App\Http\Controllers; use App\Models\Competition; +use App\Models\User; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; class CompetitionController extends Controller { - - public static function getPublicCompetitions(int $skip = 0, int $take = 10): JsonResponse + public static function getPublics(int $skip = 0, int $take = 10): JsonResponse { if ($skip < 0) { $skip = 0; @@ -37,6 +37,35 @@ class CompetitionController extends Controller ]); } + public static function getUser(User $user, int $skip = 0, int $take = 10): JsonResponse + { + if ($skip < 0) { + $skip = 0; + } + if ($take < 1 || $take > 100) { + $take = 10; + } + + $query = Competition::where('owner', $user->id); + + $competitions = $query->orderBy('start_date', 'desc') + ->skip($skip) + ->take($take) + ->get(); + + $total = $query->count(); + + return response()->json([ + 'data' => $competitions, + 'meta' => [ + 'skip' => $skip, + 'take' => $take, + 'total' => $total, + 'hasMore' => ($skip + $take) < $total + ] + ]); + } + /** * Get all public competitions/tournaments with pagination. * diff --git a/app/Models/Competition.php b/app/Models/Competition.php index 2d3133f..cafaad1 100644 --- a/app/Models/Competition.php +++ b/app/Models/Competition.php @@ -25,6 +25,7 @@ class Competition extends Model 'location', 'max_teams', 'current_scheduling_mode_id', + 'owner', ]; /** diff --git a/database/migrations/2025_06_24_000001_create_competition_system_tables.php b/database/migrations/2025_06_24_000001_create_competition_system_tables.php index d6151cb..90d735c 100644 --- a/database/migrations/2025_06_24_000001_create_competition_system_tables.php +++ b/database/migrations/2025_06_24_000001_create_competition_system_tables.php @@ -22,6 +22,7 @@ return new class extends Migration $table->string('location')->nullable(); $table->integer('max_teams')->default(0); $table->integer('current_scheduling_mode_id')->nullable(); + $table->uuid('owner')->nullable(); $table->timestamps(); }); diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000..85ba6ac Binary files /dev/null and b/public/logo.png differ diff --git a/public/logo.svg b/public/logo.svg index f99154c..8e3ba6a 100644 --- a/public/logo.svg +++ b/public/logo.svg @@ -1,7 +1,25 @@ - - - - - - - + + + + Layer 1 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/js/components/AppHeader.svelte b/resources/js/components/AppHeader.svelte index f80bbaf..e5255f9 100644 --- a/resources/js/components/AppHeader.svelte +++ b/resources/js/components/AppHeader.svelte @@ -42,11 +42,6 @@ ]; const rightNavItems: NavItem[] = [ - { - title: 'Repository', - href: 'https://github.com/oseughu/svelte-starter-kit', - icon: Folder, - }, { title: 'Documentation', href: 'https://laravel.com/docs/starter-kits', @@ -101,9 +96,7 @@ - - - +