ppt-tool/backend/services
Vadym Samoilenko ae41562103 Phase 8: Data-driven slide architecture + template management overhaul
Replaces TSX/Babel compilation pipeline with a JSON element model:
- New _do_parse_v2(): 1 LLM call/layout (vs 2) classifies OXML geometry
  elements into placeholder types → JSON stored in layout_code
- SlideRenderer.tsx: renders JSON element model as %-positioned divs,
  no Babel compilation or runtime errors
- parseLayoutSchema.ts: isJsonLayoutCode() / parseLayoutSchema() /
  mergeElementsWithContent() — full JSON schema parsing layer
- useCustomTemplates.ts: transparent dual-format support (JSON + TSX)
  via parsedLayoutToCompiled() adapter

Template management improvements:
- PresentationLayoutCodeModel: +is_enabled (bool) +thumbnail_path (str)
- Migration 005: adds both columns to presentation_layout_codes
- DELETE /master-decks/{id}: hard delete (files + TemplateModel +
  PresentationLayoutCodeModel rows + MasterDeckModel)
- PATCH /template-management/layouts/{db_id}/toggle-enabled: new endpoint
- LayoutData response: +db_id, +is_enabled, +thumbnail_path
- _register_as_template(): stores thumbnail_path + is_enabled per layout

Admin UI:
- /admin/templates/ — list all custom templates with delete
- /admin/templates/[id]/ — layout grid with screenshots + enable/disable
- AdminSidebar: Templates nav item

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 20:05:25 +00:00
..
__init__.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
access_service.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
ai_usage_service.py Phase 2: Admin panel, analytics, storage, template pipeline, multi-provider LLM 2026-02-26 23:39:34 +00:00
attachment_parser_service.py Phase 3: Content Pipeline — file parsing, content intelligence, slide mapping, native charts 2026-02-26 15:54:04 +00:00
audit_service.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
auth_service.py Implement critical security fixes and modern design system (Pre-launch P0 tasks) 2026-02-27 18:28:24 +00:00
brand_enforcement_service.py Phase 4: Generation Pipeline — brand enforcement, enhanced LLM calls, ARQ job queue 2026-02-26 16:15:25 +00:00
chart_data_extractor.py Phase 3: Content Pipeline — file parsing, content intelligence, slide mapping, native charts 2026-02-26 15:54:04 +00:00
concurrent_service.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
content_intelligence_service.py Phase 3: Content Pipeline — file parsing, content intelligence, slide mapping, native charts 2026-02-26 15:54:04 +00:00
database.py Fix RLS session variables syntax 2026-02-27 20:26:03 +00:00
docling_service.py Phase 4: Fix critical bugs, improve document parsing, add vision OCR 2026-02-27 14:07:00 +00:00
documents_loader.py Fix SSE crash + React layout error boundaries 2026-03-01 19:35:27 +00:00
html_to_text_runs_service.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
icon_finder_service.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
image_generation_service.py Fix image generation model and purge logic 2026-02-27 16:18:34 +00:00
layout_analysis_service.py Phase 4: Fix critical bugs, improve document parsing, add vision OCR 2026-02-27 14:07:00 +00:00
llm_client.py Phase 2: Admin panel, analytics, storage, template pipeline, multi-provider LLM 2026-02-26 23:39:34 +00:00
llm_service.py Implement critical security fixes and modern design system (Pre-launch P0 tasks) 2026-02-27 18:28:24 +00:00
llm_tool_calls_handler.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
master_deck_parser_service.py Phase 8: Data-driven slide architecture + template management overhaul 2026-03-01 20:05:25 +00:00
native_chart_service.py Phase 3: Content Pipeline — file parsing, content intelligence, slide mapping, native charts 2026-02-26 15:54:04 +00:00
pptx_presentation_creator.py Phase 3: Content Pipeline — file parsing, content intelligence, slide mapping, native charts 2026-02-26 15:54:04 +00:00
redis_service.py Phase 4: Generation Pipeline — brand enforcement, enhanced LLM calls, ARQ job queue 2026-02-26 16:15:25 +00:00
retention_service.py Phase 6: Export & Polish — brand export, client dashboard, retention, analytics 2026-02-26 16:41:58 +00:00
score_based_chunker.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00
settings_service.py Phase 3: Bug fixes, feature enhancements, and polish 2026-02-27 12:58:52 +00:00
slide_mapping_engine.py Phase 3: Content Pipeline — file parsing, content intelligence, slide mapping, native charts 2026-02-26 15:54:04 +00:00
temp_file_service.py Rebrand Presenton to Oliver DeckForge, pre-configure models, use NanoBanana Pro 2026-02-26 18:17:11 +00:00
webhook_service.py Phase 1-2: Foundation + Admin Panel & Client Management 2026-02-26 15:37:17 +00:00