Presupuestador_web/shared/lib/contexts/common/domain/entities/UnitPrice.ts
2024-04-23 17:29:38 +02:00

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