voucher-validator
Version:
This lib provide validator to check business rules for a voucher
133 lines (82 loc) • 1.94 kB
Markdown
# Voucher Validator
This lib validate vouchers.
---
## Installation
```sh
$ npm install voucher-validator
# OR
$ yarn add voucher-validator
```
## How to use
user document pattern:
- `372.061.670-39` or
- `37206167039`
```ts
import { Validator } from 'voucher-validator';
const validator = new Validator();
const isValid = validator.Validate({
userDocument: '372.061.670-39',
product: 'MY_PRODUCT',
voucher: myVoucher
});
console.log(isValid);
> true
```
Get total to pay with discount
```ts
import { Validator } from 'voucher-validator';
const validator = new Validator();
const total = 1000;
const totalToPay = validator.CalculateTotalWithDiscount(total, voucher10);
console.log(totalToPay);
> 900
```
Get total of discount
```ts
import { Validator } from 'voucher-validator';
const validator = new Validator();
const total = 1000;
const totalDiscount = validator.GetDiscount(total, voucher10);
console.log(totalDiscount);
> 100
```
OR another option to validate voucher
```ts
import { VoucherValidator } from 'voucher-validator';
const validator = new VoucherValidator({
userDocument: '372.061.670-39',
product: 'MY_PRODUCT'
});
const isValid = validator.isSatisfiedBy(myVoucher);
console.log(isValid);
> true
```
## Validations
- IsUsedVoucher
- IsOnRangeDate start date less than current and end date greater then current
- IsNominal and UserDocument Match
- IsValidProduct
- IsVoucherDeleted
## Types
Voucher types
```ts
export interface Voucher {
codigoVoucher: string;
dataUtilizacao: Date;
idLote: string;
documentoVinculado: null | string;
valido: boolean;
idCliente: number;
idConvenio: number;
utilizado: boolean;
tipoCupom: 'GENERICO' | 'NOMINAL' | 'NAO NOMINAL';
login: string;
dataInicioValidade: Date;
dataFimValidade: Date;
quantidadeDesconto: number;
createdAt: Date;
deletedAt: Date | null;
produto: string;
id_produto: string;
}
```