<?php

return gridFilterSchema([
    'query' => [
        'search' => ['type' => 'string'],
        'customer' => ['type' => 'string'],
        'contract_type' => ['type' => 'string'],
        'state' => ['type' => 'string', 'default' => 'all'],
        'administration' => ['type' => 'string', 'default' => 'all'],
        'limit' => ['type' => 'int', 'default' => 10, 'min' => 1, 'max' => 100],
        'offset' => ['type' => 'int', 'default' => 0, 'min' => 0],
        'order' => [
            'type' => 'order',
            'allowed' => ['Customer_No', 'Customer_Name', 'URL', 'State', 'Administration', 'No', 'contract_type'],
            'default' => 'Customer_Name',
        ],
        'dir' => ['type' => 'dir', 'default' => 'asc'],
    ],
    'toolbar' => [
        [
            'key' => 'search',
            'type' => 'text',
            'label' => 'Search',
            'placeholder' => 'Search domains...',
            'input_id' => 'helpdesk-domains-search-input',
            'search' => true,
            'query' => ['type' => 'string'],
        ],
        [
            'key' => 'customer',
            'type' => 'text',
            'label' => 'Customer',
            'placeholder' => 'Customer name or no...',
            'input_id' => 'helpdesk-domains-customer-filter',
            'query' => ['type' => 'string'],
            'label_attributes' => ['data-filter-optional' => true],
        ],
        [
            'key' => 'contract_type',
            'type' => 'text',
            'label' => 'Contract type',
            'placeholder' => 'e.g. WEBSITE, SW&H...',
            'input_id' => 'helpdesk-domains-contract-type-filter',
            'query' => ['type' => 'string'],
            'label_attributes' => ['data-filter-optional' => true],
        ],
        [
            'key' => 'state',
            'type' => 'select',
            'label' => 'State',
            'input_id' => 'helpdesk-domains-state-filter',
            'default' => 'all',
            'normalize' => 'all_to_empty',
            'allowed' => [
                ['id' => 'all', 'description' => 'All'],
                ['id' => 'Aktiv', 'description' => 'Aktiv'],
                ['id' => 'In Vorbereitung', 'description' => 'In Vorbereitung'],
            ],
            'label_attributes' => ['data-filter-optional' => true],
        ],
        [
            'key' => 'administration',
            'type' => 'select',
            'label' => 'Administration',
            'input_id' => 'helpdesk-domains-admin-filter',
            'default' => 'all',
            'normalize' => 'all_to_empty',
            'allowed' => [
                ['id' => 'all', 'description' => 'All'],
                ['id' => 'Intern', 'description' => 'Intern'],
                ['id' => 'Extern', 'description' => 'Extern'],
            ],
            'label_attributes' => ['data-filter-optional' => true],
        ],
        [
            'key' => 'security_level',
            'type' => 'select',
            'label' => 'Security level',
            'input_id' => 'helpdesk-domains-security-level-filter',
            'default' => 'all',
            'normalize' => 'all_to_empty',
            'allowed' => [
                ['id' => 'all', 'description' => 'All'],
                ['id' => 'niedrig', 'description' => 'Low'],
                ['id' => 'normal', 'description' => 'Normal'],
                ['id' => 'hoch', 'description' => 'High'],
                ['id' => 'kritisch', 'description' => 'Critical'],
            ],
            'label_attributes' => ['data-filter-optional' => true],
        ],
    ],
]);
