docs: update CLAUDE.md with all chart v2 formats (jpg, jpeg, jpgEnc, pdf) and renderer notes

This commit is contained in:
2026-05-27 18:41:14 +02:00
parent c350b7d3b5
commit 1b4e8c2096

View File

@@ -104,6 +104,17 @@ HTTP (ISIN) → ReportController → ReportOrchestrator
**Colori V2**: CTF = rosso `#CC0000` 2.5px, WorstOf = blu `#1565C0` 2px, altri UL = grigi 1px **Colori V2**: CTF = rosso `#CC0000` 2.5px, WorstOf = blu `#1565C0` 2px, altri UL = grigi 1px
**Formati `?format=`**:
| Valore | Output | Note |
|--------|--------|------|
| *(default)* / `png` | PNG inline | filename `chart_v2_{isin}.png` |
| `jpg` / `jpeg` | JPEG inline | filename `chart_v2_{isin}.jpg` |
| `jpgEnc` | JPEG inline | filename `{AliasID}.jpg` da SP `rpt_CertificatesChartsAlias @isin`; fallback a `chart_v2_{isin}.jpg` se SP non trova risultati |
| `pdf` | PDF landscape inline | filename `chart_v2_{isin}.pdf` |
**Note renderer**: CTF non mostrato se `NumPrezziCFT < 30` (mostra solo avviso testo); asse X usa intervalli mensili adattivi (12m/6m/3m/1m in base al range).
## Database ## Database
Tutte le stored procedure sono su `FirstSolutionDB`. I dati tornano **già formattati come stringhe** dalle SP (es. `FORMAT(value,'P2','it-IT')`): i modelli C# usano `string` per questi campi. Solo `NominalValue`, `PrezzoEmissione`, `CpnPagati`, `CpnDaPagare`, `CpnInMemoria` sono `decimal?` perché servono come valori numerici nel rendering. Tutte le stored procedure sono su `FirstSolutionDB`. I dati tornano **già formattati come stringhe** dalle SP (es. `FORMAT(value,'P2','it-IT')`): i modelli C# usano `string` per questi campi. Solo `NominalValue`, `PrezzoEmissione`, `CpnPagati`, `CpnDaPagare`, `CpnInMemoria` sono `decimal?` perché servono come valori numerici nel rendering.
@@ -116,7 +127,7 @@ Tutte le stored procedure sono su `FirstSolutionDB`. I dati tornano **già forma
- Tutti gli endpoint report accettano `?dividend=true` (default `false`) per aggiungere la pagina Sottostanti+Dividendi - Tutti gli endpoint report accettano `?dividend=true` (default `false`) per aggiungere la pagina Sottostanti+Dividendi
- Tutti gli endpoint report accettano `?natixis=true` (default `false`) per mostrare `info.Nome` nel box Tipologia invece di `info.Categoria` - Tutti gli endpoint report accettano `?natixis=true` (default `false`) per mostrare `info.Nome` nel box Tipologia invece di `info.Categoria`
- `GET /api/chart/{isin}[?format=png|pdf&width=&height=]` — grafico standalone v1 - `GET /api/chart/{isin}[?format=png|pdf&width=&height=]` — grafico standalone v1
- `GET /api/chart/v2/{isin}[?format=png|pdf&width=&height=]` — grafico standalone v2 (titolo, colori CTF/WorstOf, label linee, legenda in basso) - `GET /api/chart/v2/{isin}[?format=png|jpg|jpeg|jpgEnc|pdf&width=&height=]` — grafico standalone v2 (titolo, colori CTF/WorstOf, label linee, legenda in basso)
- `GET /health` — health check DB + chart service - `GET /health` — health check DB + chart service
## Footer branding ## Footer branding