<?php
/**
 * @package    Joomla.Component.Builder
 *
 * @created    4th September, 2022
 * @author     Llewellyn van der Merwe <https://dev.vdm.io>
 * @git        Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
 * @copyright  Copyright (C) 2015 Vast Development Method. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

namespace JCB\Joomla\Subformpower;


use JCB\Joomla\Interfaces\Tableinterface;
use JCB\Joomla\Abstraction\BaseTable;


/**
 * Subformpower Tables
 * 
 * @since 3.2.0
 */
final class Table extends BaseTable implements Tableinterface
{
	/**
	 * All areas/views/tables with their field details
	 *
	 * @var     array
	 * @since 3.2.0
	 **/
	protected array $tables = [
		'country' => [
			'name' => [
				'name' => 'name',
				'label' => 'COM_SUBFORMPOWER_COUNTRY_NAME_LABEL',
				'type' => 'text',
				'title' => true,
				'list' => 'countries',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(255)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => true,
				],
			],
			'phonecode' => [
				'name' => 'phonecode',
				'label' => 'COM_SUBFORMPOWER_COUNTRY_PHONECODE_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'countries',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(255)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => false,
				],
			],
			'isothree' => [
				'name' => 'isothree',
				'label' => 'COM_SUBFORMPOWER_COUNTRY_ISOTHREE_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'countries',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(255)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => false,
				],
			],
			'timezone' => [
				'name' => 'timezone',
				'label' => 'COM_SUBFORMPOWER_COUNTRY_TIMEZONE_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'countries',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(255)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => false,
				],
			],
			'numcode' => [
				'name' => 'numcode',
				'label' => 'COM_SUBFORMPOWER_COUNTRY_NUMCODE_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'countries',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(255)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => false,
				],
			],
			'iso' => [
				'name' => 'iso',
				'label' => 'COM_SUBFORMPOWER_COUNTRY_ISO_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'countries',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(255)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => false,
				],
			],
			'guid' => [
				'name' => 'guid',
				'label' => 'COM_SUBFORMPOWER_COUNTRY_GUID_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'countries',
				'store' => NULL,
				'tab_name' => 'publishing',
				'db' => [
					'type' => 'VARCHAR(36)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => true,
				],
			],
			'access' => [
				'name' => 'access',
				'label' => 'Access',
				'type' => 'accesslevel',
				'title' => false,
				'store' => NULL,
				'tab_name' => NULL,
				'db' => [
					'type' => 'INT(10) unsigned',
					'default' => '0',
					'key' => true,
					'null_switch' => 'NOT NULL',
				],
			],
		],
		'currency' => [
			'ext_number' => [
				'name' => 'ext_number',
				'label' => 'COM_SUBFORMPOWER_CURRENCY_EXT_NUMBER_LABEL',
				'type' => 'number',
				'title' => true,
				'list' => 'currencies',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'INT(10)',
					'default' => '0',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => true,
				],
			],
			'symbol' => [
				'name' => 'symbol',
				'label' => 'COM_SUBFORMPOWER_CURRENCY_SYMBOL_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'currencies',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(255)',
					'default' => '',
					'null_switch' => 'NULL',
					'unique_key' => false,
					'key' => false,
				],
			],
			'country' => [
				'name' => 'country',
				'label' => 'COM_SUBFORMPOWER_CURRENCY_COUNTRY_LABEL',
				'type' => 'countries',
				'title' => false,
				'list' => 'currencies',
				'store' => NULL,
				'tab_name' => 'Details',
				'db' => [
					'type' => 'VARCHAR(36)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => true,
				],
			],
			'guid' => [
				'name' => 'guid',
				'label' => 'COM_SUBFORMPOWER_CURRENCY_GUID_LABEL',
				'type' => 'text',
				'title' => false,
				'list' => 'currencies',
				'store' => NULL,
				'tab_name' => 'publishing',
				'db' => [
					'type' => 'VARCHAR(36)',
					'default' => '',
					'null_switch' => 'NOT NULL',
					'unique_key' => false,
					'key' => true,
				],
			],
			'access' => [
				'name' => 'access',
				'label' => 'Access',
				'type' => 'accesslevel',
				'title' => false,
				'store' => NULL,
				'tab_name' => NULL,
				'db' => [
					'type' => 'INT(10) unsigned',
					'default' => '0',
					'key' => true,
					'null_switch' => 'NOT NULL',
				],
			],
		],
	];
}

