import type { Stotra } from '../types.js'
import shivaTandavaStotram from './shiva-tandava-stotram.js'
import lingashtakam from './lingashtakam.js'
import bilvashtakam from './bilvashtakam.js'
import madhurashtakam from './madhurashtakam.js'
import achyutashtakam from './achyutashtakam.js'
import mahalakshmiAshtakam from './mahalakshmi-ashtakam.js'
import mahishasuraMardiniStotram from './mahishasura-mardini-stotram.js'
import kanakadharaStotram from './kanakadhara-stotram.js'
import bhajaGovindam from './bhaja-govindam.js'
import ramaRakshaStotram from './rama-raksha-stotram.js'
import sankatMochanHanumanAshtak from './sankat-mochan-hanuman-ashtak.js'
import bajrangBaan from './bajrang-baan.js'
import hanumanBahuk from './hanuman-bahuk.js'

// Slug-keyed (like mantras): many stotras aren't deity-exclusive and one deity
// can have several, so the canonical key is the stotra slug, with reverse
// lookup by deity via `getStotrasForDeity`. Phase 12 Batch A ships the six
// clean-source stotras (verbatim Devanagari + round-trip-verified IAST +
// researched per-stanza meaning glosses, draft). See `SOURCES.md`.
//
// `as const satisfies` keeps the literal key union (so `StotraSlug` auto-updates
// as stotras are added) while still type-checking each value against `Stotra`.
const stotrasBySlug = {
  'shiva-tandava-stotram': shivaTandavaStotram,
  'lingashtakam': lingashtakam,
  'bilvashtakam': bilvashtakam,
  'madhurashtakam': madhurashtakam,
  'achyutashtakam': achyutashtakam,
  'mahalakshmi-ashtakam': mahalakshmiAshtakam,
  'mahishasura-mardini-stotram': mahishasuraMardiniStotram,
  'kanakadhara-stotram': kanakadharaStotram,
  'bhaja-govindam': bhajaGovindam,
  'rama-raksha-stotram': ramaRakshaStotram,
  'sankat-mochan-hanuman-ashtak': sankatMochanHanumanAshtak,
  'bajrang-baan': bajrangBaan,
  'hanuman-bahuk': hanumanBahuk,
} as const satisfies Record<string, Stotra>

export type StotraSlug = keyof typeof stotrasBySlug

export default stotrasBySlug
