|string> */ public function rules(): array { if ($this->isMethod('get')) { return [ 'date' => ['sometimes', 'date_format:Y-m-d'], 'per_page' => ['sometimes', 'integer', 'min:1', 'max:100'], ]; } return [ 'external_id' => [ 'nullable', 'string', 'max:255', Rule::unique((new WorkoutSessions)->getTable(), 'external_id') ->where('source', $this->string('source', WorkoutSource::MANUAL->value)->toString()), ], 'source' => ['sometimes', Rule::enum(WorkoutSource::class)], 'type' => ['required', 'string', 'max:255'], 'title' => ['required', 'string', 'max:255'], 'duration_seconds' => ['required', 'integer', 'min:1'], 'calories_burned' => ['required', 'integer', 'min:0'], 'distance_meters' => ['required', 'integer', 'min:0'], 'started_at' => ['nullable', 'date'], ]; } }