<?php

namespace App\Http\Requests\Athlete;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;

class UpdateAthleteProfileRequest extends FormRequest
{
    public function authorize(): bool
    {
        return $this->user()->isAthlete();
    }

    public function rules(): array
    {
        $athleteId = $this->user()->athlete?->id;

        return [
            'national_code' => ['nullable', 'digits:10', Rule::unique('athletes', 'national_code')->ignore($athleteId)],
            'height_cm' => ['required', 'integer', 'min:100', 'max:250'],
            'weight_kg' => ['required', 'numeric', 'min:20', 'max:300'],
        ];
    }

    public function messages(): array
    {
        return [
            'national_code.digits' => 'کد ملی باید ۱۰ رقم باشد.',
            'national_code.unique' => 'این کد ملی قبلاً ثبت شده است.',
        ];
    }
}
