import type { Puja } from './types.js'
import satyanarayan from './satyanarayan.js'
import lakshmiDiwali from './lakshmi-diwali.js'
import ganesh from './ganesh.js'
import rudrabhishek from './rudrabhishek.js'
import hanuman from './hanuman.js'
import navagraha from './navagraha.js'
import navratriGhatasthapana from './navratri-ghatasthapana.js'

// `as const satisfies` keeps the literal key union (so `PujaSlug` auto-
// updates as pujas are added) while still type-checking each value against
// `Puja`. The order here is the display order for `getAllPujas()`.
const pujasBySlug = {
  'satyanarayan': satyanarayan,
  'lakshmi-diwali': lakshmiDiwali,
  'ganesh': ganesh,
  'rudrabhishek': rudrabhishek,
  'hanuman': hanuman,
  'navagraha': navagraha,
  'navratri-ghatasthapana': navratriGhatasthapana,
} as const satisfies Record<string, Puja>

export type PujaSlug = keyof typeof pujasBySlug

export default pujasBySlug
