- US-001: mută queue_client.py în data_entry/services/ocr/ - US-002/003/004: oracle_receipt_writer + oracle_server_id în DB - US-005: receipt_handlers.py (PDF/photo/callback flow) - US-006: wire handlers în main.py, per-schema connect, seq_cod.nextval - US-007: .gitignore secrets/*.oracle_pass - US-008/009/010: teste unit + integration + E2E - setup-secrets.sh helper + template - docs/telegram/README.md actualizat cu arhitectura nouă Testat E2E pe DB live (MARIUSM_AUTO). COD din seq_cod.nextval. pypdfium2 fallback pentru PDF decode (fără poppler). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.8 KiB
PRD: Roa2Web Telegram Bonuri
1. Introducere
Completează fluxul bonuri fiscale în roa2web: handler Telegram pentru PDF/JPG (document + photo), OCR via serviciul existent, preview cu confirm/cancel, salvare în Oracle ACT_TEMP via PACK_CONTAFIN (logica din scripts/whatsapp_import/process_v2.
Data: 2026-05-05 Status: Draft Mode: FEATURE
2. Context Tehnic
Proiect existent detectat:
- Stack: nodejs
- Config: package.json
- Scripts: dev, build, preview, serve, lint, format, test:e2e, test:e2e:headed, test:e2e:debug, test:e2e:report, test:e2e:ui
3. Obiective
Obiectiv Principal
Completează fluxul bonuri fiscale în roa2web: handler Telegram pentru PDF/JPG (document + photo), OCR via serviciul existent, preview cu confirm/cancel, salvare în Oracle ACT_TEMP via PACK_CONTAFIN (logica din scripts/whatsapp_import/process_v2
Obiective Secundare
- Completează fluxul bonuri fiscale în roa2web: handler Telegram pentru PDF/JPG (document + photo), OCR via serviciul existent, preview cu confirm/cancel, salvare în Oracle ACT_TEMP via PACK_CONTAFIN (logica din scripts/whatsapp_import/process_v2
Metrici de Succes
- Toate funcționalitățile implementate conform spec
- Tests passing (coverage > 80%)
- Code quality: lint + typecheck pass
4. User Stories
US-001: Completează fluxul bonuri fiscale în roa2web: handler Telegram pentru PDF/JPG (document + photo), OCR via serviciul existent, preview cu confirm/cancel, salvare în Oracle ACT_TEMP via PACK_CONTAFIN (logica din scripts/whatsapp_import/process_v2
Ca utilizator Vreau completează fluxul bonuri fiscale în roa2web: handler telegram pentru pdf/jpg (document + photo), ocr via serviciul existent, preview cu confirm/cancel, salvare în oracle act_temp via pack_contafin (logica din scripts/whatsapp_import/process_v2 Pentru că pot folosi aplicația eficient
Acceptance Criteria:
- Funcționalitatea implementată conform descrierii
- Input validation în loc
- Error handling pentru cazuri edge
- Tests cu jest (coverage > 80%)
- Code quality: lint + typecheck pass
Priority: 10
US-002: Tests și Documentație
Ca developer Vreau teste comprehensive și documentație Pentru că asigur calitatea codului
Acceptance Criteria:
- Unit tests pentru toate funcțiile (coverage > 80%)
- Integration tests pentru flow-uri principale
- README cu instrucțiuni de utilizare
- Docstrings pentru funcții publice
- jest rulează fără erori
Priority: 20
5. Cerințe Funcționale
- [REQ-001] Completează fluxul bonuri fiscale în roa2web: handler Telegram pentru PDF/JPG (document + photo), OCR via serviciul existent, preview cu confirm/cancel, salvare în Oracle ACT_TEMP via PACK_CONTAFIN (logica din scripts/whatsapp_import/process_v2.py). Credențiale write user (MARIUSM_AUTO) din env. Branch: feature/telegram-bonuri-fiscale în roa2web.
6. Non-Goals (Ce NU facem)
- Interfață grafică (GUI) - doar CLI/API
- Suport multiple limbaje - doar Node.js / TypeScript
- Deployment infrastructure - doar cod functional
7. Considerații Tehnice
Stack/Tehnologii
- Limbaj: Node.js / TypeScript
- Testing: jest
- Linting: pylint / eslint (depinde de stack)
- Type checking: mypy / typescript
Patterns de Urmat
- Clean code principles
- SOLID principles unde aplicabil
- Error handling consistent
- Input validation strict
Riscuri Tehnice
- Edge cases la input validation
- Performance pentru volume mari de date (dacă aplicabil)
8. Considerații Security
- Input validation pentru toate datele externe
- Error messages fără info sensibilă
- Principle of least privilege
9. Open Questions
- Performance requirements specifice?
- Limite pe input sizes?
- Specific error handling patterns preferați?
Generated by: Echo (Ralph PRD Generator) Date: 2026-05-05 23:00