import { Repository } from 'typeorm'; import { BaseModel } from '@/common/BaseModel'; import { ModelConfig, ModelConfigProvider } from '@/common/config'; import { Stream } from '@/stream/entity/Stream'; import { StreamEvent } from '@/stream/entity/StreamEvent'; import { StreamProcessor } from '@/stream/entity/StreamProcessor'; export class StreamModel extends BaseModel { stream: Repository; streamEvent: Repository; streamProcessor: Repository; protected constructor(configProvider: ModelConfigProvider) { super(configProvider, [Stream, StreamEvent, StreamProcessor]); } protected async init() { await super.init(); this.stream = this.dataSource.getRepository(Stream); this.streamEvent = this.dataSource.getRepository(StreamEvent); this.streamProcessor = this.dataSource.getRepository(StreamProcessor); } static async New(config: ModelConfig) { const stream = new StreamModel(config); await stream.init(); return stream; } }