set(DASHBOARDROUTES_SOURCES
	"APIRoutes.cpp"
	"StaticRoutes.cpp"
	"DashboardRoutes.cpp"
	"WSRoutes.cpp"
	"AuthRoutes.cpp"
	"ApiKeyRoutes.cpp"
	"GrantRoutes.cpp"
	"GuildRoutes.cpp"
	"RouteUtils.cpp"
	"PlayerActions.cpp"
	"AccountRoutes.cpp"
	"ClientAssets.cpp"
	"MaintenanceRoutes.cpp"
	"ReportRoutes.cpp"
	"EconomyPlaces.cpp"
	"SecurityRoutes.cpp"
	"WebhookRoutes.cpp"
	"EconomyJobs.cpp"
	"LiveWorld.cpp"
	"LiveUpdateRoutes.cpp"
	"SettingsRoutes.cpp"
	"Background.cpp"
	"Scheduler.cpp"
	"SettingsCatalog.cpp"
	"BackupRoutes.cpp"
	"BackupFiles.cpp"
	"ReportViews.cpp"
	"CharacterTools.cpp"
	"CharacterRestore.cpp"
	"MissionTools.cpp"
	"CharacterProgress.cpp"
	"ServerRoutes.cpp"
	"LogBundle.cpp"
	"Traffic.cpp"
	"TrafficHistory.cpp"
	"LeaderboardRoutes.cpp"
	"VanityRoutes.cpp"
	"ChatRoutes.cpp"
	"Strikes.cpp"
	"Inspector.cpp"
	"CDClientBrowser.cpp"
	"SettingsHistory.cpp"
	"Announcements.cpp"
	"EventsCalendar.cpp"
	"LiveEventRoutes.cpp"
	"ChallengeRoutes.cpp"
	"InstanceLoad.cpp"
	"WorldView.cpp"
	"Scenery.cpp"
	"WorkerPool.cpp"
	"Workers.cpp"
	"AccountModeration.cpp"
	"ModerationTools.cpp"
	"ModeratorHelper.cpp"
	"../ai/ClaudeClient.cpp"
	"../ai/ModeratorPrompt.cpp"
	"PublicRoutes.cpp"
	"Showcase.cpp"
	"FeaturedProperties.cpp"
	"ContrabandRoutes.cpp"
	"UgcRoutes.cpp"
	"UgcLinks.cpp"
	"UgcFetch.cpp"
	"PropertyRentRoutes.cpp"
	"PasswordRecovery.cpp"
	"PrometheusMetrics.cpp"
	"../email/SmtpClient.cpp"
	"../email/EmailService.cpp"
	"../email/OAuth2.cpp"
	"../notify/WebhookFormat.cpp"
	"../notify/Alerts.cpp"
	# Shared with the world servers, which add items and models the same way
	"${PROJECT_SOURCE_DIR}/dGame/dUtilities/ObjectIDManager.cpp"
)

add_library(DashboardRoutes STATIC ${DASHBOARDROUTES_SOURCES})

target_include_directories(DashboardRoutes PRIVATE
	"${PROJECT_SOURCE_DIR}/dCommon"
	"${PROJECT_SOURCE_DIR}/dCommon/dClient"
	"${PROJECT_SOURCE_DIR}/dCommon/dEnums"
	"${PROJECT_SOURCE_DIR}/dDatabase"
	"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase"
	"${PROJECT_SOURCE_DIR}/dDatabase/CDClientDatabase/CDClientTables"
	"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase"
	"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/ITables"
	"${PROJECT_SOURCE_DIR}/dDatabase/GameDatabase/MySQL"
	"${PROJECT_SOURCE_DIR}/dNet"
	"${PROJECT_SOURCE_DIR}/dWeb"
	"${PROJECT_SOURCE_DIR}/dServer"
	"${PROJECT_SOURCE_DIR}/thirdparty"
	"${PROJECT_SOURCE_DIR}/thirdparty/nlohmann"
	"${PROJECT_SOURCE_DIR}/thirdparty/libbcrypt/include"
	"${PROJECT_SOURCE_DIR}/dDashboardServer/auth"
	"${PROJECT_SOURCE_DIR}/dDashboardServer/routes"
	"${PROJECT_SOURCE_DIR}/dDashboardServer/email"
	"${PROJECT_SOURCE_DIR}/dDashboardServer/notify"
	"${PROJECT_SOURCE_DIR}/dDashboardServer/ai"
	"${PROJECT_SOURCE_DIR}/dChatFilter" # word rules for the chat filter page
	"${PROJECT_SOURCE_DIR}/dGame/dUtilities" # ObjectIDManager.h
)

target_compile_definitions(DashboardRoutes PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"")
target_link_libraries(DashboardRoutes PRIVATE ${COMMON_LIBRARIES} dWeb dServer dUgc sqlite3 OpenSSL::Crypto CURL::libcurl)
