import type { CreditKind, CreditSource, InactiveReason, ImportPlan } from './types'; export const KIND_LABEL: Record = { CC: 'CC-Guthaben', REDESIGN_PAID: 'Redesign (bezahlt)', REDESIGN_KULANZ: 'Redesign (Kulanz)', }; export const SOURCE_LABEL: Record = { CC_PACKAGE: 'CC-Paket', REDESIGN_PACKAGE: 'Redesign-Paket', KULANZ: 'Kulanz', ADJUSTMENT: 'Korrektur', CONSUME: 'Verbrauch', REVERSAL: 'Storno', }; export const REASON_LABEL: Record = { PLAYER_INACTIVITY: 'Spieler-Inaktivitaet', REWORKED: 'Redesignt', OTHER: 'Anderer Grund', }; export const PLAN_LABEL: Record = { BOOK: 'Wird gebucht', CREATE_PLAYER_AND_BOOK: 'Spieler anlegen + buchen', SKIP_DUPLICATE: 'Uebersprungen: schon gebucht', SKIP_IGNORED: 'Uebersprungen: ignoriertes Produkt', SKIP_UNMAPPED: 'Uebersprungen: kein Mapping', SKIP_NO_PLAYER: 'Uebersprungen: Spieler unbekannt', }; const dateFormat = new Intl.DateTimeFormat('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', }); export function formatDate(value: string | null | undefined): string { if (!value) return '—'; const parsed = new Date(value); return Number.isNaN(parsed.getTime()) ? '—' : dateFormat.format(parsed); } export function formatAmount(amount: number): string { return amount > 0 ? `+${amount}` : String(amount); }