UNPKG

@aptly-as/types

Version:
53 lines (52 loc) 1.93 kB
import type { CompleteMultipartUploadOutput } from '@aws-sdk/client-s3'; import { AptlyDocumentAccess, AptlyDocumentType } from '../enums/index.js'; import { AptlyBaseSchema, AptlyDBCrawlerCleaner } from './extends.js'; import { AptlyProductSchema } from './product.js'; import { AptlyOrganizationSchema } from './organization'; export type AptlyDocument = AptlyDocumentSchema<string, string>; export interface AptlyDocumentSchema<ID, DATE> extends Omit<AptlyBaseSchema<ID, DATE>, 'archived'>, AptlyDBCrawlerCleaner { mime: string; access?: AptlyDocumentAccess; _type: AptlyDocumentType; data: string; organization: ID | AptlyOrganizationSchema<ID, DATE> | null; project: ID | null; unit: ID | null; offer: ID | null; option: ID | null; product: ID | AptlyProductSchema<ID, DATE> | null; text?: string; size: number; thirdPartyUploader: string | null; thirdPartyId: string | null; public_id?: string; external_url?: string; uploadSignature?: string; boligmappaStatus?: AptlyDocumentSchemaBoligmappaStatusSchema<ID>[]; chunks?: (AptlyDocumentSchema<ID, DATE> | ID)[]; s3: AptlyDocumentS3; previews: AptlyDocumentPreviewSchema<ID, DATE>[]; isPasswordProtected?: boolean; expires?: DATE | null; downloadToken?: string; previewUrl?: string; created: DATE; } export interface AptlyDocumentPreviewSchema<ID, DATE> { _id: ID; contentType: string; name: string; height: number; width: number; size: number; s3: AptlyDocumentS3; createdAt: DATE; } export type AptlyDocumentS3 = Pick<CompleteMultipartUploadOutput, 'Bucket' | 'Key' | 'Location' | 'ETag' | 'Expiration'>; export type AptlyDocumentSchemaBoligmappaStatus = AptlyDocumentSchemaBoligmappaStatusSchema<string>; export interface AptlyDocumentSchemaBoligmappaStatusSchema<ID> { _id: ID; unit: ID; id?: number; errorCode?: number; }