# DeliveryVoucherDates Model

## Request

- When requesting [printInfo.getVoucherDeliverySchedule()](../../src/print-info.ts) an array of [DeliveryVoucherDates instances](../../src/models/delivery-voucher-dates.ts) are returned.

```javascript
try {
	const voucherDeliverySchedule = await printInfo.getVoucherDeliverySchedule(term, startDate);
} catch (error) {
	throw error;
}
```

### Required Parameters

| Parameters  | Required | Type   | Example | Description   |
| ----------- | -------- | -------| --------| ------------- |
| startDate   | no       | String | 2018-07-12 | The date you want to see all the delivery schedules from. Format yyyy-MM-dd. Defaults to today's date. |
| term        | yes      | string | P1Y     | Payment/billing term - how often the user will make a payment  |

**Response**: Returns an a array of [DeliveryVoucherDates instances](../../src/models/delivery-voucher-dates.ts).

## Table of Contents

* [Initiate DeliveryVoucherDates Class](#initiate-deliveryvoucherdates-class)
* [Properties of the voucherDeliverySchedule Response](#properties-of-the-deliveryvoucherdates-response)
* [Prototypes](#prototypes)
* [Membership Delivery Voucher Schedule Response](#membership-delivery-voucher-schedule-response)

### Initiate DeliveryVoucherDates Class

```javascript
 const voucherDeliveryInstance = new DeliveryVoucherDates(voucherDeliveryDate);
```

| Parameters      | Required | Type   | Description                        | Example |
| --------------  | -------- | ------ | ---------------------------------- | --------|
| voucherDeliveryDate | Yes      | Object | An array of delivery scheduled dates | see [Membership Delivery Voucher Schedule Response](#membership-delivery-voucher-schedule-response) |

### Properties of the DeliveryVoucherDates Response

| Properties  | Type   | Description           | Example                                   |
| ----------  | ------ | --------------------- | ----------------------------------------- |
| voucherStartDate | String | The date that voucher is active.  | 2020-01-30 |
| startDate  | String | The date and time that voucher is active. Start of the day. | 2020-01-30T00:00:00.000Z |
| voucherEndDate | String | The date that voucher is no longer active. | 2020-02-30  |
| endDate        | String | The date and time that voucher is no longer active. End of the day. | 2020-02-30T22:59:59.999Z |
| fileDeliveryDate | String | The date the voucher is to be delivered (this occurs before the schedule is to start). | 2020-01-01 |
| deliveryDate | String | The date that the voucher is to be delivered (this occurs before the schedule is to start). Start of the day. | 2020-01-01T00:00:00.000Z |

### Prototypes

* [isCurrentDeliveryDate](#isCurrentDeliveryDate)
* [isFutureDeliveryDate](#isFutureDeliveryDate)
* [isPastDeliveryDate](#isPastDeliveryDate)

#### isCurrentDeliveryDate

```javascript
const isCurrentDeliveryDate = voucherDeliveryInstance.isCurrentDeliveryDate();
```

- Returns true if the voucher is currently active.
```
	Parameters: none
	Response: boolean
```

#### isFutureDeliveryDate

```javascript
const isFutureDeliveryDate = voucherDeliveryInstance.isFutureDeliveryDate();
```

- Returns true if the voucher is scheduled to be active in the future.
```
	Parameters: none
	Response: boolean
```

#### isPastDeliveryDate

```javascript
const isPastDeliveryDate = voucherDeliveryInstance.isPastDeliveryDate();
```

- Returns true if the voucher was active in the past.
```
	Parameters: none
	Response: boolean
```

### Membership Delivery Voucher Schedule Response

```javascript
{
	schedule: [
		{
			voucherStartDate: '2020-01-30',
			voucherEndDate: '2020-04-29',
			fileDeliveryDate: '2020-01-10'
		},
		{
			voucherStartDate: '2019-10-31',
			voucherEndDate: '2020-01-29',
			fileDeliveryDate: '2019-10-18'
		}
	]
}
```
