feat: accounting integration (D27), SMS relay driver (D26), rebuild user apps

- Add Tahesab/Zarrin accounting sync module with admin panel UI
- Add SMS relay driver as default provider, refactor SMS into driver pattern
- Update customer services, orders, products, and catalog queries
- Rebuild user-app and user-app-v2 dist assets
- Add Prisma migration for accounting tables
- Update docker-compose and env examples
- Update parity docs (DECISIONS, ISSUES, PROGRESS)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
s.esmaeili
2026-10-06 16:48:36 +03:30
co-authored by Claude Opus 4.6
parent a72fa607a5
commit 19d490e790
179 changed files with 12538 additions and 370 deletions
@@ -0,0 +1,18 @@
import { AccountingProvider, ProviderName } from './accounting-provider';
import { tahesabProvider } from './tahesab.provider';
import { zarrinProvider } from './zarrin.provider';
/**
* Every accounting software, keyed by the admin switch's value. A new one is a
* driver file plus one line here — the same shape as the SMS drivers (D26).
*/
export const ACCOUNTING_PROVIDERS: Readonly<Record<ProviderName, AccountingProvider>> = {
tahesab: tahesabProvider,
zarrin: zarrinProvider,
};
export function isProviderName(v: unknown): v is ProviderName {
return typeof v === 'string' && Object.prototype.hasOwnProperty.call(ACCOUNTING_PROVIDERS, v);
}
export * from './accounting-provider';