baodan/api/insurance/ppt
wsb1224 1debd7df39 feat(ppt): upgrade renderer from 5 fixed slides to 10+ configurable pages
Rewrite fast_pptx_renderer.py to read requiredPageTypes from template
config instead of hardcoding 5 slides. Add 10 slide builder functions
(cover, company, narrative, chart, timeline, table, compare, synergy,
conclusion, closing) with python-pptx native charts.

Key changes:
- Renderer reads templateConfig.requiredPageTypes and slidesConfig
  from DeckContract to determine slide sequence and per-slide metadata
- routes.py loads PptTemplate and PptCompany from DB, normalizes all
  PDF extractions (not just the first), passes full context to renderer
- renderer.py injects templateConfig, company info, and multi-product
  data into DeckContract
- Add slides_config_json column to PptTemplate (migrate_017) for
  per-slide title/narrative/chartType configuration via admin UI
- Admin template editor now supports drag-reorder slides, per-slide
  title/narrative hint, chart/table type selection
- Add requiredPageTypes to savings/ink, savings/minimal, savings/business
  templates (were missing, causing fallback to defaults)
- Fix IUL normalizer: add payYears and totalPremium to policy dict
- Fix CI/IUL normalizer: add totalSurrenderValue alias to benefitRows
  so charts render correctly for all product types
- Port calculation functions from baodanppt: decade_rows, paid_premium,
  simple_return, compound_return, find_payback_year

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 17:49:09 +08:00
..
config feat(ppt): upgrade renderer from 5 fixed slides to 10+ configurable pages 2026-07-24 17:49:09 +08:00
scripts feat(ppt): upgrade renderer from 5 fixed slides to 10+ configurable pages 2026-07-24 17:49:09 +08:00
__init__.py 0723 PPT功能初步融合 2026-07-23 13:10:50 +08:00
extraction.py fix: support multiple PDF parsers for PPT extraction 2026-07-24 16:36:52 +08:00
irr.py 0723 PPT功能初步融合 2026-07-23 13:10:50 +08:00
knowledge.py 0723 PPT功能初步融合 2026-07-23 13:10:50 +08:00
llm_client.py feat: support Dify-synced models without separate API key 2026-07-24 16:18:59 +08:00
normalizer.py feat(ppt): upgrade renderer from 5 fixed slides to 10+ configurable pages 2026-07-24 17:49:09 +08:00
prompts.py 0723 PPT功能初步融合 2026-07-23 13:10:50 +08:00
renderer.py feat(ppt): upgrade renderer from 5 fixed slides to 10+ configurable pages 2026-07-24 17:49:09 +08:00
routes.py feat(ppt): upgrade renderer from 5 fixed slides to 10+ configurable pages 2026-07-24 17:49:09 +08:00
validator.py 0723 PPT功能初步融合 2026-07-23 13:10:50 +08:00