import { AUFTRAEGE_COLLECTIONS } from '../server/services/auftraege/schema.js' import { hashToken } from '../server/services/auftraege/token.js' // Testdaten der Strang-L5-Tests: gesendete AB, Token, Schema und Datumsfelder für den Appwrite-Nachbau. // Importiert nie server/config.js: die Tests setzen die Umgebung erst danach (useTestEnv). const attribute = AUFTRAEGE_COLLECTIONS.auftraege.attributes export const AUFTRAEGE_SCHEMA = { auftraege: attribute.map((a) => a.key) } export const AUFTRAEGE_DATETIMES = { auftraege: attribute.filter((a) => a.type === 'datetime').map((a) => a.key) } export const TOKEN = 'T'.repeat(43) export const TOKEN_NEU = 'U'.repeat(43) export const SHA = 'a'.repeat(64) export const UNGUELTIG = 'Dieser Link ist ungültig oder abgelaufen.' export const kunde = (kundenart = 'privat', extra = {}) => ({ name: 'Erika Muster', firma: kundenart === 'unternehmen' ? 'Muster GmbH' : '', strasse: 'Hauptstr. 1', plz: '67722', ort: 'Winnweiler', land: 'DE', email: 'k@example.invalid', kundenart, kundennummer: 'K-100', ...extra, }) /** Gesendete Festpreis-AB AB-2026-0001 des Kunden c1 (Form „Auftrag“ aus V3), gesendet am 06.10.2026 (Berlin 12:00), Link bis 05.12.2026. */ export const abDokument = (over = {}) => ({ id: 'ab1', nummer: 'AB-2026-0001', jahr: 2026, laufnummer: 1, status: 'versendet', kundenId: 'c1', kunde: kunde(), projektId: 'p1', titel: 'Website für Musterbäckerei', zeitquelle: [], art: 'festpreis', positionen: [{ beschreibung: 'Website', menge: 1, einzelpreisCents: 80000 }], stundensatzCents: null, schaetzungMinuten: null, summeCents: 80000, zahlungsplan: { art: 'nach_abnahme', prozent: null, text: '' }, zahlungszielTage: 14, auftragVom: '2026-10-05', auftragWeg: 'telefon', startAm: '', fertigBis: '', ersetztId: '', ersetztDurchId: '', texteFassung: '2026-10-06', agbFassung: '2026-09-30', pdfDatei: 'c1/ab1.pdf', pdfSha256: SHA, gesendetAm: '2026-10-06T10:00:00.000Z', gesendetAn: 'k@example.invalid', mailStatus: 'gesendet', mailFehler: '', tokenHash: hashToken(TOKEN), tokenGueltigBis: '2026-12-05T10:00:00.000Z', bestaetigtAm: null, bestaetigtUeber: '', bestaetigtPdfSha256: '', fruehbeginn: false, fruehbeginnFassung: '', storniertAm: null, widerrufenAm: null, erstelltVon: 'kenso@webklar.com', erstelltAm: '2026-10-06T09:00:00.000Z', geaendertAm: '2026-10-06T10:00:00.000Z', ...over, })