first commit
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled

This commit is contained in:
brusnitsyn
2026-04-06 00:06:00 +09:00
commit fb2e6c58e3
409 changed files with 42953 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Http\Requests\Teams;
use App\Rules\ValidTeamInvitation;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class AcceptTeamInvitationRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'invitation' => ['required', new ValidTeamInvitation($this->user())],
];
}
/**
* Get the validation data from the request.
*/
public function validationData(): array
{
return array_merge(parent::validationData(), [
'invitation' => $this->route('invitation'),
]);
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Http\Requests\Teams;
use App\Enums\TeamRole;
use App\Rules\UniqueTeamInvitation;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class CreateTeamInvitationRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'email' => ['required', 'string', 'email', 'max:255', new UniqueTeamInvitation($this->route('team'))],
'role' => ['required', 'string', Rule::enum(TeamRole::class)],
];
}
}

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Http\Requests\Teams;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Gate;
use Illuminate\Validation\Validator;
class DeleteTeamRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return Gate::allows('delete', $this->route('team'));
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'name' => ['required', 'string'],
];
}
/**
* Configure the validator instance.
*/
public function after(): array
{
return [
function (Validator $validator) {
$team = $this->route('team');
if ($this->input('name') !== $team->name) {
$validator->errors()->add('name', __('The team name does not match.'));
}
},
];
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests\Teams;
use App\Rules\TeamName;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class SaveTeamRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'name' => ['required', 'string', 'max:255', new TeamName],
];
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests\Teams;
use App\Enums\TeamRole;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class UpdateTeamMemberRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'role' => ['required', 'string', Rule::in(array_column(TeamRole::assignable(), 'value'))],
];
}
}