<?php
/** @var WC_Paczkomaty_Shipping_Method $this */

$package_sizes = new WPDesk_Paczkomaty_Package_Sizes();

$token_description = sprintf(
	__( 'Wprowadź token dla Twojej organizacji. Możesz uzyskać go od opiekuna InPost lub wygenerować go samodzielnie postępując zgodnie z %1$sinstrukcją%2$s. Token powinien mieć formę ciągu ok. 300 znaków złożonego z małych i dużych liter oraz cyfr. Jeżeli napotkałeś/-aś na błąd autoryzacji i informację o nieprawidłowym tokenie, upewnij się, że został on wprowadzony w całości, nie została zmieniona wielkość liter oraz nie zawiera on kropki na końcu.', 'woocommerce-paczkomaty-inpost' ),
	'<a href="https://inpost.pl/sites/default/files/pdf/instrukcja-konfiguracji-api-shipx.pdf" target="_blank">',
	'</a>'
);

$this->form_fields = [
	[
		'title'   => __( 'Ustawienia główne', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'title',
		'default' => '',
	],
	'token'                                                     => [
		'title'       => __( 'Token', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'textarea',
		'default'     => '',
		'class'       => 'api-token',
		'desc_tip'    => false,
		'description' => $token_description,
	],
	'kurier_webhook_token'                                      => [
		'title'       => __( 'Klucz', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'text',
		'default'     => md5( site_url() ),
		'description' => __( 'Po zmianie tokena konieczna jest aktualizacja adresu webhooka po stronie InPost', 'woocommerce-paczkomaty-inpost' ),
	],
	'kurier_webhook_url'                                        => [
		'title'       => __( 'Adres URL dla API (webhook)', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'text',
		'default'     => site_url( '?shipx_webhook=' . $this->get_option( 'kurier_webhook_token', '' ) ),
		'desc_tip'    => true,
		'description' => __( 'Wygenerowany adres URL zarejestruj w InPost, prześlij adres do swojego opiekuna InPost.', 'woocommerce-paczkomaty-inpost' ),
	],
	'organization_id'                                           => [
		'title'       => __( 'Organizacja', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'select',
		'options'     => [],
		'class'       => 'shipx',
		'default'     => '',
		'desc_tip'    => true,
		'description' => __( 'Jeśli zarejestrowałeś w InPost kilka organizacji wybierz właściwą dla twojego sklepu.', 'woocommerce-paczkomaty-inpost' ),
	],
	'services'                                                  => [
		'title'       => __( 'Usługi InPost', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'services',
		'options'     => [],
		'default'     => '',
		'class'       => 'shipx',
		'desc_tip'    => true,
		'description' => __( 'Lista zawiera usługi obsługiwane przez wtyczkę oraz pokazuje status dostępności dla danej organizacji. Jeśli usługa nie jest dostępna skontaktuj się z opiekunem konta InPost.', 'woocommerce-paczkomaty-inpost' ),
	],
	[
		'title'    => __( 'Ustawienia przesyłek', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'title',
		'default'  => '',
		'desc_tip' => true,
		'class'    => 'shipx',
	],
	'sending_method'                                            => [
		'title'       => __( 'Domyślny sposób nadania', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'select',
		'default'     => 'dispatch_order',
		'options'     => [],
		'class'       => 'shipx',
		'desc_tip'    => true,
		'description' => __( 'Domyślny sposób nadania nie jest wymagany do nadania przesyłki.', 'woocommerce-paczkomaty-inpost' ),
	],
	'default_parcel_locker'                                     => [
		'title'       => __( 'Domyślny paczkomat nadawczy', 'woocommerce-paczkomaty-inpost' ),
		'description' => '',
		'type'        => 'select',
		'default'     => '',
		'options'     => [],
		'class'       => 'select2_ajax_paczkomaty shipx sending_method sending_method_parcel_locker',
	],
	WC_Paczkomaty_Shipping_Method::SETTING_DEFAULT_PACKAGE_SIZE => [
		'title'       => __( 'Domyślny rozmiar paczki dla paczkomatów', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'select',
		'options'     => $package_sizes->get_package_sizes_with_select_label(),
		'desc_tip'    => true,
		'description' => __( 'Domyślny rozmiar paczki dla paczkomatów używany w integracjach, np. Allegro.', 'woocommerce-paczkomaty-inpost' ),
	],
	[
		'title'    => __( 'Generowanie przesyłek', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'title',
		'default'  => '',
		'desc_tip' => true,
	],
	'auto_create'                                               => [
		'title'   => __( 'Sposób generowania', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'select',
		'default' => 'manual',
		'options' => [
			'manual' => __( 'Ręczne', 'woocommerce-paczkomaty-inpost' ),
			'auto'   => __( 'Automatyczne', 'woocommerce-paczkomaty-inpost' ),
		],
	],
	'order_status'                                              => [
		'title'       => __( 'Status zamówienia', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'select',
		'default'     => 'wc-completed',
		'options'     => wc_get_order_statuses(),
		'description' => __( 'Wybierz status zamówienia przy którym zostanie automatycznie utworzona przesyłka.', 'woocommerce-paczkomaty-inpost' ),
	],
	'complete_order'                                            => [
		'title'       => __( 'Zrealizuj zamówienie', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'checkbox',
		'label'       => __( 'Włącz zmianę statusu zamówienia na Zrealizowane', 'woocommerce-paczkomaty-inpost' ),
		'default'     => 'no',
		'description' => __( 'Po nadaniu przesyłek status zamówienia zostanie automatycznie zmieniony na Zrealizowane.', 'woocommerce-paczkomaty-inpost' ),
	],
	[
		'title'       => __( 'Etykiety', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'title',
		'description' => '',
	],
	'label_format_type'                                         => [
		'title'   => __( 'Format i typ etykiet', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'select',
		'options' => [
			'pdf:normal'       => __( 'PDF A4 - jedna etykieta na stronę', 'woocommerce-paczkomaty-inpost' ),
			'pdf:normal:group' => __( 'PDF A4 - wiele etykiet na stronę', 'woocommerce-paczkomaty-inpost' ),
			'pdf:A6'           => __( 'PDF A6', 'woocommerce-paczkomaty-inpost' ),
			'epl:A6'           => __( 'EPL', 'woocommerce-paczkomaty-inpost' ),
			'zpl:A6'           => __( 'ZPL', 'woocommerce-paczkomaty-inpost' ),
		],
		'default' => 'pdf',
	],
	'auto_print'                                                => [
		'title'             => __( 'Drukowanie', 'woocommerce-paczkomaty-inpost' ),
		'label'             => __( 'Włącz automatyczne drukowanie', 'woocommerce-paczkomaty-inpost' ),
		'type'              => 'checkbox',
		'description'       => '',
		'custom_attributes' => [],
		'default'           => 'no',
		'desc_tip'          => false,
	],
	[
		'title'       => __( 'Opcje zaawansowane', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'title',
		'description' => '',
	],
	'test_mode'                                                 => [
		'title' => __( 'Tryb testowy', 'woocommerce-paczkomaty-inpost' ),
		'type'  => 'checkbox',
		'label' => __( 'Włącz tryb testowy', 'woocommerce-paczkomaty-inpost' ),
	],
	'token_test_mode'                                           => [
		'title'       => __( 'Token dla trybu testowego', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'textarea',
		'desc_tip'    => false,
		'class'       => 'test_mode_shipx api-token',
		'description' => $token_description,
		'default'     => '',
	],
	'logging'                                                   => [
		'title'             => __( 'Zapis zdarzeń', 'woocommerce-paczkomaty-inpost' ),
		'label'             => __( 'Włącz zapis zdarzeń do logów', 'woocommerce-paczkomaty-inpost' ),
		'type'              => 'checkbox',
		'description'       => sprintf( __( 'Zapis zdarzeń należy włączać tylko podczas diagnozowania problemów. Zdarzenia zapisywane są w %sdzienniku WooCommerce%s.', 'woocommerce-paczkomaty-inpost' ), '<a href="' . admin_url( 'admin.php?page=wc-status&tab=logs' ) . '" target="_blank">', '</a>' ),
		'custom_attributes' => [],
		'default'           => 'no',
		'desc_tip'          => false,
	],
	'select_type'                                               => [
		'title'       => __( 'Typ listy paczkomatów', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'select',
		'description' => sprintf( __( 'Sprawdź opis typów listy paczkomatów w naszej %sdokumentacji%s.', 'woocommerce-paczkomaty-inpost' ), '<a href="https://www.wpdesk.pl/docs/woocommerce-paczkomaty-docs/?utm_source=inpost-settings&utm_medium=link&utm_campaign=settings-list-docs-link#Opcje_zaawansowane" target="_blank">', '</a>' ),
		'options'     => [
			'select'       => __( 'Select', 'woocommerce-paczkomaty-inpost' ),
			'select2'      => __( 'Select2', 'woocommerce-paczkomaty-inpost' ),
			'select2_ajax' => __( 'Select2 (AJAX)', 'woocommerce-paczkomaty-inpost' ),
		],
		'default'     => 'select2_ajax',
	],
	'refresh_points'                                            => [
		'type'    => 'refresh_pickup_points',
		'service' => 'inpost',
	],
	[
		'title'    => sprintf(
			__( 'API XML zostanie wyłączone przez InPost! Rekomendujemy uzyskanie dostępu do nowego API ShipX u opiekuna konta InPost. Nowe API oferuje więcej możliwości, %1$ssprawdź%2$s.', 'woocommerce-paczkomaty-inpost' ),
			'<a target="_blank" href="https://www.wpdesk.pl/blog/api-shipx-api-xml/">',
			'</a>'
		),
		'type'     => 'title',
		'default'  => '',
		'class'    => 'xml_api_message paczkomaty',
		'desc_tip' => true,
	],
	[
		'title'       => __( 'API XML (Paczkomaty)', 'woocommerce-paczkomaty-inpost' ),
		'description' => __( 'UWAGA: API XML nie jest rozwijane przez InPost od czerwca 2017 roku', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'title',
		'default'     => '',
		'desc_tip'    => true,
	],
	'paczkomaty'                                                => [
		'title'   => __( 'API XML (Paczkomaty)', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'checkbox',
		'label'   => __( 'Zaznacz aby nadawać do Paczkomatów przez API XML', 'woocommerce-paczkomaty-inpost' ),
		'default' => 'no',
	],
	'email'                                                     => [
		'title'   => __( 'Login', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'text',
		'default' => '',
		'class'   => 'paczkomaty',
	],
	'password'                                                  => [
		'title'             => __( 'Hasło', 'woocommerce-paczkomaty-inpost' ),
		'type'              => 'password',
		'default'           => '',
		'custom_attributes' => [ 'autocomplete' => 'new-password' ],
		'class'             => 'paczkomaty',
	],
	'test_mode_email'                                           => [
		'title'   => __( 'Login dla trybu testowego', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'text',
		'class'   => 'paczkomaty test_mode_paczkomaty',
		'default' => '',
	],
	'test_mode_password'                                        => [
		'title'   => __( 'Hasło dla trybu testowego', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'password',
		'class'   => 'paczkomaty test_mode_paczkomaty',
		'default' => '',
	],
	'self_send'                                                 => [
		'title'   => __( 'Domyślny sposób nadania', 'woocommerce-paczkomaty-inpost' ),
		'type'    => 'select',
		'default' => '1',
		'options' => $this->howToGive,
		'class'   => 'paczkomaty',
	],
	'polecony_sender_data'                                      => [
		'title'       => __( 'Dane nadawcy', 'woocommerce-paczkomaty-inpost' ),
		'type'        => 'title',
		'default'     => '',
		'desc_tip'    => true,
		'description' => __( 'Dane nadawcy wymagane dla usługi Paczka E-Commerce Allegro (API XML)', 'woocommerce-paczkomaty-inpost' ),
		'class'       => 'paczkomaty',
	],
	'polecony_sender_name'                                      => [
		'title'    => __( 'Imię', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_surName'                                   => [
		'title'    => __( 'Nazwisko', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_companyName'                               => [
		'title'    => __( 'Nazwa firmy', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_email'                                     => [
		'title'    => __( 'E-mail', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_phoneNum'                                  => [
		'title'    => __( 'Telefon', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_street'                                    => [
		'title'    => __( 'Ulica', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_street_number'                             => [
		'title'    => __( 'Nr domu i mieszkania', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_town'                                      => [
		'title'    => __( 'Miejscowość', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
	'polecony_sender_zipCode'                                   => [
		'title'    => __( 'Kod pocztowy', 'woocommerce-paczkomaty-inpost' ),
		'type'     => 'text',
		'desc_tip' => true,
		'default'  => '',
		'class'    => 'paczkomaty',
	],
];

$test_mode_after   = 'yes' === $this->get_option( 'test_mode', 'no' ) ? 'token_test_mode' : 'token';
$form_fields       = $this->form_fields;
$this->form_fields = [];
foreach ( $form_fields as $field_name => $field ) {
	$this->form_fields[ $field_name ] = $field;
	if ( $field_name === $test_mode_after ) {
		$this->form_fields['connection_status'] = [
			'title'   => __( 'Status połączenia', 'woocommerce-paczkomaty-inpost' ),
			'type'    => 'status',
			'default' => '',
		];
	}
}
