'The requested URI or data was not found.', // 404 'tenant_id' => 'No active tenant is set.', // 400 (Service::tenantId() missing) 'unauthenticated' => 'Authentication failed.', // 401 'forbidden' => 'You do not have permission for this request.', // 403 'bad_request' => 'Invalid request.', // 400 // Validation / Parameters 'validation_failed' => 'Request data validation failed.', // 422 'missing_parameter' => 'A required parameter is missing.', // 400 // Resource-specific (optional, with :resource placeholder) 'not_found_resource' => ':resource could not be found.', // 404 // Business rules 'duplicate' => 'Duplicate data exists.', 'conflict' => 'The request conflicts with the current state.', // 409 'state_invalid' => 'The current state does not allow this operation.', // 400/409 // Server errors 'server_error' => 'An internal server error occurred.', // 5xx // Estimate related errors 'estimate' => [ 'cannot_delete_sent_or_approved' => 'Cannot delete estimates that have been sent or approved.', 'invalid_status_transition' => 'Cannot change status from the current state.', ], // BOM related 'bom' => [ 'line_not_found' => 'BOM line not found.', 'invalid_child_items' => 'Invalid child item IDs: :ids', ], // BOM template related 'bom_template' => [ 'not_found' => 'No applicable BOM template found.', ], // Model set related 'modelset' => [ 'has_dependencies' => 'Cannot delete due to associated products or subcategories.', ], // Settings management related 'settings' => [ 'field_not_found' => 'Field setting not found.', 'option_group_not_found' => 'Option group not found.', 'common_code_duplicate' => 'Duplicate common code exists.', 'invalid_field_type' => 'Invalid field type.', ], // Materials management related 'materials' => [ 'not_found' => 'Material information not found.', 'duplicate_code' => 'Duplicate material code.', 'in_use_cannot_delete' => 'Cannot delete material that is currently in use.', ], // File management related 'file' => [ 'not_found' => 'File not found.', 'upload_failed' => 'File upload failed.', 'invalid_file_type' => 'Invalid file type.', 'file_too_large' => 'File size is too large.', ], // Client group related 'duplicate_code' => 'Duplicate group code.', 'has_clients' => 'Cannot delete the client group because it has associated clients.', 'code_exists_in_deleted' => 'The same code exists in deleted data. Please permanently delete that code first or use a different code.', // Item type validation 'item_type_required' => 'Item type (item_type) is required.', 'item_type_or_group_required' => 'Item type (item_type) or group ID (group_id) is required.', 'invalid_item_type' => 'Invalid item type.', 'invalid_group_id' => 'Invalid group ID or no item types exist in the specified group.', 'item_types_must_be_same_group' => 'When selecting multiple item types, all types must belong to the same group.', 'invalid_source_table' => 'Source table is not configured for this item type.', // Item management related 'item' => [ 'not_found' => 'Item not found.', 'already_deleted' => 'Item has already been deleted.', 'in_use_as_bom_component' => 'Cannot delete item as it is used as a BOM component. (Usage: :count items)', 'in_use' => 'Cannot delete item that is currently in use. (Usage: :usage)', 'batch_in_use' => 'Cannot delete items because some are in use. (Items: :codes, :count items)', 'invalid_item_type' => 'Invalid item type.', 'duplicate_code' => 'Duplicate item code.', ], // Shipment management related 'shipment' => [ 'not_found' => 'Shipment not found.', 'cannot_edit' => 'Cannot edit in the current status.', 'cannot_delete' => 'Cannot delete in the current status.', 'invalid_status' => 'Invalid status.', 'cannot_ship' => 'Not in a shippable state.', ], // Order related 'order' => [ 'cannot_update_completed' => 'Cannot update completed or cancelled order.', 'cannot_delete_in_progress' => 'Cannot delete in progress or completed order.', 'invalid_status_transition' => 'Invalid status transition.', ], // Work order related 'work_order' => [ 'not_found' => 'Work order not found.', 'cannot_delete_in_progress' => 'Cannot delete in progress or completed work order.', 'not_bending_process' => 'This is not a bending process.', 'invalid_transition' => "Cannot transition status from ':from' to ':to'. Allowed statuses: :allowed", ], ];