<?php
/**
 * Note : Code is released under the GNU LGPL
 *
 * Please do not change the header of this file
 *
 * This library is free software; you can redistribute it and/or modify it under the terms of the GNU
 * Lesser General Public License as published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * See the GNU Lesser General Public License for more details.
 */

/**
 * File:        ExportDeclaration.php
 * Project:     DHL API
 *
 * @author      Al-Fallouji Bashar
 * @version     0.1
 */

namespace DHL\Datatype\AM; 
use DHL\Datatype\Base;

/**
 * ExportDeclaration Request model for DHL API
 */
class ExportDeclaration extends Base
{
    /**
     * Is this object a subobject
     * @var boolean
     */
    protected $_isSubobject = true;

    /**
     * Parameters of the datatype
     * @var array
     */
    protected $_params = array(
        'InvoiceDate' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
        ), 
        'InvoiceNumber' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
            'comment' => 'Boolean flag',
            
        ), 
        'ExportReasonType' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
        ), 
        'ExportReason' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
            'comment' => 'Signature name',
        ), 
        'PlaceOfIncoterm' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
            'comment' => 'Signature title',
        ), 
        'ShipmentPurpose' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
            'comment' => 'Export reason',
        ), 
        'DocumentFunction' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
            'comment' => 'Export reason code (P:Permanent, T:Temporary, R:Re-Export)',
        ), 
        'ExportLineItems' => array(
            'type' => 'ExportLineItems',
            'required' => true,
            'subobject' => true,
        ), 
        'CustomsDocuments' => array(
            'type' => 'CustomsDocuments',
            'required' => true,
            'subobject' => true,
        ), 
        'PackageMarks' => array(
            'type' => 'string',
            'required' => true,
            'subobject' => false,
        ), 
        'PayerGSTVAT' => array(
            'type' => 'YesNo',
            'required' => true,
            'subobject' => false,
            'enumeration' => 'yes,no',
        ), 
        'Remarks' => array(
            'type' => 'Remarks',
            'required' => true,
            'subobject' => true,
        ), 
        'TermsOfPayment' => array(
            'type' => 'string',
            'required' => true,
            'subobject' => false,
        ), 
        'InvoiceTotalNetWeight' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
        ), 
        'PayerGSTVAT' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
        ), 
        'InvoiceInstructions' => array(
            'type' => 'string',
            'required' => false,
            'subobject' => false,
        ), 
        'InvoiceReferences' => array(
            'type' => 'InvoiceReferences',
            'required' => false,
            'subobject' => true,
        ),
    );
}
