diff --git a/app/Filament/Resources/UserResource.php b/app/Filament/Resources/UserResource.php index b30a8aa..501de1d 100755 --- a/app/Filament/Resources/UserResource.php +++ b/app/Filament/Resources/UserResource.php @@ -55,7 +55,7 @@ public static function form(Form $form): Form ->disabled() ->nullable(), Forms\Components\Section::make()->schema([ - Forms\Components\Checkbox::make('is_confirmed')->label('Верифицирован'), + Forms\Components\Checkbox::make('is_confirmed')->label('Проверен'), Forms\Components\Checkbox::make('is_admin')->label('Администратор'), ])->columns(2), Forms\Components\TextInput::make('password') diff --git a/app/Http/Controllers/Api/TeamController.php b/app/Http/Controllers/Api/TeamController.php index 232108e..9cfa24e 100644 --- a/app/Http/Controllers/Api/TeamController.php +++ b/app/Http/Controllers/Api/TeamController.php @@ -6,6 +6,7 @@ use App\DTO\Api\Team\Request\TeamUpdateDTO; use App\Models\Team; +use App\Models\User; use App\Services\Api\TeamService; use Illuminate\Http\JsonResponse; @@ -13,7 +14,8 @@ class TeamController extends Controller { public function __construct( protected TeamService $teamService - ){ + ) + { } public function show(int $id): array @@ -44,4 +46,44 @@ public function challenge(int $id): array { return Team::query()->find($id)?->challenges()->get()->toArray() ?? []; } + + public function delete(int $teamId, int $userId): array + { + $team = Team::query()->find($teamId); + + if ($team) { + $user = $team->users()->find($userId); + if ($user) { + if (auth()->id() === $team->captain_id) { + if (auth()->id() !== $user->id) { + $team->users()->detach($user->id); + + return $team->users()->get()->toArray(); + } + } + } + } + + return []; + } + + public function joinMember(int $teamId, int $userId): array + { + $user = User::query()->find($userId); + $team = Team::query()->find($teamId); + + if ($user && $team) { + $team->users()->attach($user->id); + + if ($user->telegram_id) { + $tg = new TelegramController(); + + $tg->sendMessage($user->telegram_id, 'вы были приглашены в команду - ' . $team->name); + } + + return $team->users()->get()->toArray(); + } + + return []; + } } diff --git a/public/favicon.ico b/public/favicon.ico index e69de29..e3d81a0 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index 979e82a..c4e5d84 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -4,13 +4,13 @@ - Laravel + {{env('APP_NAME')}} - - + + @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot'))) @vite(['resources/css/app.css', 'resources/js/app.js']) @else @@ -19,43 +19,50 @@ @endif - -
- Laravel background + +
-
+
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- @if (Route::has('login')) - - @endif
diff --git a/routes/api.php b/routes/api.php index 9733120..cf32367 100755 --- a/routes/api.php +++ b/routes/api.php @@ -28,6 +28,8 @@ Route::get('/{id}/members', [TeamController::class, 'members'])->name('teams.members'); Route::get('/{id}/challenges', [TeamController::class, 'challenge'])->name('users.challenge'); Route::get('/{id}/achievements', [TeamController::class, 'achievements'])->name('teams.achievements'); + Route::post('/{teamId}/delete/{userId}', [TeamController::class, 'delete'])->name('teams.delete'); + Route::post('/{teamId}/join/member/{userId}', [TeamController::class, 'joinMember'])->name('teams.delete'); }); Route::group(['prefix' => 'challenges'], static function () {