{"name":"Google Sheets API","version":"1.0.0","description":"API for connecting to Google Sheets","endpoints":{"health":"GET /health","sheets":{"getAll":"GET /api/sheets/data","getByRow":"GET /api/sheets/data/:row","add":"POST /api/sheets/data","update":"PUT /api/sheets/data/:row","delete":"DELETE /api/sheets/data/:row","search":"GET /api/sheets/search","columns":"GET /api/sheets/columns","financeSummary":"GET /api/sheets/finance-summary (?year=&month= hoặc ?ym=YYYY-MM, ?dateOrder=dmy|mdy) — tháng trước tháng hiện tại: đọc data/finance-summary-history.json; tháng hiện tại: Google Sheets","revenueHistory":"GET /api/sheets/revenue-history (JWT admin|manager) — data/revenue-history.json","transactionCustomers":"GET /api/sheets/transaction-customers?branch= (JWT admin|manager) — data/transaction-customers.json","cashTransactionsSheet":"Cùng lịch DAILY_REVENUE_CRON: đọc Hà Đông + Trần Cung, lọc TM, ghi đè tab CASH_TX_SHEET_NAME — npm run export-cash-sheet"},"auth":{"login":"POST /api/auth/login","refresh":"POST /api/auth/refresh"},"upload":{"transactionImage":"POST /api/upload/transaction-image (multipart field: image; JWT) — trả { url } phục vụ tại GET /uploads/…"},"services":{"list":"GET /api/services — lấy danh sách dịch vụ từ data/unique-services.json"},"transactionCustomersSnapshot":{"file":"data/transaction-customers.json — cron TRANSACTION_CUSTOMERS_CRON; GET /api/sheets/transaction-customers (JWT admin|manager)"},"webhooks":{"googleSheets":"POST /api/webhooks/google-sheets (header X-Sheets-Webhook-Secret) — Apps Script → FCM"},"devices":{"fcmToken":"POST /api/devices/fcm-token { token, platform? } (JWT hoặc X-API-Key)"}}}