Demo

Builtin Services

Core services from @quan-erp/shared-backend-core that plugins reuse via dependency injection. Prefer these over re-implementing users, partners, files, settings, and notifications.

How to inject

Use @Inject(ServiceClass, ContainerRegistryManager.BUILTIN_PLUGIN) on a class property so the service resolves from the core/builtin container — not your plugin’s local DI. Constructor injection is not supported.

TSXinject
1import { 2 Service, 3 Inject, 4 ContainerRegistryManager, 5 UserService, 6 NotificationService, 7} from "@quan-erp/shared-backend-core"; 8 9@Service() 10export class MyPluginService { 11 @Inject(UserService, ContainerRegistryManager.BUILTIN_PLUGIN) 12 private userService: UserService; 13 14 @Inject(NotificationService, ContainerRegistryManager.BUILTIN_PLUGIN) 15 private notificationService: NotificationService; 16}

Catalog

Each page documents the public class methods (signatures, parameters, and examples). Open a service for the full API.

  • PartnerService — customers / suppliers (getPartner, create, update, …)
  • UserService — users, sign-in, tokens, devices
  • NotificationService — send, inbox, markRead
  • FileService — addFile, findFile, pre-signed URLs
  • SettingService — get / set typed settings
  • BranchService — branches and markDefault
  • CurrencyService / CurrencyExchangeService — currencies and rates
  • DeveloperConfigService — public/private plugin config (not a generic get)
  • ChangeLogService — activity feed per plugin + reference (addChangeLog, getChangeLogs, reactions)
  • CronJobService — Redis cron schedules (see Cron job)

Rules

  • Always pass ContainerRegistryManager.BUILTIN_PLUGIN as the second @Inject argument for core services
  • Import service classes from @quan-erp/shared-backend-core
  • Do not copy builtin tables or re-wrap the same APIs in your plugin unless you are extending behavior