import { type RouteConfig, index, route } from "@react-router/dev/routes";

export default [
  index("app/routes/_index.tsx"),
  route("app", "app/routes/app.tsx", [
    index("app/routes/app._index.tsx"),
    route("billing", "app/routes/app.billing.tsx"),
    route("knowledge", "app/routes/app.knowledge.tsx"),
    route("notifications", "app/routes/app.notifications.tsx"),
    route("settings", "app/routes/app.settings.tsx"),
  ]),

  // SaaS Admin Routes
  route("saas-admin/export/stores", "app/routes/saas-admin-export-stores.ts"),
  route("saas-admin/export/customers", "app/routes/saas-admin-export-customers.ts"),
  route("saas-admin/export/transactions", "app/routes/saas-admin-export-transactions.ts"),
  route("saas-admin/export/revenue", "app/routes/saas-admin-export-revenue.ts"),
  route("api/saas-admin-export", "app/routes/api.saas-admin-export.ts"),
  route("api/saas-admin/export", "app/routes/api.saas-admin-export.ts", { id: "route-api-saas-admin-export" }),
  route("saas-admin", "app/routes/saas-admin.tsx", { id: "route-saas-admin" }),
  route("admin/stores", "app/routes/saas-admin.tsx", { id: "route-admin-stores" }),
  route("api/saas-admin", "app/routes/saas-admin.tsx", { id: "route-api-saas-admin" }),
  route("api/admin", "app/routes/saas-admin.tsx", { id: "route-api-admin" }),
  route("api/admin/stores", "app/routes/saas-admin.tsx", { id: "route-api-admin-stores" }),
  route("apps/conversecart/saas-admin", "app/routes/saas-admin.tsx", { id: "route-apps-saas-admin" }),
  route("apps/conversecart/admin", "app/routes/saas-admin.tsx", { id: "route-apps-admin" }),
  route("apps/conversecart/admin/stores", "app/routes/saas-admin.tsx", { id: "route-apps-admin-stores" }),
  route("apps/shoppilot/saas-admin", "app/routes/saas-admin.tsx", { id: "route-apps-sp-saas-admin" }),
  route("apps/shoppilot/admin", "app/routes/saas-admin.tsx", { id: "route-apps-sp-admin" }),
  route("apps/shoppilot/admin/stores", "app/routes/saas-admin.tsx", { id: "route-apps-sp-admin-stores" }),

  // Standalone App Pages
  route("notifications", "app/routes/app.notifications.tsx", { id: "route-root-notifications" }),
  route("dashboard/notifications", "app/routes/app.notifications.tsx", { id: "route-dashboard-notifications" }),
  route("settings", "app/routes/app.settings.tsx", { id: "route-root-settings" }),
  route("billing", "app/routes/app.billing.tsx", { id: "route-root-billing" }),
  route("knowledge", "app/routes/app.knowledge.tsx", { id: "route-root-knowledge" }),

  // Auth & Notifications
  route("auth/*", "app/routes/auth$.tsx"),
  route("api/auth/*", "app/routes/auth$.tsx", { id: "route-api-auth" }),
  route("api/notifications/read-all", "app/routes/api.notifications.read-all.ts"),
  route("api/notifications/unread-count", "app/routes/api.notifications.unread-count.ts"),
  route("api/notifications/:id/read", "app/routes/api.notifications.$id.read.ts"),
  route("api/notifications", "app/routes/api.notifications.ts"),

  // Chat Session Routes (App Proxy & Direct Server variants)
  route("api/chat/session", "app/routes/api.chat.session.ts"),
  route("chat/session", "app/routes/api.chat.session.ts", { id: "route-chat-session" }),
  route("apps/conversecart/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-chat-session" }),
  route("apps/conversecart/api/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-api-chat-session" }),
  route("apps/commercebot-ai/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-cbai-chat-session" }),
  route("apps/commercebot-ai/api/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-cbai-api-chat-session" }),
  route("apps/commercebot/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-cb-chat-session" }),
  route("apps/commercebot/api/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-cb-api-chat-session" }),
  route("apps/shoppilot/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-sp-chat-session" }),
  route("apps/shoppilot/api/chat/session", "app/routes/api.chat.session.ts", { id: "route-apps-sp-api-chat-session" }),
  route("session", "app/routes/api.chat.session.ts", { id: "route-session" }),
  route("api/session", "app/routes/api.chat.session.ts", { id: "route-api-session" }),
  route("apps/conversecart/session", "app/routes/api.chat.session.ts", { id: "route-apps-session" }),
  route("apps/conversecart/api/session", "app/routes/api.chat.session.ts", { id: "route-apps-api-session" }),
  route("apps/commercebot-ai/session", "app/routes/api.chat.session.ts", { id: "route-apps-cbai-session" }),
  route("apps/commercebot-ai/api/session", "app/routes/api.chat.session.ts", { id: "route-apps-cbai-api-session" }),
  route("apps/commercebot/session", "app/routes/api.chat.session.ts", { id: "route-apps-cb-session" }),
  route("apps/commercebot/api/session", "app/routes/api.chat.session.ts", { id: "route-apps-cb-api-session" }),

  // Chat Message Routes (App Proxy & Direct Server variants)
  route("api/chat/message", "app/routes/api.chat.message.ts"),
  route("chat/message", "app/routes/api.chat.message.ts", { id: "route-chat-message" }),
  route("apps/conversecart/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-chat-message" }),
  route("apps/conversecart/api/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-api-chat-message" }),
  route("apps/commercebot-ai/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-cbai-chat-message" }),
  route("apps/commercebot-ai/api/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-cbai-api-chat-message" }),
  route("apps/commercebot/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-cb-chat-message" }),
  route("apps/commercebot/api/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-cb-api-chat-message" }),
  route("apps/shoppilot/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-sp-chat-message" }),
  route("apps/shoppilot/api/chat/message", "app/routes/api.chat.message.ts", { id: "route-apps-sp-api-chat-message" }),
  route("message", "app/routes/api.chat.message.ts", { id: "route-message" }),
  route("api/message", "app/routes/api.chat.message.ts", { id: "route-api-message" }),
  route("apps/conversecart/message", "app/routes/api.chat.message.ts", { id: "route-apps-message" }),
  route("apps/conversecart/api/message", "app/routes/api.chat.message.ts", { id: "route-apps-api-message" }),
  route("apps/commercebot-ai/message", "app/routes/api.chat.message.ts", { id: "route-apps-cbai-message" }),
  route("apps/commercebot-ai/api/message", "app/routes/api.chat.message.ts", { id: "route-apps-cbai-api-message" }),
  route("apps/commercebot/message", "app/routes/api.chat.message.ts", { id: "route-apps-cb-message" }),
  route("apps/commercebot/api/message", "app/routes/api.chat.message.ts", { id: "route-apps-cb-api-message" }),
  route("api/chat", "app/routes/api.chat.ts"),
  route("chat", "app/routes/api.chat.ts", { id: "route-chat" }),
  route("apps/conversecart/chat", "app/routes/api.chat.ts", { id: "route-apps-chat" }),
  route("apps/conversecart/api/chat", "app/routes/api.chat.ts", { id: "route-apps-api-chat" }),
  route("apps/commercebot-ai/chat", "app/routes/api.chat.ts", { id: "route-apps-cbai-chat" }),
  route("apps/commercebot-ai/api/chat", "app/routes/api.chat.ts", { id: "route-apps-cbai-api-chat" }),
  route("apps/commercebot/chat", "app/routes/api.chat.ts", { id: "route-apps-cb-chat" }),
  route("apps/commercebot/api/chat", "app/routes/api.chat.ts", { id: "route-apps-cb-api-chat" }),

  // Widget Config Routes
  route("api/widget-config", "app/routes/api.widget-config.ts"),
  route("widget-config", "app/routes/api.widget-config.ts", { id: "route-widget-config" }),
  route("apps/conversecart/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-widget-config" }),
  route("apps/conversecart/api/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-api-widget-config" }),
  route("apps/commercebot-ai/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-cbai-widget-config" }),
  route("apps/commercebot-ai/api/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-cbai-api-widget-config" }),
  route("apps/commercebot/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-cb-widget-config" }),
  route("apps/commercebot/api/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-cb-api-widget-config" }),
  route("apps/shoppilot/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-sp-widget-config" }),
  route("apps/shoppilot/api/widget-config", "app/routes/api.widget-config.ts", { id: "route-apps-sp-api-widget-config" }),

  // Customer Account Auth
  route("api/customer/auth", "app/routes/api.customer.auth.ts"),
  route("customer/auth", "app/routes/api.customer.auth.ts", { id: "route-customer-auth" }),
  route("apps/conversecart/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-customer-auth" }),
  route("apps/conversecart/api/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-api-customer-auth" }),
  route("apps/commercebot-ai/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-cbai-customer-auth" }),
  route("apps/commercebot-ai/api/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-cbai-api-customer-auth" }),
  route("apps/commercebot/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-cb-customer-auth" }),
  route("apps/commercebot/api/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-cb-api-customer-auth" }),
  route("apps/shoppilot/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-sp-customer-auth" }),
  route("apps/shoppilot/api/customer/auth", "app/routes/api.customer.auth.ts", { id: "route-apps-sp-api-customer-auth" }),

  // Webhooks & Sync
  route("api/sync", "app/routes/api.sync.ts"),
  route("api/plans", "app/routes/api.plans.ts"),
  route("api/webhooks", "app/routes/api.webhooks.ts"),
  route("api/webhooks/products", "app/routes/api.webhooks.ts", { id: "route-webhooks-products" }),
  route("api/webhooks/app-uninstalled", "app/routes/api.webhooks.ts", { id: "route-webhooks-uninstalled" }),
  route("api/webhooks/privacy", "app/routes/api.webhooks.privacy.ts"),
  route("api/webhooks/privacy/customers-redact", "app/routes/api.webhooks.privacy.ts", { id: "route-privacy-cust-redact" }),
  route("api/webhooks/privacy/customers-data-request", "app/routes/api.webhooks.privacy.ts", { id: "route-privacy-cust-data" }),
  route("api/webhooks/privacy/shop-redact", "app/routes/api.webhooks.privacy.ts", { id: "route-privacy-shop-redact" }),
  route("favicon.ico", "app/routes/favicon.ico.ts"),
] satisfies RouteConfig;
