UNPKG

@ts4ocds/core

Version:

TS4OCDS is a library of TypeScript entities that takes an approach to befriend large OCDS JSONs with your per-project routine of writing whole lotta interfaces for them.

52 lines (43 loc) 1.59 kB
/** * @packageDocumentation * @module Standard.Item */ import { Initializable } from '@ts4ocds/utils'; import { ItemClassificationScheme } from './item-classification-scheme'; import type { Unit } from '../unit'; import type { Classification } from '../classification'; /** * A good, service, or work to be contracted. * * @param S * The scheme or codelist from which the {@link Classification.id | classification code} is taken. * For line item {@link Item.classification | classifications}, * this uses the open [itemClassificationScheme](https://standard.open-contracting.org/1.1/en/schema/codelists/#item-classification-scheme) codelist. */ export class Item<S extends ItemClassificationScheme = ItemClassificationScheme> extends Initializable<Item> { /** * A local identifier to reference and merge the items by. * Must be unique within a given array of items. */ public id!: string | number; /** * A description of the goods, services to be provided. */ public description?: string; /** * The primary {@link Classification | classification} for the item. */ public classification?: Classification<S | string>; /** * An array of additional {@link Classification | classifications} for the item. */ public additionalClassifications?: Classification<S | string>[]; /** * A description of the {@link Unit.Unit | unit} in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price. */ public unit?: Unit; /** * The number of units to be provided. */ public quantity?: number; }