SIM-Karten: Checkbox "eSIM" zwischen Hauptkarte und Multisim

Hardware-Plastikkarte vs. eSIM-Profil ist eigene Eigenschaft – eSIM
kann sowohl Hauptkarte als auch Multisim sein, deshalb dritter
Toggle statt entweder/oder.

- Schema: SimCard.isEsim Boolean default false, Migration mit
  IF NOT EXISTS.
- Backend: vier SimCard-Schreibpfade in contract.service.ts (Create,
  Update, Follow-Up, Renewal).
- UI: dritte Checkbox in ContractForm zwischen Hauptkarte und
  Multisim. ContractDetail zeigt blauen eSIM-Badge.
This commit is contained in:
2026-06-03 16:13:24 +02:00
parent 431792e8d9
commit 5508d59652
7 changed files with 45 additions and 0 deletions
+11
View File
@@ -97,6 +97,17 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
## ✅ Erledigt
- [x] **🆕 SIM-Karten: Checkbox „eSIM" zwischen „Hauptkarte" und „Multisim"**
- Hardware-Plastikkarte vs. eSIM-Profil ist eine eigene Eigenschaft
eSIM kann sowohl Hauptkarte als auch Multisim sein, also zusätzlich
statt entweder/oder.
- Schema: `SimCard.isEsim Boolean @default(false)`, Migration
`20260603100000_sim_card_esim` mit `IF NOT EXISTS`.
- Backend: alle vier SimCard-Schreibpfade in `contract.service.ts`
(Create + Update + Follow-Up + Renewal) plus FE-Type-Definition.
- UI: dritte Checkbox in `ContractForm` zwischen Hauptkarte und
Multisim. ContractDetail zeigt blauen `eSIM`-Badge neben Hauptkarte.
- [x] **🆕 JpgToPdfModal: PDF-Größe drastisch reduziert (Original-Bytes + Quality 0.95)**
- Stage-Bug: 2 Handy-JPGs à 2 MB → PDF >10 MB → Multer 413. Ursache:
Canvas-Re-Encode mit JPEG-Quality 1.0 blies jedes Bild auf 8-15 MB