Demo

Builtin Entities

@quan-erp/shared-backend-core မှ core entity များ ဖြစ်ပါသည်။ User၊ branch၊ partner၊ currency၊ media နှင့် platform config အတွက် ၎င်းတို့ကို ဦးစားပေးပြီး၊ plugin ဇယားမှ join လုပ်ရပါသည်။

Builtin များကို ဦးစားပေးပါ

User၊ branch၊ partner၊ currency၊ tag၊ notification သို့မဟုတ် media အတွက် ဇယားအသစ် မသတ်မှတ်မီ shared-backend-core မှ entity (နှင့် service) ကို import လုပ်ရပါသည်။ Domain-specific data အတွက်သာ ကိုယ်ပိုင် ဇယား ရေးသားရပါသည်။

  • @quan-erp/shared-backend-core မှ entity များကို import လုပ်ရပါသည်
  • Entity အားလုံးတွင် BaseEntity ကို extend လုပ်ရပါသည်
  • ManyToOne + JoinColumn ဖြင့် join လုပ်ရပါသည်; relation type အတွက် InstanceType<typeof EntityName> ကို အသုံးပြုရပါသည်

Domains

  • BaseEntity — create/update/soft-delete/version ကော်လံများ
  • Identity — UserEntity, RoleEntity, BranchEntity
  • Partner — PartnerEntity + shipping addresses
  • Currency — CurrencyEntity, CurrencyExchangeRateEnity
  • Units — UnitCategoryEntity, UnitEntity, conversions
  • Operations — NotifcationEntity, AuditLogEntity, TagEntity
  • Config — SettingEntity, EnvEntity, DeveloperConfigEntity
  • Plugins — PluginEntity, PluginRouteEntity, DataSeedHistoryEntity
  • Files — FileEntity

Plugin entity မှ join

TypeORM relation ဖြင့် core entity များကို ကိုးကားရပါသည်။ Circular import ရှောင်ရန် InstanceType<typeof …> ကို အသုံးပြုရပါသည်။

TSXjoin User + Branch
1import { 2 BaseEntity, 3 BranchEntity, 4 UserEntity, 5} from "@quan-erp/shared-backend-core"; 6import { 7 Column, 8 Entity, 9 JoinColumn, 10 ManyToOne, 11 PrimaryGeneratedColumn, 12} from "typeorm"; 13import metadata from "../../../../module.metadata.json" with { type: "json" }; 14 15@Entity(`${metadata.name}_order`) 16export class OrderEntity extends BaseEntity { 17 @PrimaryGeneratedColumn() 18 id: number; 19 20 @ManyToOne(() => UserEntity) 21 @JoinColumn({ name: "userId" }) 22 user: InstanceType<typeof UserEntity>; 23 24 @Column() 25 userId: number; 26 27 @ManyToOne(() => BranchEntity) 28 @JoinColumn({ name: "branchId" }) 29 branch: InstanceType<typeof BranchEntity>; 30 31 @Column() 32 branchId: number; 33}

သင့် plugin ဇယားများ

Domain ဇယား လိုအပ်ပါက TypeORM entity သတ်မှတ်ရပါသည် (metadata.name prefix၊ BaseEntity extend)၊ module တွင် plugin: "default" ဖြင့် မှတ်ပုံတင်ပြီး၊ migration ဖြင့် schema ပြောင်းရပါသည်။ Database နှင့် Migrations စာမျက်နှာများကို ကြည့်ပါ။