@aptly-as/types
Version:
Aptly types and enums
57 lines (56 loc) • 2.57 kB
TypeScript
import { AptlyCurrency, AptlyQuantityUnitCode } from '../enums/index.js';
import { AptlyAlgorithmPipelineDataItemSchema, AptlyPrice } from './algorithm.js';
import { AptlyBaseSchema } from './extends.js';
import { AptlyOfferSchema } from './offer.js';
import { AptlyOptionPopulatedSchema, AptlyOptionSchema } from './option.js';
import { AptlyOrderSchema } from './order.js';
import { AptlyOrganizationSchema } from './organization.js';
import { AptlyItemSchema } from './item.js';
import { AptlyProducerSchema } from './producer.js';
import { AptlyProjectSchema } from './project.js';
import { AptlyCategorySchema } from './category.js';
import { AptlyUnitSchema } from './unit.js';
import { AptlyDocumentSchema } from './document';
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>;
unit: ID | AptlyUnitSchema<ID, DATE>;
option: ID | AptlyOptionSchema<ID, DATE>;
category: ID | AptlyCategorySchema<ID, DATE> | null;
producer: ID | AptlyProducerSchema<ID, DATE> | null;
offer: ID | AptlyOfferSchema<ID, DATE> | 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> = Omit<AptlyPickSchema<ID, DATE>, 'option'> & AptlyPickConfirmedFieldsSchema<ID, DATE> & {
option: AptlyOptionPopulatedSchema<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>[];
}