# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
# License: MIT. See LICENSE

import frappe


def validate_route_conflict(doctype, name):
	"""
	Raises exception if name clashes with routes from other documents for /app routing
	"""

	all_names = []
	for _doctype in ["Page", "Workspace", "DocType"]:
		try:
			all_names.extend(
				[
					slug(d) for d in frappe.get_all(_doctype, pluck="name") if (doctype != _doctype and d != name)
				]
			)
		except frappe.db.TableMissingError:
			pass

	if slug(name) in all_names:
		frappe.msgprint(frappe._("Name already taken, please set a new name"))
		raise frappe.NameError


def slug(name):
	return name.lower().replace(" ", "-")
