import { Type } from '@nestjs/common'; import { DataSource, DeepPartial, FindOptionsWhere } from 'typeorm'; import { CaliobaseRequestUser } from '../auth'; import { CaliobaseFindOptions } from './createFindManyQueryParamClass'; export interface ICaliobaseServiceOptions { organization: { id: string; } | null; user: CaliobaseRequestUser; } export interface ICaliobaseService { create(create: TCreate, options: ICaliobaseServiceOptions): Promise; findAll(listOptions: CaliobaseFindOptions, options: ICaliobaseServiceOptions): Promise<{ items: TEntity[]; total: number; }>; findOne(findOptions: CaliobaseFindOptions, options: ICaliobaseServiceOptions): Promise; upsert(conditions: FindOptionsWhere, create: TUpdate, options: ICaliobaseServiceOptions): Promise; update(conditions: FindOptionsWhere, update: TUpdate, options: ICaliobaseServiceOptions): Promise; remove(conditions: FindOptionsWhere, options: ICaliobaseServiceOptions): Promise; } export interface ICaliobaseServiceType, TUpdate extends DeepPartial> { new (dataSource: DataSource): ICaliobaseService; Entity: Type; CreateDto: Type; UpdateDto: Type; }