import { Repository } from 'typeorm'; import { BaseModel } from '@/common/BaseModel'; import { ModelConfig, ModelConfigProvider } from '@/common/config'; import { FillerInfo } from '@/sync/entity/FillerInfo'; import { PendingRawTransaction } from '@/sync/entity/PendingRawTransaction'; import { RawTransaction } from '@/sync/entity/RawTransaction'; import { SuiObject } from '@/sync/entity/SuiObject'; export class SyncModel extends BaseModel { rawTransaction: Repository; suiObject: Repository; fillerInfo: Repository; pendingRawTransaction: Repository; protected constructor(configProvider: ModelConfigProvider) { super(configProvider, [RawTransaction, SuiObject, FillerInfo, PendingRawTransaction]); } protected async init() { await super.init(); this.rawTransaction = this.dataSource.getRepository(RawTransaction); this.suiObject = this.dataSource.getRepository(SuiObject); this.fillerInfo = this.dataSource.getRepository(FillerInfo); this.pendingRawTransaction = this.dataSource.getRepository(PendingRawTransaction); } static async New(config: ModelConfig) { const sync = new SyncModel(config); await sync.init(); return sync; } }