<?php

return gridFilterSchema([
    'query' => [
        'customerNo' => ['type' => 'string'],
        'customerName' => ['type' => 'string'],
        'limit' => ['type' => 'int', 'default' => 10, 'min' => 1, 'max' => 100],
        'offset' => ['type' => 'int', 'default' => 0, 'min' => 0],
        'search' => ['type' => 'string'],
        'category' => ['type' => 'string'],
        'support' => ['type' => 'string'],
        'contact' => ['type' => 'string'],
        'period' => ['type' => 'string', 'default' => ''],
        'order' => ['type' => 'order', 'allowed' => ['No', 'Created_On', 'Last_Activity_Date', 'Ticket_State'], 'default' => 'Created_On'],
        'dir' => ['type' => 'dir', 'default' => 'desc'],
        'status' => ['type' => 'string', 'default' => ''],
    ],
    'toolbar' => [
        [
            'key' => 'search',
            'type' => 'text',
            'label' => 'Search',
            'input_id' => 'helpdesk-ticket-search',
            'search' => true,
            'query' => ['type' => 'string'],
        ],
        [
            'key' => 'status',
            'type' => 'select',
            'label' => 'Status',
            'input_id' => 'helpdesk-ticket-status-filter',
            'default' => '',
            'normalize' => 'all_to_empty',
            'allowed' => [
                ['id' => '', 'description' => 'All'],
                ['id' => 'open', 'description' => 'Open'],
                ['id' => 'in_progress', 'description' => 'In Progress'],
                ['id' => 'closed', 'description' => 'Closed'],
            ],
        ],
        [
            'key' => 'category',
            'type' => 'select',
            'label' => 'Category',
            'input_id' => 'helpdesk-ticket-category-filter',
            'default' => '',
            'options_key' => 'category_items',
            'allowed' => [
                ['id' => '', 'description' => 'All'],
            ],
            'query' => ['type' => 'string'],
        ],
        [
            'key' => 'support',
            'type' => 'select',
            'label' => 'Support',
            'input_id' => 'helpdesk-ticket-support-filter',
            'default' => '',
            'options_key' => 'support_user_items',
            'allowed' => [
                ['id' => '', 'description' => 'All'],
            ],
            'query' => ['type' => 'string'],
        ],
        [
            'key' => 'contact',
            'type' => 'select',
            'label' => 'Contact',
            'input_id' => 'helpdesk-ticket-contact-filter',
            'default' => '',
            'options_key' => 'contact_items',
            'allowed' => [
                ['id' => '', 'description' => 'All'],
            ],
            'query' => ['type' => 'string'],
        ],
        [
            'key' => 'period',
            'type' => 'select',
            'label' => 'Period',
            'input_id' => 'helpdesk-ticket-period-filter',
            'default' => '',
            'normalize' => 'all_to_empty',
            'allowed' => [
                ['id' => '', 'description' => 'All'],
                ['id' => '30', 'description' => 'Last 30 days'],
                ['id' => '90', 'description' => 'Last 90 days'],
                ['id' => '180', 'description' => 'Last 180 days'],
                ['id' => '365', 'description' => 'Last 365 days'],
            ],
        ],
    ],
]);
