docs: update CLAUDE.md with Memoria field, natixis param, and query params reference table

This commit is contained in:
2026-03-26 12:59:38 +01:00
parent 79b02b39b6
commit 86bb25ef1e

View File

@@ -94,6 +94,8 @@ Tutte le stored procedure sono su `FirstSolutionDB`. I dati tornano **già forma
- `GET /api/report?p={isin_cifrato}` / `?alias={id}` / `/by-isin/{isin}` — PDF inline
- `GET /api/report/download?p={...}` / `?alias={...}` — PDF come allegato
- Tutti gli endpoint report accettano `?branding=true` (default `false`) per abilitare il footer "Powered by Smart Roots"
- 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`
- `GET /api/chart/{isin}[?format=png|pdf&width=&height=]` — grafico standalone
- `GET /health` — health check DB + chart service
@@ -107,6 +109,22 @@ Con `branding=false` (default): solo numero pagina centrato.
La cache usa chiavi separate: `{isin}:branded` vs `{isin}`. Il flag è propagato come `CertificateReportData.ShowBranding` e passato a `PdfTheme.DrawFooter(g, pageWidth, pageHeight, pageNumber, showBranding)`. L'hyperlink usa `PdfTextWebLink` (richiede `using Syncfusion.Pdf.Interactive;`).
## Parametri query report
Tutti i flag booleani hanno default `false` e seguono lo stesso pattern di propagazione: `ReportController``IReportOrchestrator.GenerateReportAsync``CertificateReportData` → renderer.
| Parametro | Flag su `CertificateReportData` | Effetto |
|-----------|--------------------------------|---------|
| `?branding=true` | `ShowBranding` | Footer con "Powered by Smart Roots" + link |
| `?dividend=true` | `ShowDividend` | Aggiunge pagina Sottostanti+Dividendi; nasconde tabella Sottostanti dalla Sezione 1 |
| `?natixis=true` | `ShowNatixis` | Box Tipologia mostra `info.Nome` invece di `info.Categoria` |
**Cache key pattern** (Approccio A — suffissi concatenati):
- Suffissi: `:branded`, `:dividend`, `:natixis` — aggiunti in questo ordine se il flag è `true`
- Chiave base: `{isin}[suffissi]`
- Chiave expired: `{isin}:expired[suffissi]`
- Esempio: `?branding=true&natixis=true` → chiave `{isin}:branded:natixis`
## Sezione 1 — AnagraficaSectionRenderer
Struttura a 3 sezioni verticali in una singola pagina A4:
@@ -115,7 +133,7 @@ Struttura a 3 sezioni verticali in una singola pagina A4:
|---------|-----------|
| **Titolo** | "Scheda Prodotto {ISIN}" blu + Bid/Ask a destra + linea separatrice blu |
| **A — Caratteristiche Prodotto** | Tabella emittente a sinistra (ISIN, Mercato, Valuta, Date, Autocall) + tabella cedole a destra (CpnPagati/DaPagare/InMemoria, RendimentoAttuale) |
| **B — Analisi** | 8 KV a sinistra + 9 KV a destra. Leva/FattoreAirbag/TriggerOneStar mostrati come `"—"` anche se vuoti |
| **B — Analisi** | 9 KV a sinistra + 9 KV a destra. Leva/Memoria/FattoreAirbag/TriggerOneStar mostrati come `"—"` anche se vuoti |
| **C — Sottostanti** | PdfGrid 9 colonne: Nome, Strike, Last, % Perf., Barr.K, Buffer K, Trig.CPN, Buf.CPN, Trig.AC (Dist.AC rimossa) |
Se la tabella Sottostanti non entra (y > PageH-80pt), si crea una nuova pagina. Il footer viene disegnato su ogni pagina con `PdfTheme.DrawFooter`.