<?php

// @codingStandardsIgnoreStart
if (!function_exists('left')) {
    function left($level = 1)
    {
        $result = '';
        for ($i = 0; $i < $level; $i++) {
            $result .= '  ';
        }
        return $result;
    }
}
foreach ($columnRows as $row) {
    $primary = $row['xmeta_column_is_primary'] ? 'true' : '';
    $fieldName = $row['xmeta_column_name'];
    $attrName = $row['xmeta_column_attr'];
    $caption = $row['xmeta_column_caption'];
    $comment = $row['xmeta_column_comment'];
    $enum = $row['xmeta_column_enum_info'];
    $default = $row['xmeta_column_default_value'];
    $notnull = $row['xmeta_column_is_notnull'] ? 'true' : '';
    $mysqlType = $row['xmeta_column_type'];
    $typeParam = $row['xmeta_column_type_param'];
    $phpType = $this->mysqlTypeToPhpType($mysqlType, $mysqlTypeParam);
    $jsonData = json_decode($row['xmeta_column_json'], true);
    
    //echo "#{$comment}\n";
    echo "{$attrName}:\n";
    echo left(1) . "caption: {$caption}\n";
    echo left(1) . "fieldName: {$fieldName}\n";
    if ($primary)     echo left(1) . "primary: {$primary}\n";
    if ($phpType)     echo left(1) . "phpType: {$phpType}\n";
    if ($mysqlType)   echo left(1) . "mysqlType: {$mysqlType}\n";
    if ($notnull)     echo left(1) . "must: {$notnull}\n";
    if ($default)     echo left(1) . "default: {$default}\n";
    // dx Grid
    $dxGrid = [];
    if (in_array($mysqlType, ['DATE', 'DATETIME', 'TIMESTAMP'])) {
        $dxGrid['dataType'] = 'date';
        $dxGrid['format'] = 'yyyy-MM-dd';
    }
    echo left(1) . "dxGridColumn:\n";
    if (isset($dxGrid['dataType'])) echo left(2) . "dataType: {$dxGrid['dataType']}\n";
    if (isset($dxGrid['format']))   echo left(2) . "format: {$dxGrid['format']}\n";
    echo left(2) . "width: 100\n";
    if (isset($jsonData['visible']) && !$jsonData['visible']) {
        echo left(2) . "visible: false\n";
        echo left(2) . "showInColumnChooser: false\n";
    }
    if (isset($jsonData['enum']) && $jsonData['enum']) {
        echo left(2) . "lookup:\n";
        echo left(3) . "valueExpr: id\n";
        echo left(3) . "displayExpr: caption\n";
        echo left(3) . "dataSource:\n";
        echo left(4) . "pageSize: 10\n";
        echo left(4) . "paginate: true\n";
        echo left(4) . "store:\n";
        echo left(5) . "type: array\n";
        echo left(5) . "key: id\n";
        echo left(5) . "data:\n";
        foreach ($jsonData['enum'] as $k => $v) {
            echo left(6) . "-  id: {$k}\n";
            echo left(6) . "   caption: '{$v}'\n";
        }
    }
    // fixed: false
    // filterOperations: ["contains", "="],
    // selectedFilterOperation: "="
    // allowHeaderFiltering: false
    // filterType: include 包含 或 exclude 排除
    // filterValue: "abc" 初始过滤值
    // filterValues: [2014, 2015] 多个初始过滤值
    // headerFilter: { allowSearch: false} 头选择启用搜索
    // allowHiding: false 允许隐藏
    // showInColumnChooser: false 是否显示在隐藏面板
    // showEditorAlways: false 不显示编辑框
    // allowFiltering: false, 允许过滤
    // allowHeaderFiltering: true 允许头过滤

}
?>
