*/ public function rules(): array { $repository = $this->route('repository'); $creating = ! $repository instanceof Repository; $sometimes = $creating ? 'required' : 'sometimes'; $provider = $this->input('provider', $repository?->provider?->value); return [ 'provider' => [$sometimes, Rule::enum(GitProvider::class)], 'full_name' => [ $sometimes, 'string', 'max:255', 'regex:/^[\w.-]+\/[\w.-]+$|^[\w.-]+$/', Rule::unique('repositories', 'full_name') ->ignore($repository?->id) ->where('provider', $provider), ], 'project_id' => ['sometimes', 'nullable', 'integer', Rule::exists('projects', 'id')->whereNull('deleted_at')], 'is_primary' => ['sometimes', 'boolean'], 'show_publicly' => ['sometimes', 'boolean'], ]; } }