<?php
namespace App\Sabre\LineParser\Types\Line;

/**
 *
 * @author Lucian Sirbu
 */
class MGIUGCIN extends \App\Sabre\LineParser\Types\SabreBaseLine
{
	protected $extractRegexp = "/^(?P<rawData>[0-9]{2}[ ]+[0-9]+.+)/s";

	/**
	 * The Coupon Information will always exist. The number of coupon is defined in IUGCPN.
	 */

	/**
	 * Children elements
	 */
	protected $children = [
	    ['key'=>'IUGCPS',            'type'=>'Integer',      'len'=>2,                                        'label'=>'IUGCPS'],    // COUPON SEQUENTIAL NUMBER
	    ['key'=>'IUGCBO',            'type'=>'StringTrim',   'len'=>18,                                      'label'=>'IUGCBO'],    // FARE AMOUNT
	    ['key'=>'IUGCT1',                                    'len'=>21,      'children'=> [
	        ['key'=>'IUGTCD',        'type'=>'StringTrim',   'len'=>3,                                       'label'=>'IUGTCD'],    // TAX CODE
	        ['key'=>'IUGCTA',        'type'=>'StringTrim',   'len'=>18,                                      'label'=>'IUGCTA'],    // TAX AMOUNT
		]],
	    ['key'=>'IUGCNT',            'type'=>'Integer',       'len'=>2,                                       'label'=>'IUGCNT'],    // NUMBER OF ADDITIONAL TAX
	    ['key'=>'IUGCSD',            'type'=>'DateB',         'len'=>9,  'fmt'=>'DDMMMYYYY',                  'label'=>'IUGCSD'],    // SERVICE DATE (DDMMMYYYY)
	    ['key'=>'IUGCBD',            'type'=>'DateB',         'len'=>9,  'fmt'=>'DDMMMYYYY',                  'label'=>'IUGCBD'],    // NOT VALID BEFORE DATE (DDMMMYYYY)
	    ['key'=>'IUGCAD',            'type'=>'DateB',         'len'=>9,  'fmt'=>'DDMMMYYYY',                  'label'=>'IUGCAD'],    // NOT VALID AFTER DATE (DDMMMYYYY)
	    ['key'=>'IUGCSR',            'type'=>'StringTrim',    'len'=>3,                                       'label'=>'IUGCSR'],    // RFIC SUB CODE
	    ['key'=>'IUGCNR',            'type'=>'StringTrim',    'len'=>50,                                      'label'=>'IUGCNR'],    // RFIC CODE NAME
	    ['key'=>'IUGCFN',            'type'=>'StringTrim',    'len'=>5,                                       'label'=>'IUGCFN'],    // FLIGHT NUMBER
	    ['key'=>'IUGCDP',            'type'=>'StringTrim',    'len'=>3,                                       'label'=>'IUGCDP'],    // DEPARTURE CITY CODE
	    ['key'=>'IUGCDS',            'type'=>'StringTrim',    'len'=>2,                                       'label'=>'IUGCDS'],    // DEPARTURE CITY CODE SPARE
	    ['key'=>'IUGCOF',            'type'=>'StringTrim',    'len'=>3,                                       'label'=>'IUGCOF'],    // DESTINATION CITY CODE
	    ['key'=>'IUGCOS',            'type'=>'StringTrim',    'len'=>2,                                       'label'=>'IUGCOS'],    // DESTINATION CITY CODE SPARE
	    ['key'=>'IUGCDT',            'type'=>'DateB',         'len'=>9,  'fmt'=>'DDMMMYYYY',                  'label'=>'IUGCDT'],    // DEPARTURE DATE (DDMMMYYYY)
	    ['key'=>'IUGCPT',            'type'=>'StringTrim',    'len'=>1,                                       'label'=>'IUGCPT'],    // "PRESENT TO" INDICATOR
	    ['key'=>'IUGCPA',            'type'=>'StringTrim',    'len'=>1,                                       'label'=>'IUGCPA'],    // "PRESENT AT" INDICATOR
	    ['key'=>'IUGCSP',            'type'=>'Constant',      'len'=>14,      'val'=>'              ',        'label'=>'IUGCSP'],    // SPARE
	    ['key'=>'NL',                'type'=>'NewLine',],
	];
}
