import { IEntitiesSearchResults } from "../models"; import { IEntityVersionsSearchRequest, IEntityVersionsSearchResponse } from "../models/versioning"; import { IEntitiesDeleteParameters } from "./commands"; import { SortingType } from "./common"; import { EntitiesExportInput, EntitiesExportResult, EntitiesSampleDownloadOptions, EntitiesSampleDownloadResult } from "./export"; import { EntitiesImportInput, EntitiesImportResult } from "./import"; import { EntitiesParseInput, EntitiesParseResult } from "./parse"; import { IEntitiesSearchQueryOptions, IEntityGetQueryOptions } from "./queries"; import { IEntitySearchParameters, ISearchFilters } from "./searchParameters"; import { IEntityFacets } from "./searchResults"; export interface IEntityCreateAction { execute(input: TEntityCreateDto): Promise; } export interface IEntityDeleteAction { execute(id: TEntityId): Promise; } export interface IEntitiesDeleteAction, TSorting> { execute(params: TEntitiesDeleteParameters): Promise; } export interface IEntityGetActionOptions> extends IEntityGetQueryOptions { } export interface IEntityGetAction> { execute(id: TEntityId, options?: IEntityGetActionOptions): Promise; } export interface IEntityExistsAction { execute(filters: TEntityFilters): Promise; } export interface IEntitiesCountAction { execute(filters: TEntityFilters): Promise; } export interface IEntityUpdateAction { execute(id: TEntityId, data: TEntityUpdateDto): Promise; } export interface IEntityUpsertAction { execute(id: TEntityId, input: TEntityUpdateDto): Promise; } export interface IEntitiesSearchActionOptions, TListItemDto> extends IEntitiesSearchQueryOptions { converter?: (item: TEntity) => TListItemDto; } export interface IEntitiesSearchAction, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> { execute(request: TEntitySearchParameters, options?: IEntitiesSearchActionOptions): Promise>; } export interface IEntitiesExportAction, TSorting extends SortingType, TCursor> { execute(input: EntitiesExportInput): Promise; } export interface IEntitiesImportAction { execute(input: EntitiesImportInput): Promise; } export interface IEntitiesParseAction { execute(input: EntitiesParseInput): Promise>; } export interface IEntitiesSampleDownloadAction { execute(input: EntitiesSampleDownloadOptions): Promise; } export interface IEntityVersionsSearchAction { execute(request: IEntityVersionsSearchRequest): Promise>; } export interface IEntityActions, TEntitySearchParameters extends IEntitySearchParameters, TSorting extends SortingType, TCursor, TFacets extends IEntityFacets> { get get(): IEntityGetAction; get search(): IEntitiesSearchAction; get exists(): IEntityExistsAction>; get count(): IEntitiesCountAction>; get create(): IEntityCreateAction; get update(): IEntityUpdateAction; get upsert(): IEntityUpsertAction; get delete(): IEntityDeleteAction; get deleteItems(): IEntitiesDeleteAction; get export(): IEntitiesExportAction; get import(): IEntitiesImportAction; get parse(): IEntitiesParseAction; get sampleDownload(): IEntitiesSampleDownloadAction; get versions(): IEntityVersionsSearchAction; }