<?php

/**
 * Laravel Validation 한국어 번역
 * - validation 에러 메시지 및 필드명 정의
 */
return [

    /*
    |--------------------------------------------------------------------------
    | Validation Language Lines
    |--------------------------------------------------------------------------
    |
    | Laravel 기본 validation 규칙별 메시지 정의
    |
    */

    'accepted' => ':attribute을(를) 동의해야 합니다.',
    'active_url' => ':attribute은(는) 유효한 URL이 아닙니다.',
    'after' => ':attribute은(는) :date 이후 날짜여야 합니다.',
    'after_or_equal' => ':attribute은(는) :date 이후 날짜이거나 같은 날짜여야 합니다.',
    'alpha' => ':attribute은(는) 문자만 포함할 수 있습니다.',
    'alpha_dash' => ':attribute은(는) 문자, 숫자, 대시(-), 밑줄(_)만 포함할 수 있습니다.',
    'alpha_num' => ':attribute은(는) 문자와 숫자만 포함할 수 있습니다.',
    'array' => ':attribute은(는) 배열이어야 합니다.',
    'before' => ':attribute은(는) :date 이전 날짜여야 합니다.',
    'before_or_equal' => ':attribute은(는) :date 이전 날짜이거나 같은 날짜여야 합니다.',
    'between' => [
        'numeric' => ':attribute은(는) :min에서 :max 사이여야 합니다.',
        'file' => ':attribute은(는) :min에서 :max 킬로바이트 사이여야 합니다.',
        'string' => ':attribute은(는) :min에서 :max 자 사이여야 합니다.',
        'array' => ':attribute은(는) :min에서 :max 개 항목이 있어야 합니다.',
    ],
    'boolean' => ':attribute은(는) true 또는 false이어야 합니다.',
    'confirmed' => ':attribute 확인이 일치하지 않습니다.',
    'date' => ':attribute은(는) 유효한 날짜가 아닙니다.',
    'date_equals' => ':attribute은(는) :date와 같은 날짜여야 합니다.',
    'date_format' => ':attribute은(는) :format 형식과 일치하지 않습니다.',
    'different' => ':attribute와(과) :other는 달라야 합니다.',
    'digits' => ':attribute은(는) :digits 자리 숫자여야 합니다.',
    'digits_between' => ':attribute은(는) :min에서 :max 자리 사이여야 합니다.',
    'dimensions' => ':attribute은(는) 유효하지 않은 이미지 크기입니다.',
    'distinct' => ':attribute 필드에 중복된 값이 있습니다.',
    'email' => ':attribute은(는) 유효한 이메일 주소여야 합니다.',
    'exists' => '선택된 :attribute은(는) 유효하지 않습니다.',
    'file' => ':attribute은(는) 파일이어야 합니다.',
    'filled' => ':attribute 필드는 값이 있어야 합니다.',
    'gt' => [
        'numeric' => ':attribute은(는) :value보다 커야 합니다.',
        'file' => ':attribute은(는) :value 킬로바이트보다 커야 합니다.',
        'string' => ':attribute은(는) :value 자보다 길어야 합니다.',
        'array' => ':attribute은(는) :value 개 항목보다 많아야 합니다.',
    ],
    'gte' => [
        'numeric' => ':attribute은(는) :value보다 크거나 같아야 합니다.',
        'file' => ':attribute은(는) :value 킬로바이트보다 크거나 같아야 합니다.',
        'string' => ':attribute은(는) :value 자보다 길거나 같아야 합니다.',
        'array' => ':attribute은(는) :value 개 항목 이상이어야 합니다.',
    ],
    'image' => ':attribute은(는) 이미지여야 합니다.',
    'in' => '선택된 :attribute은(는) 유효하지 않습니다.',
    'in_array' => ':attribute 필드가 :other에 존재하지 않습니다.',
    'integer' => ':attribute은(는) 정수여야 합니다.',
    'ip' => ':attribute은(는) 유효한 IP 주소여야 합니다.',
    'ipv4' => ':attribute은(는) 유효한 IPv4 주소여야 합니다.',
    'ipv6' => ':attribute은(는) 유효한 IPv6 주소여야 합니다.',
    'json' => ':attribute은(는) 유효한 JSON 문자열이어야 합니다.',
    'lt' => [
        'numeric' => ':attribute은(는) :value보다 작아야 합니다.',
        'file' => ':attribute은(는) :value 킬로바이트보다 작아야 합니다.',
        'string' => ':attribute은(는) :value 자보다 짧아야 합니다.',
        'array' => ':attribute은(는) :value 개 항목보다 적어야 합니다.',
    ],
    'lte' => [
        'numeric' => ':attribute은(는) :value보다 작거나 같아야 합니다.',
        'file' => ':attribute은(는) :value 킬로바이트보다 작거나 같아야 합니다.',
        'string' => ':attribute은(는) :value 자보다 짧거나 같아야 합니다.',
        'array' => ':attribute은(는) :value 개 항목 이하여야 합니다.',
    ],
    'max' => [
        'numeric' => ':attribute은(는) :max보다 클 수 없습니다.',
        'file' => ':attribute은(는) :max 킬로바이트보다 클 수 없습니다.',
        'string' => ':attribute은(는) :max 자보다 길 수 없습니다.',
        'array' => ':attribute은(는) :max 개 항목보다 많을 수 없습니다.',
    ],
    'mimes' => ':attribute은(는) :values 유형의 파일이어야 합니다.',
    'mimetypes' => ':attribute은(는) :values 유형의 파일이어야 합니다.',
    'min' => [
        'numeric' => ':attribute은(는) 최소 :min이어야 합니다.',
        'file' => ':attribute은(는) 최소 :min 킬로바이트여야 합니다.',
        'string' => ':attribute은(는) 최소 :min 자여야 합니다.',
        'array' => ':attribute은(는) 최소 :min 개 항목이 있어야 합니다.',
    ],
    'not_in' => '선택된 :attribute은(는) 유효하지 않습니다.',
    'not_regex' => ':attribute 형식이 유효하지 않습니다.',
    'numeric' => ':attribute은(는) 숫자여야 합니다.',
    'password' => '비밀번호가 올바르지 않습니다.',
    'present' => ':attribute 필드가 있어야 합니다.',
    'regex' => ':attribute 형식이 유효하지 않습니다.',
    'required' => ':attribute은(는) 필수 항목입니다.',
    'required_if' => ':other이(가) :value일 때 :attribute은(는) 필수입니다.',
    'required_unless' => ':other이(가) :values에 없을 때 :attribute은(는) 필수입니다.',
    'required_with' => ':values이(가) 있을 때 :attribute은(는) 필수입니다.',
    'required_with_all' => ':values이(가) 모두 있을 때 :attribute은(는) 필수입니다.',
    'required_without' => ':values이(가) 없을 때 :attribute은(는) 필수입니다.',
    'required_without_all' => ':values이(가) 모두 없을 때 :attribute은(는) 필수입니다.',
    'same' => ':attribute와(과) :other는 일치해야 합니다.',
    'size' => [
        'numeric' => ':attribute은(는) :size여야 합니다.',
        'file' => ':attribute은(는) :size 킬로바이트여야 합니다.',
        'string' => ':attribute은(는) :size 자여야 합니다.',
        'array' => ':attribute은(는) :size 개 항목을 포함해야 합니다.',
    ],
    'starts_with' => ':attribute은(는) :values 중 하나로 시작해야 합니다.',
    'string' => ':attribute은(는) 문자열이어야 합니다.',
    'timezone' => ':attribute은(는) 유효한 시간대여야 합니다.',
    'unique' => ':attribute은(는) 이미 사용 중입니다.',
    'uploaded' => ':attribute 업로드에 실패했습니다.',
    'url' => ':attribute 형식이 유효하지 않습니다.',
    'uuid' => ':attribute은(는) 유효한 UUID여야 합니다.',

    /*
    |--------------------------------------------------------------------------
    | Custom Validation Language Lines
    |--------------------------------------------------------------------------
    |
    | 특정 필드의 특정 규칙에 대한 커스텀 메시지
    |
    */

    'custom' => [
        'attribute-name' => [
            'rule-name' => 'custom-message',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Custom Validation Attributes
    |--------------------------------------------------------------------------
    |
    | 필드별 attribute 이름 정의
    |
    */

    'attributes' => [
        // 사용자 관련
        'user_id' => '사용자 아이디',
        'name' => '이름',
        'email' => '이메일',
        'phone' => '전화번호',
        'password' => '비밀번호',
        'password_confirmation' => '비밀번호 확인',
        'position' => '직책',

        // 회사/테넌트 관련
        'company_name' => '회사명',
        'business_num' => '사업자등록번호',
        'company_scale' => '회사 규모',
        'industry' => '업종',

        // 제품 관련
        'product_name' => '제품명',
        'category_id' => '카테고리',
        'code' => '코드',
        'description' => '설명',
        'unit' => '단위',
        'price' => '가격',

        // 자재 관련
        'material_name' => '자재명',
        'material_code' => '자재 코드',
        'specification' => '규격',

        // 거래처 관련
        'client_code' => '거래처 코드',
        'client_name' => '거래처명',
        'contact_person' => '담당자',

        // 공통
        'is_active' => '활성 상태',
        'sort_order' => '정렬 순서',
        'parent_id' => '상위 항목',
        'tenant_id' => '테넌트',

        // 급여 관련
        'pay_year' => '지급 연도',
        'pay_month' => '지급 월',
        'base_salary' => '기본급',
        'overtime_pay' => '연장근무수당',
        'bonus' => '상여금',
        'allowances' => '수당 목록',
        'income_tax' => '소득세',
        'resident_tax' => '주민세',
        'health_insurance' => '건강보험료',
        'pension' => '국민연금',
        'employment_insurance' => '고용보험료',
        'deductions' => '공제 목록',
        'note' => '비고',
        'withdrawal_id' => '출금 내역',
        'user_ids' => '직원 목록',

        // 급여 설정 관련
        'income_tax_rate' => '소득세율',
        'resident_tax_rate' => '주민세율',
        'health_insurance_rate' => '건강보험요율',
        'long_term_care_rate' => '장기요양보험요율',
        'pension_rate' => '국민연금요율',
        'employment_insurance_rate' => '고용보험요율',
        'pension_max_salary' => '국민연금 상한기준',
        'pension_min_salary' => '국민연금 하한기준',
        'pay_day' => '급여 지급일',
        'auto_calculate' => '자동계산 여부',
        'allowance_types' => '수당 유형',
        'deduction_types' => '공제 유형',

        // 가지급금 관련
        'loan_date' => '지급일',
        'amount' => '금액',
        'purpose' => '사용목적',
        'settlement_date' => '정산일',
        'settlement_amount' => '정산금액',
        'year' => '연도',
    ],

];
