29 lines
705 B
TypeScript
29 lines
705 B
TypeScript
import { NullOr } from '../../../../utilities';
|
|
import { MoneyValue } from './MoneyValue';
|
|
import { Result } from './Result';
|
|
|
|
export interface IUnitPriceProps {
|
|
amount: NullOr<number | string>;
|
|
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>(_unitPrice);
|
|
}
|
|
}
|