Inject
TSXinject
1import {
2 ChangeLogService,
3 ContainerRegistryManager,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class MyPluginService {
10 @Inject(ChangeLogService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private changeLogService: ChangeLogService;
12}Reference key
Entry တိုင်းကို အကွက် သုံးခုဖြင့် scope သတ်မှတ်ပါသည်။
- pluginName — ပုံမှန်အားဖြင့် metadata.name
- referencePrefix — entity အမျိုးအစား (ဥပမာ "SO", "currency")
- referenceNumber — record id / code (string)
Write method များ
- addChangeLog(params) — entry တစ်ခု ထည့်ပါသည်; replyToId ဖြင့် reply; passive: true ဖြင့် parent author သို့ အသိပေးပါသည်
- addChangeLogs(params) — အစုလိုက် ထည့်သွင်းပါသည်
- ChangeLogDto — message၊ pluginName၊ referencePrefix၊ referenceNumber မဖြစ်မနေ လိုအပ်ပါသည်
TSXaddChangeLog
1import {
2 ChangeLogService,
3 ContainerRegistryManager,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7import metadata from "../../module.metadata.json" with { type: "json" };
8
9@Service()
10export class OrderChangeLogService {
11 @Inject(ChangeLogService, ContainerRegistryManager.BUILTIN_PLUGIN)
12 private changeLogService: ChangeLogService;
13
14 async onCreated(orderId: number, userId?: number) {
15 await this.changeLogService.addChangeLog({
16 data: {
17 pluginName: metadata.name,
18 referencePrefix: "SO",
19 referenceNumber: String(orderId),
20 message: `Sales order #${orderId} created.`,
21 isCreatedBySystem: !userId,
22 createdBy: userId,
23 metadata: { action: "create" },
24 },
25 });
26 }
27}Read method
- getChangeLogs({ pluginName, referencePrefix, referenceNumber, parentId?, skip, limit }) — feed
- parentId မပေးပါက → root entries; parentId ပေးပါက → ထို entry အောက်ရှိ replies
- reactions နှင့် replyCount ပါဝင်ပါသည်
TSXgetChangeLogs
1import {
2 ChangeLogService,
3 ContainerRegistryManager,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7import metadata from "../../module.metadata.json" with { type: "json" };
8
9@Service()
10export class OrderChangeLogService {
11 @Inject(ChangeLogService, ContainerRegistryManager.BUILTIN_PLUGIN)
12 private changeLogService: ChangeLogService;
13
14 async list(orderId: number) {
15 return this.changeLogService.getChangeLogs({
16 pluginName: metadata.name,
17 referencePrefix: "SO",
18 referenceNumber: String(orderId),
19 skip: 0,
20 limit: 20,
21 });
22 }
23}Reaction method များ
- addReaction(params) — reaction ထည့်ပါသည်
- removeReaction({ id, removeByUserId }) — user ၏ reaction ကို ဖယ်ရှားပါသည်
Frontend
Base frontend မှ ChangeLog component / hooks များကို detail စာမျက်နှာတွင် အသုံးပြုရပါသည်။