From 457800160e0708feaf3b3146db1eed95ddd39e25 Mon Sep 17 00:00:00 2001 From: SmartRootsSrl Date: Mon, 8 Jun 2026 16:10:51 +0200 Subject: [PATCH] docs: update README with chart v2, natixis param, and latest features Co-Authored-By: Claude Sonnet 4.6 (1M context) --- README.md | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f79719e..7584ec7 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ Generatore di report PDF per certificati finanziari strutturati, sviluppato in A - **Pagina dividendi opzionale** (`?dividend=true`): pagina landscape con tabella Sottostanti+Dividendi a header raggruppati (SOTTOSTANTE / BARRIERE / DIVIDENDI), inserita dopo la Sezione 1 - Grafico performance sottostanti (SkiaSharp → PNG in memoria) - Footer con branding opzionale e hyperlink cliccabile -- Cache in memoria per ISIN già generati (4 chiavi separate: base, branded, dividend, branded+dividend) -- Endpoint per PDF inline, download e grafico standalone +- Cache in memoria per ISIN già generati (chiavi separate per ogni combinazione di flag: suffissi `:branded`, `:dividend`, `:natixis` concatenati) +- Endpoint per PDF inline, download, grafico standalone v1 e **grafico V2 con multi-formato e salvataggio su disco** - Supporto Docker ## Stack tecnologico @@ -29,7 +29,7 @@ Generatore di report PDF per certificati finanziari strutturati, sviluppato in A | Sezione | Contenuto | |---------|-----------| -| **1 — Anagrafica** | Header con Tipologia / Data / Bid / Ask, caratteristiche prodotto, analisi KV, tabella sottostanti (omessa se `?dividend=true`) | +| **1 — Anagrafica** | Header con Tipologia / Data / Bid / Ask, caratteristiche prodotto, analisi KV (inclusi Direzione, RendimentoPotenziale, CategoryID), tabella sottostanti (omessa se `?dividend=true`) | | **1b — Sottostanti e Dividendi** *(opzionale, `?dividend=true`)* | Pagina landscape: tabella unificata con colonne SOTTOSTANTE / BARRIERE / DIVIDENDI a 2 livelli di header | | **2 — Eventi** | Lista eventi cedole e autocall (tabella landscape multi-pagina) | | **3 — Scenario** | Scenari di rendimento (opzionale, saltato se assente) | @@ -54,7 +54,8 @@ GET /api/report?p={isin_cifrato} → PDF inline (ISIN cifrato) GET /api/report?alias={id} → PDF inline (alias) GET /api/report/download?p={...} → PDF come allegato -GET /api/chart/{isin} → Grafico standalone (PNG/PDF) +GET /api/chart/{isin} → Grafico standalone v1 (PNG/PDF) +GET /api/chart/v2/{isin} → Grafico standalone v2 (multi-formato, vedi sotto) GET /health → Health check DB + chart service ``` @@ -64,8 +65,22 @@ Parametri opzionali accettati da tutti gli endpoint report: |-----------|---------|---------| | `?branding=true` | `false` | Aggiunge footer "Powered by Smart Roots" con hyperlink | | `?dividend=true` | `false` | Inserisce pagina landscape Sottostanti+Dividendi dopo la Sezione 1; omette la tabella sottostanti dalla Sezione 1 | +| `?natixis=true` | `false` | Box Tipologia mostra `info.Nome` invece di `info.Categoria` | -I due parametri sono combinabili: `?branding=true÷nd=true`. +I parametri sono combinabili, es. `?branding=true÷nd=true&natixis=true`. + +### Grafico V2 — parametri + +``` +GET /api/chart/v2/{isin}[?format=png|jpg|jpeg|jpgEnc|pdf&width=&height=&save=true] +``` + +| Parametro | Valori | Effetto | +|-----------|--------|---------| +| `?format=` | `png` (default), `jpg`/`jpeg`, `jpgEnc`, `pdf` | Formato output; `jpgEnc` usa filename da alias SP; `pdf` genera PDF landscape | +| `?save=true` | — | Salva il JPEG su disco (percorsi da `ChartSettings:SavePath` / `SavePathEnc`) — solo per `jpg`/`jpeg`/`jpgEnc` | + +**Colori grafico V2**: CTF = nero `#000000`, WorstOf = rosso `#CC0000`, altri sottostanti = palette vivace (teal/amber/viola/celeste…), Barriera Capitale = marrone `#715548`. ## Avvio locale @@ -139,9 +154,13 @@ HTTP (ISIN) → ReportController → ReportOrchestrator │ ├── EventiSectionRenderer → PdfDocument (Sezione 2, colonne adattate) │ └── ChartSectionRenderer → PdfDocument (Sezione 3) │ - ├── ChartDataService (SP → dati grafico) - ├── SkiaChartRenderer → PNG in memoria + ├── ChartDataService (SP → dati grafico v1) + ├── SkiaChartRenderer → PNG in memoria (v1) └── PdfMergerService → byte[] → Response + +HTTP (ISIN) → ChartController → /api/chart/v2/{isin} + ├── ChartDataServiceV2 (cedlab_Chart_UL1 + cedlab_Chart_AllSeriesV2) + └── SkiaChartRendererV2 → PNG/JPEG/PDF → Response (+ salvataggio disco se ?save=true) ``` ---