docs: update README with chart v2, natixis param, and latest features
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
33
README.md
33
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
|
- **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)
|
- Grafico performance sottostanti (SkiaSharp → PNG in memoria)
|
||||||
- Footer con branding opzionale e hyperlink cliccabile
|
- Footer con branding opzionale e hyperlink cliccabile
|
||||||
- Cache in memoria per ISIN già generati (4 chiavi separate: base, branded, dividend, branded+dividend)
|
- Cache in memoria per ISIN già generati (chiavi separate per ogni combinazione di flag: suffissi `:branded`, `:dividend`, `:natixis` concatenati)
|
||||||
- Endpoint per PDF inline, download e grafico standalone
|
- Endpoint per PDF inline, download, grafico standalone v1 e **grafico V2 con multi-formato e salvataggio su disco**
|
||||||
- Supporto Docker
|
- Supporto Docker
|
||||||
|
|
||||||
## Stack tecnologico
|
## Stack tecnologico
|
||||||
@@ -29,7 +29,7 @@ Generatore di report PDF per certificati finanziari strutturati, sviluppato in A
|
|||||||
|
|
||||||
| Sezione | Contenuto |
|
| 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 |
|
| **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) |
|
| **2 — Eventi** | Lista eventi cedole e autocall (tabella landscape multi-pagina) |
|
||||||
| **3 — Scenario** | Scenari di rendimento (opzionale, saltato se assente) |
|
| **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?alias={id} → PDF inline (alias)
|
||||||
GET /api/report/download?p={...} → PDF come allegato
|
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
|
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 |
|
| `?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 |
|
| `?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
|
## Avvio locale
|
||||||
|
|
||||||
@@ -139,9 +154,13 @@ HTTP (ISIN) → ReportController → ReportOrchestrator
|
|||||||
│ ├── EventiSectionRenderer → PdfDocument (Sezione 2, colonne adattate)
|
│ ├── EventiSectionRenderer → PdfDocument (Sezione 2, colonne adattate)
|
||||||
│ └── ChartSectionRenderer → PdfDocument (Sezione 3)
|
│ └── ChartSectionRenderer → PdfDocument (Sezione 3)
|
||||||
│
|
│
|
||||||
├── ChartDataService (SP → dati grafico)
|
├── ChartDataService (SP → dati grafico v1)
|
||||||
├── SkiaChartRenderer → PNG in memoria
|
├── SkiaChartRenderer → PNG in memoria (v1)
|
||||||
└── PdfMergerService → byte[] → Response
|
└── 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)
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user