<?php

/**
 * ThinkORM 数据库配置
 * 从 config/database.php 迁移
 *
 * .env 支持两种格式（二选一）：
 * 1. BuildAdmin 格式：database.hostname、database.database 等（需 env 支持点号）
 * 2. 标准格式：DATABASE_HOSTNAME、DATABASE_DATABASE 等
 */

$env = function (string $dotKey, $default = null) {
    $upperKey = strtoupper(str_replace('.', '_', $dotKey));
    $value = env($dotKey, null);
    if ($value === null) {
        $value = env($upperKey, $default);
    }
    return $value ?? $default;
};

return [
    // 默认使用的数据库连接配置
    'default' => $env('database.driver', 'mysql'),

    // 自定义时间查询规则
    'time_query_rule' => [],

    // 自动写入时间戳字段
    'auto_timestamp' => true,

    // 时间字段取出后的默认时间格式
    'datetime_format' => false,

    // 时间字段配置 配置格式：create_time,update_time
    'datetime_field' => '',

    // 数据库连接配置信息
    'connections' => [
        'mysql' => [
            // 数据库类型
            'type' => $env('database.type', 'mysql'),
            // 服务器地址
            'hostname' => $env('database.hostname', '127.0.0.1'),
            // 数据库名（与 database.php / .env 一致）
            'database' => $env('database.database', 'webman-buildadmin-mall'),
            // 用户名（与 .env DATABASE_USERNAME 一致，默认勿用 root 以免与本机 MySQL 不符）
            'username' => $env('database.username', 'webman-buildadmin-mall'),
            // 密码（与 .env DATABASE_PASSWORD 一致）
            'password' => $env('database.password', '123456'),
            // 端口
            'hostport' => $env('database.hostport', '3306'),
            // 数据库连接参数（MYSQL_ATTR_USE_BUFFERED_QUERY 避免 "Cannot execute queries while other unbuffered queries are active"）
            'params' => [
                \PDO::ATTR_TIMEOUT => 3,
                \PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
            ],
            // 数据库编码默认采用 utf8mb4
            'charset' => $env('database.charset', 'utf8mb4'),
            // 数据库表前缀
            'prefix' => $env('database.prefix', ''),

            // 数据库部署方式:0 集中式,1 分布式(主从)
            'deploy' => 0,
            // 数据库读写是否分离
            'rw_separate' => false,
            // 读写分离后 主服务器数量
            'master_num' => 1,
            // 指定从服务器序号
            'slave_no' => '',
            // 是否严格检查字段是否存在
            'fields_strict' => true,
            // 是否需要断线重连
            'break_reconnect' => true,
            // 监听SQL（调试用）
            'trigger_sql' => $env('app_debug', false),
            // 开启字段缓存
            'fields_cache' => false,

            // 连接池配置（Webman 常驻内存模式必需）
            'pool' => [
                'max_connections' => 5,
                'min_connections' => 1,
                'wait_timeout' => 3,
                'idle_timeout' => 60,
                'heartbeat_interval' => 50,
            ],
        ],
    ],

    // 自定义分页类
    'paginator' => '',

    // 迁移表名（TableManager/Phinx 使用）
    'migration_table' => 'migrations',
];
