import { CollectionDTO } from '../dtos/CollectionDTO'; import { FeaturedItemsDTO } from '../dtos/FeaturedItemsDTO'; import { Collection } from '../models/Collection'; import { CollectionFacet } from '../models/CollectionFacet'; import { FeaturedItem } from '../models/FeaturedItem'; import { CollectionItemSubset } from '../models/CollectionItemSubset'; import { MyDataCollectionItemSubset } from '../models/MyDataCollectionItemSubset'; import { CollectionSearchCriteria } from '../models/CollectionSearchCriteria'; import { CollectionUserPermissions } from '../models/CollectionUserPermissions'; import { PublicationStatus } from '../../../core/domain/models/PublicationStatus'; import { CollectionItemType } from '../../../collections/domain/models/CollectionItemType'; import { CollectionLinks } from '../models/CollectionLinks'; import { CollectionSummary } from '../models/CollectionSummary'; import { LinkingObjectType } from '../useCases/GetCollectionsForLinking'; export interface ICollectionsRepository { getCollection(collectionIdOrAlias: number | string): Promise; createCollection(collectionDTO: CollectionDTO, parentCollectionId: number | string): Promise; publishCollection(collectionIdOrAlias: number | string): Promise; deleteCollection(collectionIdOrAlias: number | string): Promise; getCollectionFacets(collectionIdOrAlias: number | string): Promise; getCollectionUserPermissions(collectionIdOrAlias: number | string): Promise; getCollectionItems(collectionId?: string, limit?: number, offset?: number, collectionSearchCriteria?: CollectionSearchCriteria, searchServiceName?: string, showTypeCounts?: boolean): Promise; getMyDataCollectionItems(roleIds: number[], collectionItemTypes: CollectionItemType[], publicationStatuses: PublicationStatus[], limit?: number, selectedPage?: number, searchText?: string, otherUserName?: string): Promise; updateCollection(collectionIdOrAlias: number | string, updatedCollection: CollectionDTO): Promise; getCollectionFeaturedItems(collectionIdOrAlias: number | string): Promise; updateCollectionFeaturedItems(collectionIdOrAlias: number | string, featuredItemDTOs: FeaturedItemsDTO): Promise; deleteCollectionFeaturedItems(collectionIdOrAlias: number | string): Promise; deleteCollectionFeaturedItem(featuredItemId: number): Promise; linkCollection(linkedCollectionIdOrAlias: number | string, linkingCollectionIdOrAlias: number | string): Promise; unlinkCollection(linkedCollectionIdOrAlias: number | string, linkingCollectionIdOrAlias: number | string): Promise; getCollectionLinks(collectionIdOrAlias: number | string): Promise; getCollectionsForLinking(objectType: LinkingObjectType, id: number | string, searchTerm: string, alreadyLinked: boolean): Promise; }