import type { RecordStore } from '@platform-modules/record-store'
import type { MailAdapter, MailMessage, MailResult } from './index.js'

export type CapturedMail = MailMessage

function toCaptured(msg: MailMessage): CapturedMail {
  return msg
}

export function makeCaptureAdapter(opts: {
  store: RecordStore<CapturedMail>
  provider?: string
}): MailAdapter {
  return {
    async send(msg: MailMessage): Promise<MailResult> {
      const stored = await opts.store.append(toCaptured(msg))
      return { id: stored.id, provider: opts.provider ?? 'capture' }
    },
  }
}
