import {
deleteBotRecord,
requireBotQuery,
resolveBot,
} from './registry.ts'
export type UnregisterInput = {
/** Bot id or name (case-insensitive). */
bot: string
}
export type UnregisterResult =
| { removed: true; id: string; name: string }
| { removed: false }
/**
* Remove a Grok Bot roster row and its alias keys.
*
* Does not delete the Kody sender-key secret.
*
* @param input.bot - Bot id or name
* @returns Whether a row was removed
* @example
* import unregister from 'kody:@kentcdodds/grok-bot/unregister'
* const result = await unregister({ bot: 'ship-pr' })
* // => { removed: true, id, name } or { removed: false }
*/
export default async function unregister(
input: UnregisterInput = {} as UnregisterInput,
): Promise<UnregisterResult> {
const botQuery = requireBotQuery(input?.bot)
const record = await resolveBot(botQuery)
if (!record) return { removed: false }
await deleteBotRecord(record)
return { removed: true, id: record.id, name: record.name }
}