<?php

return gridFilterSchema([
    'query' => [
        'search' => ['type' => 'string'],
        'active' => ['type' => 'string', 'default' => 'all'],
        'limit' => ['type' => 'int', 'default' => 20, 'min' => 1, 'max' => 100],
        'offset' => ['type' => 'int', 'default' => 0, 'min' => 0],
        'order' => [
            'type' => 'order',
            'allowed' => ['code', 'bc_description', 'name', 'active', 'synced_at'],
            'default' => 'code',
        ],
        'dir' => ['type' => 'dir', 'default' => 'asc'],
    ],
    'toolbar' => [
        [
            'key' => 'search',
            'type' => 'text',
            'label' => 'Search',
            'placeholder' => 'Search software products...',
            'input_id' => 'helpdesk-software-products-search-input',
            'search' => true,
            'query' => ['type' => 'string'],
        ],
        [
            'key' => 'active',
            'type' => 'select',
            'label' => 'Status',
            'input_id' => 'helpdesk-software-products-active-filter',
            'default' => 'all',
            'normalize' => 'all_to_empty',
            'allowed' => [
                ['id' => 'all', 'description' => 'All'],
                ['id' => '1', 'description' => 'Active'],
                ['id' => '0', 'description' => 'Inactive'],
            ],
            'label_attributes' => ['data-filter-optional' => true],
        ],
    ],
]);
