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 မလုပ်ရပါ — အပြုအမူ တိုးချဲ့မှသာ ခွင့်ပြုပါသည်