Demo

SettingService

ERP shell နှင့် plugin များတွင် အသုံးပြုသော user-specific နှင့် system-wide setting များကို စီမံပါသည်။ SettingDataType ဖြင့် အမျိုးအစား သတ်မှတ်ပါသည်။

Inject

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

Write method များ

set / setMany သည် ServiceProps နှင့် data ကို လက်ခံပါသည်။ datatype မှာ string | number | boolean | json | date ဖြစ်ပါသည်။

  • set({ data: { key, value, datatype, userId?, isPublic? } }) — setting တစ်ခုကို upsert လုပ်ပါသည်
  • setMany({ data: Record<...> }) — key အများအပြားကို တစ်ကြိမ်တည်း သတ်မှတ်ပါသည်
TSXset
1import { 2 ContainerRegistryManager, 3 Inject, 4 Service, 5 SettingService, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class ThemeSettingService { 10 @Inject(SettingService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private settingService: SettingService; 12 13 async saveTheme(userId: number, theme: string) { 14 await this.settingService.set({ 15 data: { 16 key: "ui.theme", 17 value: theme, 18 datatype: "string", 19 userId, 20 isPublic: false, 21 }, 22 }); 23 } 24}

Read method များ

  • get(key, { userId?, isPublic? }) — setting တစ်ခု ဖတ်ပါသည်
  • getAll(userId) — user နှင့် global setting အားလုံး
  • getPublicSettings() — public ဟု မှတ်ထားသော setting များ
TSXget
1import { 2 ContainerRegistryManager, 3 Inject, 4 Service, 5 SettingService, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class ThemeSettingService { 10 @Inject(SettingService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private settingService: SettingService; 12 13 async loadTheme(userId: number) { 14 return this.settingService.get("ui.theme", { userId }); 15 } 16 17 async allForUser(userId: number) { 18 return this.settingService.getAll(userId); 19 } 20}