/**
 * 🎯 Утилита прямого роутинга пользователей в соответствии с типом организации
 *
 * ЦЕЛЬ: Убрать двойные редиректы Registration → /dashboard → /role/home
 * РЕШЕНИЕ: Прямой роутинг Registration → /role/home
 */

interface UserWithOrganization {
  id: string
  phone: string
  organization?: {
    id: string
    type: 'FULFILLMENT' | 'SELLER' | 'LOGIST' | 'WHOLESALE'
  }
}

/**
 * Определяет правильный путь домашней страницы для пользователя
 * на основе типа его организации
 */
export const getHomePathFromUser = (user: UserWithOrganization): string => {
  // Проверяем наличие пользователя и организации
  if (!user?.organization?.type) {
    console.error('❌ getHomePathFromUser - Missing user or organization data:', {
      hasUser: !!user,
      hasOrganization: !!user?.organization,
      organizationType: user?.organization?.type,
    })
    return '/register' // Возврат для повторного выбора
  }

  // Маппинг типов организаций на домашние страницы
  const homeRoutes = {
    LOGIST: '/logistics/home',
    SELLER: '/seller/home',
    FULFILLMENT: '/fulfillment/home',
    WHOLESALE: '/wholesale/home',
  } as const

  const organizationType = user.organization.type as keyof typeof homeRoutes
  const homePath = homeRoutes[organizationType]

  if (!homePath) {
    console.error(`❌ getHomePathFromUser - Unknown organization type: ${organizationType}`)
    return '/register' // Fallback
  }

  console.warn(`✅ getHomePathFromUser - Directing ${organizationType} to ${homePath}`)
  return homePath
}

/**
 * Fallback функция для случаев когда нужен роутинг без полных данных пользователя
 */
export const getHomePathFromOrganizationType = (
  organizationType: 'FULFILLMENT' | 'SELLER' | 'LOGIST' | 'WHOLESALE',
): string => {
  const homeRoutes = {
    LOGIST: '/logistics/home',
    SELLER: '/seller/home',
    FULFILLMENT: '/fulfillment/home',
    WHOLESALE: '/wholesale/home',
  } as const

  return homeRoutes[organizationType] || '/register'
}
