# Database Schema Summary

Main migrations:

- `0001_schema_postgres.sql`: core ERP/auth/sync/customers/products/stock/service/import/accounts tables.
- `0002_role_permissions.sql`: system roles and permissions.
- `0003_enterprise_required_tables.sql`: extended enterprise tables required for BI, finance, agreements, EMI, warranty, purchase, supplier PI, LC/TT, GRN and ledgers.

## Important tables

Authentication: `users`, `roles`, `permissions`, `user_roles`, `role_permissions`, `login_audit`, `refresh_sessions`.

CRM: `customers`, `customer_contacts`, `customer_followups`, `customer_ledger`, `machines`.

Sales: `quotations`, `sales_orders`, `sales_order_items`, `invoices`, `invoice_items`, `payments`, `money_receipts`, `agreements`, `agreement_items`, `emi_schedules`.

Inventory: `products`, `product_categories`, `warehouses`, `stock_movements`, `parts_inventory`, `serial_numbers`.

Service: `service_tickets`, `service_ticket_logs`, `ticket_parts_used`, `engineers`, `engineer_schedules`, `engineer_location_logs`, `warranties`.

Import: `suppliers`, `purchase_orders`, `purchase_order_items`, `supplier_pis`, `import_orders`, `lc_records`, `lc_payments`, `tt_payments`, `shipments`, `customs_records`, `grns`, `landed_cost_items`.

Accounts: `cash_bank_accounts`, `cash_bank_transactions`, `journal_entries`, `expenses`, `income_entries`, `supplier_ledger`.

Audit/sync: `activity_logs`, `notifications`, `sync_events`, `sync_conflicts`, `import_batches`, `import_audit`, `uploaded_files`, `system_settings`.

## Push notification devices

Migration `0004_push_notification_devices.sql` adds `device_push_tokens`, linking authenticated users to active Expo/FCM-capable device tokens. Tokens can be disabled on logout and are updated idempotently when a user signs in again.
