<?php
/**
 * Copyright 2017 AdventureRes
 *
 * @license GPL-3.0+
 */

namespace AdventureRes\Models\Input;

use AdventureRes\Models\AbstractAdventureResModel;
use Respect\Validation\Validator;

/**
 * Class CustomerAddInputModel
 * @package AdventureRes\Models\Input
 * @property int $CustomerId Optional
 * @property int $ReservationId Optional
 * @property string $FirstName
 * @property string $LastName
 * @property string $OrgName
 * @property string $Address
 * @property string $Address2
 * @property string $City
 * @property string $State Optional
 * @property string $Zip Optional
 * @property string $Country
 * @property string $DOB Optional
 * @property string $Gender
 * @property string $HomePhone Optional
 * @property string $WorkPhone Optional
 * @property string $CellPhone Optional
 * @property string $Email
 * @property int LocationId Optional
 */
class CustomerAddInputModel extends AbstractAdventureResModel
{
    protected function defineAttributes()
    {
        return [
            'CustomerId'    => Validator::optional(Validator::intType()),
            'ReservationId' => Validator::optional(Validator::intType()),
            'FirstName'     => Validator::stringType(),
            'LastName'      => Validator::stringType(),
            'OrgName'       => Validator::stringType(),
            'Address'       => Validator::stringType(),
            'Address2'      => Validator::stringType(),
            'City'          => Validator::stringType(),
            'State'         => Validator::optional(Validator::stringType()->uppercase()->length(2, 2)),
            'Zip'           => Validator::optional(Validator::numeric()->length(5)),
            'Country'       => Validator::stringType(),
            'DOB'           => Validator::optional(Validator::date('m/d/Y')),
//            'Age'           => Validator::intType(),
            'Gender'        => Validator::stringType(),
            'HomePhone'     => Validator::optional(Validator::numeric()),
            'WorkPhone'     => Validator::optional(Validator::numeric()),
            'CellPhone'     => Validator::optional(Validator::numeric()),
            'Email'         => Validator::email(),
//            'GroupTypeId'   => Validator::intType(),
//            'HTHId'         => Validator::intType(),
            'LocationId' => Validator::optional(Validator::intType()),
        ];
    }
}

/* End of CustomerAddInputModel.php */
