45 lines
2.4 KiB
JavaScript
45 lines
2.4 KiB
JavaScript
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,
|
|
})
|