<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class InvSettingRequest extends FormRequest
{
    /**
     * 認可判定
     */
    public function authorize(): bool
    {
        return true;
    }

    /**
     * バリデーションルール
     */
    public function rules(): array
    {
        return [
            'management_id' => 'required|integer|exists:management,management_id',

            't_number' => 'required|string|regex:/^T\d{13}$/',
            't_name'   => 'required|string|max:40',

            'zip1' => 'required|digits:3',
            'zip2' => 'required|digits:4',

            'adrs' => 'required|string|max:100',
            'bldg' => 'nullable|string',

            'tel1' => 'nullable|digits_between:2,4',
            'tel2' => 'required_with:tel1|digits_between:2,4',
            'tel3' => 'required_with:tel1|digits_between:3,4',

            'fax1' => 'nullable|digits_between:2,4',
            'fax2' => 'required_with:fax1|digits_between:2,4',
            'fax3' => 'required_with:fax1|digits_between:3,4',

            'company_image_path' => 'nullable|string|max:255',
        ];
    }

    /**
     * エラーメッセージ
     */
    public function messages(): array
    {
        return [
            'management_id.required' => '運営元を選択してください。',

            't_number.required' => '適格請求書発行事業者番号を入力してください。',
            't_number.regex'   => '指定フォーマット（T＋13桁）に一致しません。',

            't_name.required' => '適格事業者名を入力してください。',
            't_name.max'      => '適格事業者名は40文字以内で入力してください。',

            'zip1.required' => '郵便番号（前半）を入力してください。',
            'zip1.digits'   => '郵便番号（前半）は半角数字で3桁を入力してください。',
            'zip2.required' => '郵便番号（後半）を入力してください。',
            'zip2.digits'   => '郵便番号（後半）は半角数字で4桁を入力してください。',

            'adrs.required' => '表示住所を入力してください。',
            'adrs.max'      => '表示住所は100文字以内で入力してください。',

            'tel1.digits_between' => '電話番号1は半角数字で2桁から4桁を入力してください。',
            'tel2.required_with' => '電話番号2を入力してください。',
            'tel2.digits_between'=> '電話番号2は半角数字で2桁から4桁を入力してください。',
            'tel3.required_with' => '電話番号3を入力してください。',
            'tel3.digits_between'=> '電話番号3は半角数字で3桁から4桁を入力してください。',

            'fax1.digits_between' => 'FAX番号1は半角数字で2桁から4桁を入力してください。',
            'fax2.required_with' => 'FAX番号2を入力してください。',
            'fax2.digits_between'=> 'FAX番号2は半角数字で2桁から4桁を入力してください。',
            'fax3.required_with' => 'FAX番号3を入力してください。',
            'fax3.digits_between'=> 'FAX番号3は半角数字で3桁から4桁を入力してください。',
        ];
    }
}
