/** * Vertragsunterlagen (PDF) als Mail-Anhang der Bestaetigungen K01 (Abo), K12 (Wechsel) und K13 (Zusatzspeicher-Plus), mit der Auskunft, ob sie fehlen. * * Fassung 6 (config.abo.termsVersionNeu) liefert die PDFs erst nach der Freigabe (build-legal-pdfs.sh abo6); bis dahin fehlt die Datei. Dann darf die * Kundenmail nicht behaupten, die Unterlagen haengten an (Block ohne_anhang statt anhang), und das Team bekommt in T02, T12 bzw. T13 den Block * anhang_fehlt und sendet sie von Hand nach (Muster K38/T24). Alle aelteren Fassungen bleiben, wie sie waren: ohne Datei geht die Mail ohne Anhang * raus, Vorlage und Text unveraendert (fehlt bleibt false). */ import { access, readFile } from 'node:fs/promises' import { contractAttachmentFor } from './products.js' import { istNeueFassung } from './vertragsNachweis.js' /** * @param {string} termsVersion zugestimmte Fassung (die Fassung der Zustimmung, nicht die des Abos) * @param {string} tag Kennung fuer das Log, z. B. 'abo' * @returns {Promise<{ attachments: Array<{ filename: string, content: Buffer, contentType: string }>, fehlt: boolean }>} * fehlt: nur bei Fassung 6 und nicht lesbarer Datei */ export async function ladeVertragsAnhang(termsVersion, tag) { const { filename, path } = contractAttachmentFor(termsVersion) const content = await readFile(path).catch((err) => { console.error(`[${tag}] Vertragsunterlagen ${filename} nicht lesbar:`, err.message) return null }) return { attachments: content ? [{ filename, content, contentType: 'application/pdf' }] : [], fehlt: !content && istNeueFassung(termsVersion) } } /** Fehlen die PDFs der Fassung 6 (ohne Log, ohne Lesen der Datei)? Für ein später gesendetes T12; ältere Fassungen: nie. */ export async function anhangFehlt(termsVersion) { if (!istNeueFassung(termsVersion)) return false const { path } = contractAttachmentFor(termsVersion) return access(path).then(() => false, () => true) }