UNPKG

@aptly-as/types

Version:
80 lines (79 loc) 2.59 kB
import { AptlyDocumentSchema } from './document.js'; import { AptlyBaseSchema, AptlyDBCrawlerCleaner, AptlyHistorySchema } from './extends.js'; import { AptlyMediaSrcSchema } from './media.js'; import { AptlyProducerSchema } from './producer.js'; import { AptlyTagSchema } from './tag.js'; export type AptlyProduct = AptlyProductSchema<string, string>; export interface AptlyProductSchema<ID, DATE> extends AptlyDBCrawlerCleaner, AptlyBaseSchema<ID, DATE>, AptlyHistorySchema<ID, DATE> { searchableName: string; organization?: ID; project?: ID; base?: boolean; extends?: ID | AptlyProductSchema<ID, DATE>; productNumber: string; itemNumber?: string; eanNumber?: string; gtin?: string; description: string; images: AptlyProductImageSchema<ID, DATE>[]; variants: AptlyProductVariantSchema<ID, DATE>[]; products?: (ID | AptlyProductSchema<ID, DATE>)[]; url?: string; color?: string; colorLabel?: string; series?: string; style?: string; width?: string; height?: string; length?: string; depth?: string; volume?: string; circumference?: string; material?: string; unitCost?: number; netCost?: number; producer?: ID | AptlyProducerSchema<ID, DATE> | null; supplier?: ID; tags: (ID | AptlyTagSchema<ID, DATE>)[]; documents: (ID | AptlyDocumentSchema<ID, DATE>)[]; createdBy: ID; stats?: any; importID?: ID; source?: string; title?: string; likes: { user: ID; date: DATE; }[]; created: DATE; } export type AptlyProductImage = AptlyProductImageSchema<string, string>; export interface AptlyProductImageSchema<ID, DATE> extends AptlyMediaSrcSchema<ID, DATE> { image: string; description?: string; featured?: boolean; } export type AptlyProductVariant = AptlyProductVariantSchema<string, string>; export interface AptlyProductVariantSchema<ID, DATE> { _id: ID; title?: string; images: AptlyProductImageSchema<ID, DATE>[]; documents: (ID | AptlyDocumentSchema<ID, DATE>)[]; name?: string; description?: string; productNumber?: string; color?: string; colorLabel?: string; series?: string; material?: string; style?: string; width?: string; height?: string; length?: string; unitCost?: number; } export type AptlyProductImport = AptlyProductImportSchema<string, string>; export interface AptlyProductImportSchema<ID, DATE> extends Partial<Omit<AptlyProductSchema<ID, DATE>, 'images' | 'documents'>> { images: string[]; documents: string[]; }