Files
tehran_tala/apps/api/src/app.module.ts
T
s.esmaeiliandClaude Opus 5.5 2d74f53d0a feat(admin): D16 (b)(c) — Excel order-item report, document-confirm SMS, %name in bulk SMS
Finished from a parallel session that expired (owner: «بساز»).

- RPT-01: GET admin/report/order-items — legacy report/order_item's
  32-column Excel (order items, one row per unit, plus financial
  documents), RTL, Jalali dates. The «گزارش تجمیعی» screen gets
  «دریافت فایل اکسل». Review fixes:
  - weight: computedWeightGrams is already one unit's weight; legacy
    divided it by qty again, under-reporting «بدهکار» on multi-unit
    lines. Not repeated.
  - «درصد»: the final percent (wage − discount), as legacy.
  - dates: the end date covers its whole day; a bad date is a 400.
- SMS-01: confirming or rejecting a financial document texts the customer,
  as legacy CashController::toggleConfiremCash.
- SMS-02: bulk SMS substitutes %name per recipient and is actually sent
  through the configured gateway (D26 relay), no longer only logged.
- Docs: 01-ADMIN-MATRIX and D16-BC-GAP-SUMMARY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:34:45 +03:30

80 lines
3.8 KiB
TypeScript

import { Module } from '@nestjs/common';
import { PrismaModule } from './prisma/prisma.module';
import { CatalogModule } from './modules/catalog/catalog.module';
import { CustomersModule } from './modules/customers/customers.module';
import { CustomerAuthModule } from './modules/customer-auth/customer-auth.module';
import { SalesExpertAppModule } from './modules/sales-expert-app/sales-expert-app.module';
import { CustomerProfileModule } from './modules/customer-profile/customer-profile.module';
import { CustomerFavoritesModule } from './modules/customer-favorites/customer-favorites.module';
import { CustomerReportModule } from './modules/customer-report/customer-report.module';
import { SmsModule } from './modules/sms/sms.module';
import { OrdersModule } from './modules/orders/orders.module';
import { AccountingModule } from './modules/accounting/accounting.module';
import { AccountingSyncModule } from './modules/accounting-sync/accounting-sync.module';
import { PricingModule } from './modules/pricing/pricing.module';
import { AuthModule } from './modules/auth/auth.module';
import { IamModule } from './modules/iam/iam.module';
import { AdminSessionModule } from './modules/sessions/admin-session.module';
import { AdminTableModule } from './modules/admin-table/admin-table.module';
import { AdminOrdersModule } from './modules/admin-orders/admin-orders.module';
import { AdminCitiesModule } from './modules/admin-cities/admin-cities.module';
import { AdminPreOrdersModule } from './modules/admin-preorders/admin-preorders.module';
import { AdminWorkshopsModule } from './modules/admin-workshops/admin-workshops.module';
import { AdminCustomersModule } from './modules/admin-customers/admin-customers.module';
import { AdminCommentsModule } from './modules/admin-comments/admin-comments.module';
import { AdminProductsModule } from './modules/admin-products/admin-products.module';
import { AdminCategoriesModule } from './modules/admin-categories/admin-categories.module';
import { AdminDocumentsModule } from './modules/admin-documents/admin-documents.module';
import { AdminPromotionsModule } from './modules/admin-promotions/admin-promotions.module';
import { AdminUsersModule } from './modules/admin-users/admin-users.module';
import { AdminBranchesModule } from './modules/admin-branches/admin-branches.module';
import { AdminInvoicesModule } from './modules/admin-invoices/admin-invoices.module';
import { AdminMiscModule } from './modules/admin-misc/admin-misc.module';
import { AdminUploadsModule } from './modules/admin-uploads/admin-uploads.module';
import { AdminDashboardModule } from './modules/admin-dashboard/admin-dashboard.module';
import { AdminReportModule } from './modules/admin-report/admin-report.module';
import { SalesAgentModule } from './modules/sales-agent/sales-agent.module';
@Module({
imports: [
// Inert unless IAM_ENABLED=true — see modules/iam/README.md
IamModule,
AdminSessionModule,
PrismaModule,
AuthModule,
AdminTableModule,
AdminOrdersModule,
AdminCitiesModule,
AdminPreOrdersModule,
AdminWorkshopsModule,
AdminCustomersModule,
AdminCommentsModule,
AdminProductsModule,
AdminCategoriesModule,
AdminDocumentsModule,
AdminPromotionsModule,
AdminUsersModule,
AdminBranchesModule,
AdminInvoicesModule,
AdminMiscModule,
AdminUploadsModule,
AdminDashboardModule,
AdminReportModule,
CatalogModule,
CustomersModule,
SmsModule,
CustomerAuthModule,
SalesExpertAppModule,
CustomerProfileModule,
CustomerFavoritesModule,
CustomerReportModule,
SalesAgentModule,
OrdersModule,
AccountingModule,
// Tahesab / Zarrin integration (D27) — inert until switched on in the admin panel
AccountingSyncModule,
PricingModule,
],
})
export class AppModule {}