import { NullOr } from '../../../../utilities'; import { MoneyValue } from './MoneyValue'; import { Result } from './Result'; export interface IUnitPriceProps { amount: NullOr; currencyCode?: string; precision: number; } export class UnitPrice extends MoneyValue { public static create(props: IUnitPriceProps) { const {amount, currencyCode, precision = 4} = props; const _unitPriceOrError = MoneyValue.create({ amount, currencyCode, precision, }); if (_unitPriceOrError.isFailure) { return _unitPriceOrError; } const _unitPrice = _unitPriceOrError.object.convertPrecision(4); return Result.ok(_unitPrice); } }