UNPKG

@aptly-as/types

Version:
58 lines (57 loc) 2.62 kB
import { AptlyCurrency, AptlyQuantityUnitCode } from '../enums/index.js'; import { AptlyAlgorithmPipelineDataItemSchema, AptlyPrice } from './algorithm.js'; import { AptlyCategorySchema } from './category.js'; import { AptlyDocumentSchema } from './document'; import { AptlyBaseSchema } from './extends.js'; import { AptlyItemSchema } from './item.js'; import { AptlyOfferSchema } from './offer.js'; import { AptlyOptionSchema } from './option.js'; import { AptlyOrderSchema } from './order.js'; import { AptlyOrganizationSchema } from './organization.js'; import { AptlyProducerSchema } from './producer.js'; import { AptlyProductSchema } from './product.js'; import { AptlyProjectSchema } from './project.js'; import { AptlyUnitSchema } from './unit.js'; export type AptlyPick = AptlyPickSchema<string, string>; export interface AptlyPickSchema<ID, DATE> extends Pick<AptlyBaseSchema<ID, DATE>, '_id' | 'archived' | 'createdAt' | 'updatedAt'> { organization: ID | AptlyOrganizationSchema<ID, DATE>; project: ID | AptlyProjectSchema<ID, DATE> | null; unit: ID | AptlyUnitSchema<ID, DATE> | null; option: ID | AptlyOptionSchema<ID, DATE> | null; product: ID | AptlyProductSchema<ID, DATE> | null; category: ID | AptlyCategorySchema<ID, DATE> | null; producer: ID | AptlyProducerSchema<ID, DATE> | null; offer: ID | AptlyOfferSchema<ID, DATE> | null; package: ID | null; offerItem: ID | null; order: ID | AptlyOrderSchema<ID, DATE> | null; period: ID | null; index: number; quantity?: number; note: string; invoicedQuantity?: number | null; quantityUnitCode?: AptlyQuantityUnitCode | null; extensionAmount?: number | null; extensionVatAmount?: number | null; currency?: AptlyCurrency | null; item: AptlyItemSchema<ID, DATE> | null; price: AptlyPrice | null; algorithm: ID | null; documents: (ID | AptlyDocumentSchema<ID, DATE>)[]; pipeline?: AptlyAlgorithmPipelineDataItemSchema<ID>[]; confirmedAt: DATE | null; } export type AptlyPickConfirmed = AptlyPickConfirmedSchema<string, string>; export type AptlyPickConfirmedSchema<ID, DATE> = AptlyPickSchema<ID, DATE> & AptlyPickConfirmedFieldsSchema<ID, DATE>; export interface AptlyPickConfirmedFieldsSchema<ID, DATE> { item: AptlyItemSchema<ID, DATE>; confirmedAt: DATE; order: ID | AptlyOrderSchema<ID, DATE>; invoicedQuantity: number; quantityUnitCode: AptlyQuantityUnitCode; price: AptlyPrice; extensionAmount: number; extensionVatAmount: number; currency: AptlyCurrency; pipeline: AptlyAlgorithmPipelineDataItemSchema<ID>[]; }