import {
  airbyte,
  amazonAppFlow,
  awsLambda,
  cloudflareWorkers,
  dbeaver,
  dbtLabs,
  django,
  gitpod,
  goMySQLDriver,
  gorm,
  hibernate,
  jetBrainsDataGrip,
  myBatis,
  mysql2,
  mySqlclient,
  mySQLConnectorPython,
  mySqlJs,
  mySQLWorkbench,
  n8n,
  navicat,
  netlify,
  nodeMysql2,
  peewee,
  prisma,
  proxySQL,
  pyMySQL,
  rails,
  sequelize,
  springBoot,
  sqlAlchemy,
  typeORM,
  useBedrockData,
  useJdbcData,
  useNextJsData,
  useRequestIntegrationData,
  useTerraformData,
  useVercelData,
  visualStudioCode,
  wordpress,
  zapier
} from './ItemData'
import { IntegrationGroupType } from './type'

export const useStarterData = (clusterId: string): IntegrationGroupType[] => {
  const bedrock = useBedrockData(clusterId, true)
  const vercel = useVercelData(true)
  const requestIntegration = useRequestIntegrationData()
  const terraform = useTerraformData()
  const nextJs = useNextJsData()
  const jdbc = useJdbcData()
  return [
    {
      name: 'Featured',
      items: [bedrock, vercel, requestIntegration]
    },
    {
      name: 'Deploy',
      items: [awsLambda, cloudflareWorkers, gitpod, netlify, terraform, wordpress]
    },
    {
      name: 'Data',
      items: [airbyte, amazonAppFlow, dbtLabs, n8n, zapier]
    },
    {
      name: 'Developer Tools',
      items: [dbeaver, jetBrainsDataGrip, mySQLWorkbench, navicat, proxySQL, visualStudioCode]
    },
    {
      name: 'Java',
      items: [jdbc, hibernate, myBatis, springBoot]
    },
    { name: 'Go', items: [goMySQLDriver, gorm] },
    {
      name: 'Python',
      items: [django, mySqlclient, mySQLConnectorPython, peewee, pyMySQL, sqlAlchemy]
    },
    { name: 'Node.js', items: [mySqlJs, nextJs, nodeMysql2, prisma, sequelize, typeORM] },
    { name: 'Ruby', items: [rails, mysql2] }
  ]
}
