Replace import_orders (insert-per-run) with orders table (one row per order, upsert on conflict). Eliminates dedup CTE on every dashboard query and prevents unbounded row growth at 4-500 orders/sync. Key changes: - orders table: PK order_number, upsert via ON CONFLICT DO UPDATE; COALESCE preserves id_comanda once set; times_skipped auto-increments - sync_run_orders: lightweight junction (sync_run_id, order_number) replaces sync_run_id column on orders - order_items: PK changed to (order_number, sku), INSERT OR IGNORE - Auto-migration in init_sqlite(): import_orders → orders on first boot, old table renamed to import_orders_bak - /api/dashboard/orders: period_days param (3/7/30/0=all, default 7) - Dashboard: period selector buttons in orders card header - start.sh: stop existing process on port 5003 before restart; remove --reload (broken on WSL2 /mnt/e/) - Add invoice_service, E2E Playwright tests, Oracle package updates Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 lines
233 B
Plaintext
13 lines
233 B
Plaintext
fastapi==0.115.6
|
|
uvicorn[standard]==0.34.0
|
|
jinja2==3.1.4
|
|
python-multipart==0.0.18
|
|
oracledb==2.5.1
|
|
aiosqlite==0.20.0
|
|
apscheduler==3.10.4
|
|
python-dotenv==1.0.1
|
|
pydantic-settings==2.7.1
|
|
httpx==0.28.1
|
|
pytest>=8.0.0
|
|
pytest-asyncio>=0.23.0
|