<?php

/**
 * 시스템/도메인 에러 메시지 (클라이언트 피드백용 고정 문자열)
 * - DB 데이터 아님
 * - 공통 핸들러/서비스에서 예외 메시지로 사용
 * - 예: throw new NotFoundHttpException(__('error.not_found'));
 */
return [

    // 4xx 공통
    'not_found' => '존재하지 않는 URI 또는 데이터입니다.',    // 404 일반
    'tenant_id' => '활성 테넌트가 없습니다.',               // 400 (Service::tenantId() 미설정)
    'unauthenticated' => '인증에 실패했습니다.',              // 401
    'forbidden' => '요청에 대한 권한이 없습니다.',            // 403
    'bad_request' => '잘못된 요청입니다.',                    // 400 (검증 외 일반 케이스)
    'token_expired' => '토큰이 만료되었습니다',              // 401 (토큰 만료)
    'refresh_token_required' => '리프레시 토큰이 필요합니다', // 422
    'refresh_token_invalid' => '리프레시 토큰 형식이 올바르지 않습니다', // 422
    'refresh_token_invalid_or_expired' => '리프레시 토큰이 유효하지 않거나 만료되었습니다', // 401

    // 검증/파라미터
    'validation_failed' => '요청 데이터 검증에 실패했습니다.', // 422
    'missing_parameter' => '필수 파라미터가 누락되었습니다.',  // 400
    'email_already_exists' => '이미 사용 중인 이메일 주소입니다.',  // 400
    'business_num_format' => '사업자등록번호 형식이 올바르지 않습니다 (000-00-00000)',
    'business_num_duplicate_active' => '이미 등록된 사업자등록번호입니다 (정식 서비스 업체)',
    'user_id_format' => '아이디는 영문, 숫자, _, - 만 사용할 수 있습니다',
    'phone_format' => '전화번호 형식이 올바르지 않습니다',

    // 리소스별 (선택: :resource 자리표시자 사용)
    'not_found_resource' => ':resource 정보를 찾을 수 없습니다.', // 예: __('error.not_found_resource', ['resource' => '제품'])

    // 비즈니스 규칙
    'duplicate' => '중복된 데이터가 존재합니다.',
    'conflict' => '요청이 현재 상태와 충돌합니다.',         // 409
    'state_invalid' => '현재 상태에서는 처리할 수 없습니다.',   // 409/400

    // 서버 오류
    'server_error' => '서버 처리 중 오류가 발생했습니다.',       // 5xx 일반

    // 견적 관련 에러
    'estimate' => [
        'cannot_delete_sent_or_approved' => '발송되었거나 승인된 견적은 삭제할 수 없습니다.',
        'invalid_status_transition' => '현재 상태에서는 변경할 수 없습니다.',
    ],

    // BOM 관련
    'bom' => [
        'line_not_found' => 'BOM 라인을 찾을 수 없습니다.',
        'invalid_child_items' => '존재하지 않는 품목이 포함되어 있습니다. (ID: :ids)',
    ],

    // BOM 템플릿 관련
    'bom_template' => [
        'not_found' => '적용 가능한 BOM 템플릿을 찾을 수 없습니다.',
    ],

    // 모델셋 관련
    'modelset' => [
        'has_dependencies' => '연관된 제품 또는 하위 카테고리가 있어 삭제할 수 없습니다.',
    ],

    // 설정 관리 관련
    'settings' => [
        'field_not_found' => '해당 필드 설정을 찾을 수 없습니다.',
        'option_group_not_found' => '해당 옵션 그룹을 찾을 수 없습니다.',
        'common_code_duplicate' => '중복된 공통 코드가 존재합니다.',
        'invalid_field_type' => '유효하지 않은 필드 타입입니다.',
    ],

    // 자재 관리 관련
    'materials' => [
        'not_found' => '자재 정보를 찾을 수 없습니다.',
        'duplicate_code' => '중복된 자재 코드입니다.',
        'in_use_cannot_delete' => '사용 중인 자재는 삭제할 수 없습니다.',
    ],

    // 입고 관리 관련
    'receiving' => [
        'not_found' => '입고 정보를 찾을 수 없습니다.',
        'cannot_edit' => '입고완료 상태에서는 수정할 수 없습니다.',
        'cannot_delete' => '입고완료 상태에서는 삭제할 수 없습니다.',
        'cannot_process' => '현재 상태에서는 입고처리할 수 없습니다.',
    ],

    // 재고 관리 관련
    'stock' => [
        'not_found' => '재고 정보를 찾을 수 없습니다.',
        'item_id_required' => '입고 정보에 품목 ID가 없습니다.',
        'insufficient_qty' => '재고 수량이 부족합니다.',
        'lot_not_available' => '가용 LOT가 없습니다.',
    ],

    // 출하 관리 관련
    'shipment' => [
        'not_found' => '출하 정보를 찾을 수 없습니다.',
        'cannot_edit' => '현재 상태에서는 수정할 수 없습니다.',
        'cannot_delete' => '현재 상태에서는 삭제할 수 없습니다.',
        'invalid_status' => '유효하지 않은 상태입니다.',
        'cannot_ship' => '출하 가능 상태가 아닙니다.',
    ],

    // 파일 관리 관련
    'file' => [
        'not_found' => '파일을 찾을 수 없습니다.',
        'upload_failed' => '파일 업로드에 실패했습니다.',
        'invalid_file_type' => '허용되지 않는 파일 형식입니다.',
        'file_too_large' => '파일 크기가 너무 큽니다.',
    ],

    // 파일 저장소 관련
    'file_not_found' => '파일을 찾을 수 없습니다.',
    'file_ids_required' => '파일 ID 목록은 필수입니다.',
    'file_ids_must_be_array' => '파일 ID는 배열이어야 합니다.',
    'folder_not_found' => '폴더를 찾을 수 없습니다.',
    'folder_id_required' => '폴더 ID는 필수입니다.',
    'storage_quota_exceeded' => '저장소 용량이 부족합니다.',
    'share_link_expired' => '공유 링크가 만료되었습니다.',
    'share_link_not_found' => '공유 링크를 찾을 수 없습니다.',

    // 폴더 관련
    'folder_key_required' => '폴더 키는 필수입니다.',
    'folder_key_duplicate' => '이미 존재하는 폴더 키입니다.',
    'folder_key_format' => '폴더 키는 영문 소문자, 숫자, 하이픈, 언더스코어만 사용할 수 있습니다.',
    'folder_name_required' => '폴더명은 필수입니다.',
    'folder_has_files' => '폴더에 파일이 있어 삭제할 수 없습니다.',
    'color_format' => '색상 코드는 #RRGGBB 형식이어야 합니다.',
    'expiry_hours_min' => '만료 시간은 최소 1시간입니다.',
    'expiry_hours_max' => '만료 시간은 최대 168시간(7일)입니다.',

    // 가격 관리 관련
    'price_not_found' => ':item_type ID :item_id 항목의 :date 기준 매출단가를 찾을 수 없습니다.',

    // 고객 그룹 관련
    'duplicate_code' => '중복된 그룹 코드입니다.',
    'has_clients' => '해당 고객 그룹에 속한 고객이 있어 삭제할 수 없습니다.',
    'code_exists_in_deleted' => '삭제된 데이터에 동일한 코드가 존재합니다. 먼저 해당 코드를 완전히 삭제하거나 다른 코드를 사용하세요.',

    // 품목 기준 관리 관련
    'page_not_found' => '페이지를 찾을 수 없습니다.',
    'section_not_found' => '섹션을 찾을 수 없습니다.',
    'field_not_found' => '필드를 찾을 수 없습니다.',
    'field_key_reserved' => '":field_key"은(는) 시스템 예약어로 사용할 수 없습니다.',
    'field_key_system_readonly' => '시스템 필드의 field_key는 변경할 수 없습니다.',
    'field_key_system_cannot_delete' => '시스템 필드는 삭제할 수 없습니다.',
    'bom_not_found' => 'BOM 항목을 찾을 수 없습니다.',
    'item_type_required' => '품목 유형(item_type)은 필수입니다.',
    'item_type_or_group_required' => '품목 유형(item_type) 또는 그룹 ID(group_id)는 필수입니다.',
    'invalid_item_type' => '유효하지 않은 품목 유형입니다.',
    'invalid_group_id' => '유효하지 않은 그룹 ID이거나 해당 그룹에 품목 유형이 없습니다.',
    'item_types_must_be_same_group' => '여러 품목 유형을 선택할 때는 같은 그룹에 속한 유형만 선택할 수 있습니다.',
    'invalid_source_table' => '품목 유형에 대한 소스 테이블이 설정되지 않았습니다.',

    // 품목 관리 관련
    'item' => [
        'not_found' => '품목 정보를 찾을 수 없습니다.',
        'already_deleted' => '이미 삭제된 품목입니다.',
        'in_use_as_bom_component' => '다른 제품의 BOM 구성품으로 사용 중이어서 삭제할 수 없습니다. (사용처: :count건)',
        'in_use' => '사용 중인 품목은 삭제할 수 없습니다. (사용처: :usage)',
        'batch_in_use' => '사용 중인 품목이 포함되어 있어 삭제할 수 없습니다. (품목: :codes, :count건)',
        'invalid_item_type' => '유효하지 않은 품목 유형입니다.',
        'duplicate_code' => '중복된 품목 코드입니다.',
        'self_reference_bom' => 'BOM에 자기 자신을 포함할 수 없습니다.',
    ],

    // 단가 관리 관련
    'pricing' => [
        'finalized_cannot_edit' => '확정된 단가는 수정할 수 없습니다.',
        'finalized_cannot_delete' => '확정된 단가는 삭제할 수 없습니다.',
        'cannot_finalize' => '확정할 수 없는 상태입니다.',
    ],

    // 잠금 관련
    'relationship_locked' => '잠금된 연결은 해제할 수 없습니다.',
    'has_locked_relationships' => '잠금된 연결이 포함되어 있어 처리할 수 없습니다.',
    'entity_protected_by_locked_relationship' => '잠금된 연결로 보호된 항목은 삭제할 수 없습니다.',
    'page_has_locked_children' => '잠금된 자식 연결이 있어 페이지를 삭제할 수 없습니다.',
    'section_has_locked_children' => '잠금된 자식 연결이 있어 섹션을 삭제할 수 없습니다.',

    // 견적 관련 (Quote)
    'quote_not_found' => '견적 정보를 찾을 수 없습니다.',
    'quote_not_editable' => '현재 상태에서는 견적을 수정할 수 없습니다.',
    'quote_not_deletable' => '현재 상태에서는 견적을 삭제할 수 없습니다.',
    'quote_not_finalizable' => '현재 상태에서는 견적을 확정할 수 없습니다.',
    'quote_finalize_missing_fields' => '견적확정을 위해 다음 항목을 입력해주세요: :fields',
    'quote_not_finalized' => '확정되지 않은 견적입니다.',
    'quote_already_converted' => '이미 수주 전환된 견적입니다.',
    'quote_not_convertible' => '현재 상태에서는 수주 전환할 수 없습니다.',
    'quote_email_not_found' => '수신자 이메일 정보가 없습니다.',
    'quote_phone_not_found' => '수신자 연락처 정보가 없습니다.',

    // 수식 평가 관련 (Formula)
    'formula_empty' => '수식이 비어있습니다.',
    'formula_parentheses_mismatch' => '괄호가 올바르게 닫히지 않았습니다.',
    'formula_unsupported_function' => '지원하지 않는 함수입니다: :function',
    'formula_calculation_error' => '계산 오류: :expression',

    // 휴가 관리 관련
    'leave' => [
        'not_found' => '휴가 정보를 찾을 수 없습니다.',
        'not_editable' => '대기 상태의 휴가만 수정할 수 있습니다.',
        'not_approvable' => '대기 상태의 휴가만 승인/반려할 수 있습니다.',
        'not_cancellable' => '승인된 휴가만 취소할 수 있습니다.',
        'insufficient_balance' => '잔여 휴가일수가 부족합니다.',
        'overlapping' => '해당 기간에 이미 신청된 휴가가 있습니다.',
        'balance_not_found' => '휴가 잔여일수 정보를 찾을 수 없습니다.',
    ],

    // 문서 관리 관련
    'document' => [
        'not_found' => '문서를 찾을 수 없습니다.',
        'template_not_found' => '해당 조건에 맞는 문서 양식을 찾을 수 없습니다.',
        'invalid_category' => '유효하지 않은 문서 분류입니다.',
        'not_editable' => '현재 상태에서는 문서를 수정할 수 없습니다.',
        'not_deletable' => '임시저장 상태의 문서만 삭제할 수 있습니다.',
        'not_submittable' => '결재 요청할 수 없는 상태입니다.',
        'not_approvable' => '결재 처리할 수 없는 상태입니다.',
        'not_cancellable' => '취소할 수 없는 상태입니다.',
        'not_your_turn' => '현재 결재 순서가 아닙니다.',
        'only_creator_can_cancel' => '작성자만 취소할 수 있습니다.',
        'approvers_required' => '결재선이 필요합니다.',
        'no_order_items' => '수주에 개소(품목)가 없습니다.',
        'already_created' => '이미 모든 개소에 대해 문서가 생성되었습니다.',
    ],

    // 전자결재 관련
    'approval' => [
        'not_found' => '결재 문서를 찾을 수 없습니다.',
        'form_not_found' => '결재 양식을 찾을 수 없습니다.',
        'form_required' => '결재 양식이 필요합니다.',
        'form_code_exists' => '중복된 양식 코드입니다.',
        'form_in_use' => '사용 중인 양식은 삭제할 수 없습니다.',
        'line_not_found' => '결재선을 찾을 수 없습니다.',
        'not_editable' => '임시저장 상태의 문서만 수정할 수 있습니다.',
        'not_deletable' => '임시저장 상태의 문서만 삭제할 수 있습니다.',
        'not_submittable' => '임시저장 상태의 문서만 상신할 수 있습니다.',
        'not_actionable' => '진행중인 문서에서만 결재 가능합니다.',
        'not_cancellable' => '진행중인 문서만 회수할 수 있습니다.',
        'not_your_turn' => '현재 결재 순서가 아닙니다.',
        'only_drafter_can_cancel' => '기안자만 회수할 수 있습니다.',
        'steps_required' => '결재선은 필수입니다.',
        'reject_comment_required' => '반려 사유는 필수입니다.',
        'not_referee' => '참조자가 아닙니다.',
    ],

    // 근무 설정 관련
    'work_setting' => [
        'invalid_work_type' => '유효하지 않은 근무 유형입니다.',
        'invalid_work_days' => '유효하지 않은 근무요일입니다.',
        'invalid_time_range' => '출근시간은 퇴근시간보다 이전이어야 합니다.',
        'break_time_invalid' => '휴게시간 설정이 올바르지 않습니다.',
    ],

    // 출퇴근 설정 관련
    'attendance_setting' => [
        'invalid_radius' => '허용 반경이 유효하지 않습니다.',
        'invalid_coordinates' => '좌표가 유효하지 않습니다.',
    ],

    // 현장 관리 관련
    'site' => [
        'not_found' => '현장 정보를 찾을 수 없습니다.',
        'name_required' => '현장명은 필수입니다.',
        'name_too_long' => '현장명은 100자를 초과할 수 없습니다.',
        'invalid_latitude' => '위도는 -90 ~ 90 사이여야 합니다.',
        'invalid_longitude' => '경도는 -180 ~ 180 사이여야 합니다.',
        'has_dependencies' => '연관된 데이터가 있어 삭제할 수 없습니다.',
    ],

    // 급여 관리 관련
    'payroll' => [
        'not_found' => '급여 정보를 찾을 수 없습니다.',
        'already_exists' => '해당 연월에 이미 급여가 등록되어 있습니다.',
        'not_editable' => '작성중 상태의 급여만 수정할 수 있습니다.',
        'not_deletable' => '작성중 상태의 급여만 삭제할 수 있습니다.',
        'not_confirmable' => '작성중 상태의 급여만 확정할 수 있습니다.',
        'not_payable' => '확정된 급여만 지급 처리할 수 있습니다.',
        'invalid_withdrawal' => '유효하지 않은 출금 내역입니다.',
        'user_not_found' => '직원 정보를 찾을 수 없습니다.',
        'no_base_salary' => '기본급이 설정되지 않았습니다.',
    ],

    // 세금계산서 관련
    'tax_invoice' => [
        'not_found' => '세금계산서 정보를 찾을 수 없습니다.',
        'cannot_edit' => '발행된 세금계산서는 수정할 수 없습니다.',
        'cannot_delete' => '발행된 세금계산서는 삭제할 수 없습니다.',
        'already_issued' => '이미 발행된 세금계산서입니다.',
    ],

    // 매출 관련
    'sale' => [
        'not_found' => '매출 정보를 찾을 수 없습니다.',
        'cannot_edit' => '확정된 매출은 수정할 수 없습니다.',
        'cannot_delete' => '확정된 매출은 삭제할 수 없습니다.',
        'cannot_confirm' => '이미 확정된 매출입니다.',
        'statement_requires_confirmed' => '확정된 매출만 거래명세서를 발행할 수 있습니다.',
        'statement_already_issued' => '이미 발행된 거래명세서입니다.',
        'recipient_email_required' => '수신자 이메일이 필요합니다.',
    ],

    // 대시보드 관련
    'dashboard' => [
        'invalid_period' => '기간은 week, month, quarter 중 하나여야 합니다.',
    ],

    // AI 리포트 관련
    'ai_report' => [
        'api_key_not_configured' => 'AI API 키가 설정되지 않았습니다.',
        'api_call_failed' => 'AI API 호출에 실패했습니다.',
        'connection_failed' => 'AI 서버 연결에 실패했습니다.',
    ],

    // 가지급금 관리 관련
    'loan' => [
        'not_found' => '가지급금 정보를 찾을 수 없습니다.',
        'not_editable' => '정산 완료된 가지급금은 수정할 수 없습니다.',
        'not_deletable' => '정산 완료된 가지급금은 삭제할 수 없습니다.',
        'not_settleable' => '이미 정산 완료된 가지급금입니다.',
        'settlement_exceeds' => '정산금액이 가지급금액을 초과할 수 없습니다.',
        'invalid_withdrawal' => '유효하지 않은 출금 내역입니다.',
        'user_not_found' => '직원 정보를 찾을 수 없습니다.',
    ],

    // 내부 서버간 통신 관련
    'internal' => [
        'secret_not_configured' => '내부 교환 비밀키가 설정되지 않았습니다.',
        'signature_expired' => '서명이 만료되었습니다.',
        'invalid_exp' => '만료 시간이 유효하지 않습니다.',
        'invalid_signature' => '서명이 유효하지 않습니다.',
        'token_issue_failed' => '토큰 발급에 실패했습니다.',
    ],

    // 사용자 초대 관련
    'invitation' => [
        'already_member' => '이미 테넌트에 등록된 사용자입니다.',
        'already_pending' => '대기 중인 초대가 이미 존재합니다.',
        'not_found' => '초대를 찾을 수 없습니다.',
        'expired' => '만료된 초대입니다.',
        'invalid_status' => '유효하지 않은 초대 상태입니다.',
        'cannot_cancel' => '취소할 수 없는 초대입니다.',
        'cannot_resend' => '재발송할 수 없는 초대입니다.',
    ],

    // 알림 설정 관련
    'notification_setting' => [
        'not_found' => '알림 설정을 찾을 수 없습니다.',
        'invalid_type' => '유효하지 않은 알림 유형입니다.',
        'invalid_channel' => '유효하지 않은 알림 채널입니다.',
    ],

    // 매출 관련
    'sale' => [
        'cannot_edit' => '확정된 매출은 수정할 수 없습니다.',
        'cannot_delete' => '확정된 매출은 삭제할 수 없습니다.',
        'cannot_confirm' => '확정할 수 없는 상태입니다.',
        'statement_requires_confirmed' => '확정된 매출만 거래명세서를 발행할 수 있습니다.',
        'recipient_email_required' => '수신자 이메일이 필요합니다.',
    ],

    // 어음 관리 관련
    'bill' => [
        'duplicate_number' => '이미 존재하는 어음번호입니다.',
    ],

    // 계정 관리 관련
    'account' => [
        'invalid_password' => '비밀번호가 일치하지 않습니다.',
        'tenant_membership_not_found' => '테넌트 멤버십 정보를 찾을 수 없습니다.',
        'already_withdrawn' => '이미 탈퇴한 계정입니다.',
        'cannot_withdraw' => '탈퇴할 수 없는 상태입니다.',
    ],

    // 구독 관련
    'subscription' => [
        'already_active' => '이미 활성화된 구독이 있습니다.',
        'not_cancellable' => '취소할 수 없는 상태입니다.',
        'not_renewable' => '갱신할 수 없는 상태입니다.',
        'not_suspendable' => '일시정지할 수 없는 상태입니다.',
        'not_resumable' => '재개할 수 없는 상태입니다.',
    ],

    // 데이터 내보내기 관련
    'export' => [
        'already_in_progress' => '이미 진행 중인 내보내기가 있습니다.',
        'not_found' => '내보내기 요청을 찾을 수 없습니다.',
        'failed' => '내보내기 처리 중 오류가 발생했습니다.',
    ],

    // 회사 추가 신청 관련
    'company' => [
        'not_found' => '회사 추가 신청을 찾을 수 없습니다.',
        'already_pending' => '이미 대기 중인 동일 사업자등록번호 신청이 있습니다.',
        'already_processed' => '이미 처리된 신청입니다.',
        'tenant_creation_failed' => '테넌트 생성에 실패했습니다.',
        'invalid_business_number' => '유효하지 않은 사업자등록번호입니다.',
    ],

    // FCM 푸시 알림 관련
    'fcm' => [
        'no_tokens' => '발송 대상 토큰이 없습니다.',
        'send_failed' => 'FCM 발송 중 오류가 발생했습니다.',
        'token_not_found' => 'FCM 토큰을 찾을 수 없습니다.',
    ],

    // 수주 관련
    'order' => [
        'cannot_update_completed' => '완료 또는 취소된 수주는 수정할 수 없습니다.',
        'cannot_delete_in_progress' => '진행 중이거나 완료된 수주는 삭제할 수 없습니다.',
        'cannot_delete_has_work_orders' => '작업지시가 존재하는 수주는 삭제할 수 없습니다. 작업지시를 먼저 삭제해주세요.',
        'cannot_delete_has_shipments' => '출하 정보가 존재하는 수주는 삭제할 수 없습니다. 출하를 먼저 삭제해주세요.',
        'invalid_status_transition' => '유효하지 않은 상태 전환입니다.',
        'already_created_from_quote' => '이미 해당 견적에서 수주가 생성되었습니다.',
        'must_be_confirmed_for_production' => '확정 상태의 수주만 생산지시를 생성할 수 있습니다.',
        'production_order_already_exists' => '이미 생산지시가 존재합니다.',
        'cannot_revert_completed' => '완료된 수주의 생산지시는 되돌릴 수 없습니다.',
        'cannot_revert_not_confirmed' => '수주확정 상태에서만 되돌리기가 가능합니다.',
        'cannot_revert_work_order_completed' => '완료 또는 출하된 작업지시는 취소할 수 없습니다.',
        'cancel_reason_required' => '취소 사유를 입력해주세요.',
        'cannot_sync_after_production' => '생산지시 이후의 수주는 견적에서 자동 동기화할 수 없습니다.',
    ],

    // 견적 관련
    'quote' => [
        'not_found' => '견적을 찾을 수 없습니다.',
    ],

    // 작업지시 관련
    'work_order' => [
        'not_found' => '작업지시를 찾을 수 없습니다.',
        'cannot_delete_in_progress' => '진행중이거나 완료된 작업지시는 삭제할 수 없습니다.',
        'not_bending_process' => '벤딩 공정이 아닙니다.',
        'invalid_transition' => "상태를 ':from'에서 ':to'(으)로 변경할 수 없습니다. 허용된 상태: :allowed",
        'assignee_required_for_linked' => '수주 연동 등록 시 담당자를 선택해주세요.',
        'no_inspection_template' => '검사용 문서 양식이 설정되지 않았습니다.',
        'no_work_log_template' => '작업일지 양식이 설정되지 않았습니다.',
    ],

    // 검사 관련
    'inspection' => [
        'not_found' => '검사를 찾을 수 없습니다.',
        'cannot_delete_completed' => '완료된 검사는 삭제할 수 없습니다.',
        'already_completed' => '이미 완료된 검사입니다.',
    ],

    // 입찰 관련
    'bidding' => [
        'not_found' => '입찰을 찾을 수 없습니다.',
        'already_converted' => '이미 입찰로 변환된 견적입니다.',
        'already_registered' => '이미 입찰이 등록된 견적입니다. (입찰번호: :code)',
        'cannot_delete' => '해당 입찰은 삭제할 수 없습니다.',
        'invalid_status' => '유효하지 않은 입찰 상태입니다.',
    ],

    // 전자계약 (E-Sign)
    'esign' => [
        'invalid_token' => '유효하지 않은 서명 링크입니다.',
        'token_expired' => '서명 링크가 만료되었습니다.',
        'contract_not_signable' => '현재 서명할 수 없는 계약입니다.',
        'already_completed' => '이미 완료된 계약입니다.',
        'already_cancelled' => '이미 취소된 계약입니다.',
        'already_signed' => '이미 서명이 완료되었습니다.',
        'invalid_status_for_send' => '초안 상태의 계약만 발송할 수 있습니다.',
        'no_sign_fields' => '서명 필드가 설정되지 않았습니다. 서명 위치를 먼저 설정해 주세요.',
        'cannot_remind' => '현재 상태에서는 리마인더를 발송할 수 없습니다.',
        'fields_only_in_draft' => '초안 상태에서만 서명 위치를 설정할 수 있습니다.',
        'not_verified' => '본인인증을 먼저 완료해 주세요.',
        'otp_max_attempts' => 'OTP 인증 시도 횟수를 초과했습니다. 새로운 인증 코드를 요청해 주세요.',
        'otp_not_sent' => '인증 코드가 발송되지 않았습니다. 먼저 인증 코드를 요청해 주세요.',
        'otp_expired' => '인증 코드가 만료되었습니다. 새로운 인증 코드를 요청해 주세요.',
        'otp_invalid' => '인증 코드가 올바르지 않습니다.',
        'file_not_found' => '계약 문서 파일을 찾을 수 없습니다.',
    ],

    // 계약 관련
    'contract' => [
        'not_found' => '계약을 찾을 수 없습니다.',
        'already_registered' => '이미 계약이 등록된 입찰입니다. (계약번호: :code)',
        'bidding_not_awarded' => '낙찰 상태인 입찰만 계약으로 전환할 수 있습니다.',
        'cannot_delete' => '해당 계약은 삭제할 수 없습니다.',
        'invalid_status' => '유효하지 않은 계약 상태입니다.',
    ],

    // 일반전표입력
    'journal_entry' => [
        'debit_credit_mismatch' => '차변 합계와 대변 합계가 일치해야 합니다.',
    ],

    // 계정과목
    'account_subject' => [
        'duplicate_code' => '이미 존재하는 계정과목 코드입니다.',
        'in_use' => '전표에서 사용 중인 계정과목은 삭제할 수 없습니다.',
    ],
];
