///
export type MediaUploadInput = {
fileName: string;
content: Buffer;
contentType?: string;
folderId?: string;
};
export type MediaReference = {
ref: string;
};
export type MediaItemReference = {
id: string;
ref: string;
folderId?: string;
};
export type IMediaProvider = {
mediaUpload(input: MediaUploadInput): Promise;
mediaDelete(input: MediaReference): Promise;
mediaDownload(input: MediaReference): Promise;
getFileName(input: MediaReference): string;
getProviderId(): string;
};
export type MediaReferenceRecord = {
id: string;
ref: string;
folderId?: string;
createdOn: Date;
updatedOn: Date;
};
export type MediaReferenceCreateInput = {
media: MediaReference;
fileName: string;
contentType?: string;
folderId?: string;
providerId: string;
};
export type IMediaReferenceRepository = {
getReference(file: MediaReference): Promise;
createReference(input: MediaReferenceCreateInput): Promise;
updateReferenceFolder(file: MediaReference, folderId: string | undefined): Promise;
deleteReference(file: MediaReference): Promise;
getFolderReferences(folderId?: string): Promise;
};
export type MediaFolderRecord = {
id: string;
name: string;
createdOn: Date;
updatedOn: Date;
};
export type IMediaFolderRepository = {
folderCreate(input: {
name: string;
parentId?: string;
organizationId?: string;
}): Promise;
folderRename(id: string, name: string): Promise;
folderMove(id: string, parentId?: string): Promise;
folderDelete(id: string): Promise;
foldersList(parentId?: string): Promise;
folderFind(name: string, parentId?: string): Promise;
};
export type MediaFolderCreateInput = {
folderName: string;
parentId?: string;
organizationId?: string;
};
export type MediaFolderReference = {
id: string;
name: string;
};
export type MediaFolderRenameInput = {
id: string;
folderName?: string;
};
export type MediaFolderMoveInput = {
id: string;
folderId?: string;
};
export type MediaInfo = {
ref: string;
fileName: string;
};
export type MediaFolderEnsureInput = {
path: string[];
organizationId?: string;
};
export type IMediaLibraryManager = {
mediaUpload(input: MediaUploadInput): Promise;
mediaDelete(input: MediaReference): Promise;
mediaDownload(input: MediaReference): Promise;
folderEnsure(input: MediaFolderEnsureInput): Promise;
folderCreate(input: MediaFolderCreateInput): Promise;
folderDelete(input: MediaFolderReference): Promise;
folderMove(input: MediaFolderMoveInput): Promise;
folderRename(input: MediaFolderRenameInput): Promise;
foldersList(parent?: MediaFolderReference): Promise;
getFolderMedia(input: MediaFolderReference): Promise;
};