package com.placeholder.sherpai2.ui.navigation

/**
 * Centralized list of navigation routes used by NavHost.
 *
 * This intentionally mirrors AppDestinations.route
 * but exists as a pure navigation concern.
 *
 * Why:
 * - Drawer UI ≠ Navigation system
 * - Keeps NavHost decoupled from icons / labels
 */
object AppRoutes {
    // Photo browsing
    const val SEARCH = "search"
    const val EXPLORE = "explore"
    const val IMAGE_DETAIL = "IMAGE_DETAIL"

    // Face recognition
    const val DISCOVER = "discover"  // ✨ NEW: Auto-cluster face discovery
    const val INVENTORY = "inv"
    const val TRAIN = "train"
    const val MODELS = "models"  // DEPRECATED - kept for reference only

    // Organization
    const val TAGS = "tags"
    const val UTILITIES = "utilities"

    // Settings
    const val SETTINGS = "settings"

    // Internal training flow screens
    const val IMAGE_SELECTOR = "Image Selection"  // DEPRECATED - kept for reference only
    const val TRAINING_PHOTO_SELECTOR = "training_photo_selector"  // Face-filtered gallery
    const val ROLLING_SCAN = "rolling_scan/{seedImageIds}"  // Similarity-based photo finder
    const val CROP_SCREEN = "CROP_SCREEN"
    const val TRAINING_SCREEN = "TRAINING_SCREEN"
    const val ScanResultsScreen = "First Scan Results"

    // Rolling scan helper
    fun rollingScanRoute(seedImageIds: List<String>): String {
        val encoded = seedImageIds.joinToString(",")
        return "rolling_scan/$encoded"
    }

    // Album view
    const val ALBUM_VIEW = "album/{albumType}/{albumId}"
    fun albumRoute(albumType: String, albumId: String) = "album/$albumType/$albumId"

    // Collections
    const val COLLECTIONS = "collections"
}