Source: types/order-address.js

/* * *  *  * *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
/* Copyright (c) 2018 Mobify Research & Development Inc. All rights reserved. */
/* * *  *  * *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */

import PropTypes from 'prop-types'
import {PhoneNumber} from './phone-number'
import {PostalCode} from './postal-code'
import {CountryCode} from './country-code'

/**
 * @memberOf module:types
 * @typedef {Object} OrderAddress
 * @property {String} id The id of the order address.
 * @property {String} titleCode The title code of the customer. (For example, 'Mr.' or 'Mrs.'.)
 * @property {String} firstName The customer's first name.
 * @property {String} lastName The customer's last name.
 * @property {module:types.PhoneNumber} phone The customer's phone number.
 * @property {String} addressLine1 The customer's street name, street number, and suite/unit.
 * @property {String} addressLine2 Any additional addressing information. (For example, a company name, or "Attn:".)
 * @property {module:types.CountryCode} countryCode The country code.
 * @property {String} stateCode The state code.
 * @property {String} city The city name.
 * @property {module:types.PostalCode} postalCode The postal code.
 */
export const OrderAddress = {
    id: PropTypes.string,
    titleCode: PropTypes.string,
    firstName: PropTypes.string.isRequired,
    lastName: PropTypes.string.isRequired,
    phone: PhoneNumber,
    addressLine1: PropTypes.string.isRequired,
    addressLine2: PropTypes.string,
    countryCode: CountryCode.isRequired,
    stateCode: PropTypes.string.isRequired,
    city: PropTypes.string.isRequired,
    postalCode: PostalCode.isRequired
}