@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.
49 lines (40 loc) • 1.66 kB
text/typescript
/**
* @packageDocumentation
* @module Standard.Unit
*/
import { Initializable } from '@ts4ocds/utils';
import type { Value } from '../value';
import type { UnitClassificationScheme } from './unit-classification-scheme';
/**
* A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.
*
* @param S
* The list from which {@link Unit.id | identifiers} for units of measure are taken,
* using the open [unitClassificationScheme](https://standard.open-contracting.org/1.1/en/schema/codelists/#unit-classification-scheme) codelist.
* _'UNCEFACT'_ is recommended.
*/
export class Unit<S extends UnitClassificationScheme = UnitClassificationScheme> extends Initializable<Unit<S>> {
/**
* The identifier from the codelist referenced in the {@link Unit.scheme | scheme} property.
* Check the {@link UnitClassificationScheme | codelist} for details of how to find and use identifiers from the {@link Unit.scheme | scheme} in use.
*/
public id?: string;
/**
* The {@link UnitClassificationScheme | list} from which identifiers for units of measure are taken,
* using the open [unitClassificationScheme](https://standard.open-contracting.org/1.1/en/schema/codelists/#unit-classification-scheme) codelist.
* _'UNCEFACT'_ is recommended.
*/
public scheme?: S | string;
/**
* The monetary {@link Value.Value | value} of a single unit.
*/
public value?: Value;
/**
* Name of the unit.
*/
public name?: string;
/**
* The machine-readable URI for the unit of measure, provided by the {@link Unit.scheme | scheme}.
*/
public uri?: string;
}