Files
gomag-vending/api/README.md
Claude Agent bc56befc15 docs: update project documentation for recent changes
- README.md: fix stale pct_total reference → cantitate_roa, add price_sync_service
  to project tree, update docs/ description (PRD/stories removed), add scripts/
  directory, add Documentatie Tehnica section linking all doc files
- api/README.md: add missing price_sync_service and invoice_service to services table

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 22:20:18 +00:00

60 lines
2.1 KiB
Markdown

# GoMag Import Manager - FastAPI Application
Admin interface si orchestrator pentru importul comenzilor GoMag in Oracle ROA.
## Componente
### Core
- **main.py** - Entry point FastAPI, lifespan (Oracle pool + SQLite init), file logging
- **config.py** - Settings via pydantic-settings (citeste .env)
- **database.py** - Oracle connection pool + SQLite schema + helpers
### Routers (HTTP Endpoints)
| Router | Prefix | Descriere |
|--------|--------|-----------|
| health | /health, /api/health | Status Oracle + SQLite |
| dashboard | / | Dashboard HTML cu stat cards |
| mappings | /mappings, /api/mappings | CRUD ARTICOLE_TERTI + CSV |
| articles | /api/articles | Cautare NOM_ARTICOLE |
| validation | /api/validate | Scanare + validare SKU-uri |
| sync | /sync, /api/sync | Import orchestration + scheduler |
### Services (Business Logic)
| Service | Rol |
|---------|-----|
| mapping_service | CRUD pe ARTICOLE_TERTI (Oracle) |
| article_service | Cautare in NOM_ARTICOLE (Oracle) |
| import_service | Port din VFP: partner/address/order creation |
| sync_service | Orchestrare: read JSONs → validate → import → log |
| price_sync_service | Sync preturi GoMag → Oracle politici de pret |
| invoice_service | Verificare facturi ROA + cache SQLite |
| validation_service | Batch-validare SKU-uri (chunks of 500) |
| order_reader | Citire gomag_orders_page*.json din vfp/output/ |
| sqlite_service | CRUD pe SQLite (sync_runs, import_orders, missing_skus) |
| scheduler_service | APScheduler - sync periodic configurabil din UI |
## Rulare
```bash
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 5003 --reload
```
## Testare
```bash
# Test A - fara Oracle (verifica importuri + rute)
python test_app_basic.py
# Test C - cu Oracle (integrare completa)
python test_integration.py
```
## Dual Database
- **Oracle** - date ERP (ARTICOLE_TERTI, NOM_ARTICOLE, COMENZI)
- **SQLite** - tracking local (sync_runs, import_orders, missing_skus, scheduler_config)
## Logging
Log files in `../logs/sync_comenzi_YYYYMMDD_HHMMSS.log`
Format: `2026-03-11 14:30:25 | INFO | app.services.sync_service | mesaj`