import { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"

export async function GET(req: MedusaRequest, res: MedusaResponse) {
  const homepageCmsService = req.scope.resolve("homepageCms") as any

  const homepages = await homepageCmsService.listHomepages()
  if (!homepages.length) {
    return res.json({ homepage: null })
  }

  const homepage = homepages[0]

  const [heroPhotos, categoryCards, partners] = await Promise.all([
    homepageCmsService.listHeroPhotos({ homepage_id: homepage.id }),
    homepageCmsService.listCategoryCards({ homepage_id: homepage.id }),
    homepageCmsService.listPartners({ homepage_id: homepage.id }),
  ])

  heroPhotos.sort((a: any, b: any) => a.sort_order - b.sort_order)
  categoryCards.sort((a: any, b: any) => a.sort_order - b.sort_order)
  partners.sort((a: any, b: any) => a.sort_order - b.sort_order)

  res.json({
    homepage: {
      ...homepage,
      hero_photos: heroPhotos,
      category_cards: categoryCards,
      partners,
    },
  })
}
