import { AptlyDocumentSchema } from './document.js'; import { AptlyBaseSchema, AptlyDBCrawlerCleaner, AptlyHistorySchema } from './extends.js'; import { AptlyMediaSrcSchema } from './media.js'; import { AptlyPriceSchema } from './price.js'; import { AptlyProducerSchema } from './producer.js'; import { AptlyDatabase, AptlyQuantityUnitCode } from '../enums/index.js'; export type AptlyProduct = AptlyProductSchema; export interface AptlyProductSchema extends AptlyDBCrawlerCleaner, AptlyBaseSchema, AptlyHistorySchema { organization?: ID | null; project?: ID | null; extends?: ID | AptlyProductSchema; status: AptlyProductStatus; database: AptlyDatabase; productNumber: string; itemNumber?: string; gtin?: string; gtins: string[]; description: string; technicalDescription: string; images: AptlyProductImageSchema[]; products?: (ID | AptlyProductSchema)[]; url?: string; color?: string; colorLabel?: string; series?: string; style?: string; width?: string; height?: string; length?: string; depth?: string; volume?: string; circumference?: string; material?: string; baseQuantity: number; quantityUnitCode: AptlyQuantityUnitCode; unitCost?: number; netCost?: number; producer?: ID | AptlyProducerSchema | null; producerName: string; tags: string[]; documents: (ID | AptlyDocumentSchema)[]; createdBy: ID; importID?: ID; source?: string; title?: string; efoImageUrl?: string; efoFDVUrl?: string; nobbImageUrl?: string; nobbFDVUrl?: string; variants: AptlyProductVariantSchema[]; created: DATE; } export declare enum AptlyProductStatus { None = 0, Active = 1, Expired = 2 } export type AptlyProductImage = AptlyProductImageSchema; export interface AptlyProductImageSchema extends AptlyMediaSrcSchema { image: string; description?: string; featured?: boolean; } export type AptlyProductVariant = AptlyProductVariantSchema; export interface AptlyProductVariantSchema { _id: ID; title?: string; images: AptlyProductImageSchema[]; documents: (ID | AptlyDocumentSchema)[]; 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; export interface AptlyProductImportSchema extends Partial, 'images' | 'documents'>> { images: string[]; documents: string[]; } export type AptlyProductWithPrice = AptlyProductWithPriceSchema; export interface AptlyProductWithPriceSchema extends AptlyProductSchema { price?: AptlyPriceSchema; }