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); } }