Demo

Builtin Services

@quan-erp/shared-backend-core မှ core service များကို DI ဖြင့် ပြန်လည်အသုံးပြုရပါသည်။ User၊ partner၊ file၊ setting နှင့် notification များကို ကိုယ်တိုင် ပြန်မရေးရပါ။

Inject လုပ်နည်း

Class property ပေါ်တွင် @Inject(ServiceClass, ContainerRegistryManager.BUILTIN_PLUGIN) ကို အသုံးပြုရပါသည် — core/builtin container မှ resolve ဖြစ်ပြီး၊ plugin ၏ local DI မဟုတ်ပါ။ Constructor injection ကို မထောက်ပံ့ပါ။

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

စာမျက်နှာတိုင်းတွင် public class method များ (signature၊ parameter၊ နမူနာ) ကို မှတ်တမ်းတင်ထားပါသည်။

  • PartnerService — customer / supplier (getPartner, create, update, …)
  • UserService — user၊ sign-in၊ token၊ device
  • NotificationService — send, inbox, markRead
  • FileService — addFile, findFile, pre-signed URL
  • SettingService — typed setting get / set
  • BranchService — branch နှင့် markDefault
  • CurrencyService / CurrencyExchangeService — currency နှင့် rate
  • DeveloperConfigService — public/private plugin config (generic get မဟုတ်ပါ)
  • ChangeLogService — plugin + reference activity feed
  • CronJobService — Redis cron (Cron job စာမျက်နှာကို ကြည့်ပါ)

စည်းကမ်းများ

  • Core service များအတွက် @Inject ၏ ဒုတိယ argument အဖြစ် ContainerRegistryManager.BUILTIN_PLUGIN ကို အမြဲ ပေးရပါသည်
  • Service class များကို @quan-erp/shared-backend-core မှ import လုပ်ရပါသည်
  • Builtin ဇယားများကို ကူးယူမထားရပါ၊ တူညီသော API များကို wrap မလုပ်ရပါ — အပြုအမူ တိုးချဲ့မှသာ ခွင့်ပြုပါသည်