import { IPagination } from '@metad/contracts'; import { DeepPartial, DeleteResult, FindManyOptions, FindOneOptions, UpdateResult, FindOptionsWhere } from 'typeorm'; import { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity'; import { ITryRequest } from './try-request'; export interface ICrudService { count(filter?: FindManyOptions): Promise; countBy(filter?: FindOptionsWhere): Promise; findAll(filter?: FindManyOptions): Promise>; findMyAll(filter?: FindManyOptions): Promise>; paginate(filter?: FindManyOptions): Promise>; findOneByIdString(id: string, options?: IFindOneOptions): Promise; findOneOrFailByIdString(id: string, options?: IFindOneOptions): Promise>; findOneByOptions(options: IFindOneOptions): Promise; findOneByWhereOptions(options: IFindWhereOptions): Promise; findOneOrFailByOptions(options: IFindOneOptions): Promise>; findOneOrFailByWhereOptions(options: IFindWhereOptions): Promise>; create(entity: DeepPartial, ...options: any[]): Promise; update(id: any, entity: QueryDeepPartialEntity, ...options: any[]): Promise; delete(id: any, ...options: any[]): Promise; softDelete(id: IDeleteCriteria, ...options: any[]): Promise; softRemove(id: string, ...options: any[]): Promise; softRecover(id: string, ...options: any[]): Promise; } export type IDeleteCriteria = string | number | FindOptionsWhere; export type IFindOneOptions = FindOneOptions; export type IFindWhereOptions = FindOptionsWhere;