<?php
$platform_id = Dever::input('set')['platform_id'] ?? 0;
if (!$platform_id) {
    $platform_id = Dever::input('field')['platform_id'] ?? 0;
}
return array
(
    'list' => array
    (
        'where' => array('platform_id' => $platform_id),
        'field'      => array
        (
            'id',
            'name',
            'type',
            'cdate',
        ),
        'data_button' => array
        (
            '编辑' => array('fastedit', array('platform_id' => $platform_id)),
        ),
        'button' => array
        (
            '新增' => array('fastadd', array('platform_id' => $platform_id)),
        ),
        'search' => array
        (
            'platform_id' => 'hidden',
            'name',
        ),
    ),
    'update' => array
    (
        'tab' => array
        (
            '基本设置' => 'name,type,cipher_algo,option,iv,tag_len,aad,after',
            '加密设置' => 'encrypt_cert_type,encrypt_cert,encrypt_cert_id',
            '解密设置' => 'decrypt_cert_type,decrypt_cert,decrypt_cert_id',
        ),

        'field'    => array
        (
            'platform_id' => 'hidden',
            'name',
            'type' => 'radio',
            'cipher_algo' => array
            (
                'desc' => '直接填写密码学方式的值,如aes-256-cbc',
            ),
            'option' => array
            (
                'desc' => '直接输入填充模式的常量即可,如:OPENSSL_NO_PADDING'
            ),
            'iv' => array
            (
                'desc' => '可以直接使用平台设置中的参数名',
            ),
            'tag' => array
            (
                'desc' => '可以直接使用平台设置中的参数名',
            ),
            'tag_len',
            'aad' => array
            (
                'desc' => '可以直接使用平台设置中的参数名',
            ),
            'after' => 'radio',

            'encrypt_cert_type' => 'radio',
            'encrypt_cert' => array
            (
                'type' => 'text',
                'desc' => '可以直接使用平台设置中的参数名',
            ),
            'encrypt_cert_id' => array
            (
                'type' => 'select',
                'option'     => 'Dever::call("api/cert.list", array('.$platform_id.'))',
            ),

            'decrypt_cert_type' => 'radio',
            'decrypt_cert' => array
            (
                'type' => 'text',
                'desc' => '可以直接使用平台设置中的参数名',
            ),
            'decrypt_cert_id' => array
            (
                'type' => 'select',
                'option'     => 'Dever::call("api/cert.list", array('.$platform_id.'))',
            ),
        ),

        'control' => array
        (
            'cipher_algo' => array
            (
                'type' => array(2,3)
            ),

            'option' => array
            (
                'type' => array(1,2)
            ),

            'iv' => array
            (
                'type' => 2,
            ),
            
            'tag' => array
            (
                'type' => 2,
            ),
            'aad' => array
            (
                'type' => 2,
            ),
            'tag_len' => array
            (
                'type' => 2,
            ),

            'encrypt_cert' => array
            (
                'encrypt_cert_type' => 3,
            ),
            'encrypt_cert_id' => array
            (
                'encrypt_cert_type' => array(1,2),
            ),

            'decrypt_cert' => array
            (
                'decrypt_cert_type' => 3,
            ),
            'decrypt_cert_id' => array
            (
                'decrypt_cert_type' => array(1,2),
            ),
        ),
    ),
);