<?php
/**
 * 根入口（2026-10-23 新增）
 *
 * 解决"直接访问 http://IP/ERP/ 不知道去哪"的问题：
 *   · 单机部署（代码目录自带 .env）        → 302 到本目录 login.php（原行为）
 *   · 多租户且恰好开通了一个客户          → 302 到该客户登录页 /ERP/<码>/login.php
 *   · 多租户且开通了多个客户              → 列入口清单（只显示客户码，不涉密）
 *   · 多租户但一个客户都还没开通          → 提示去运营中心开通
 *
 * 只做跳转和清单，不做任何业务逻辑；客户码必须通过格式校验才显示。
 */

require_once __DIR__ . '/config/load_env.php';

header('Content-Type: text/html; charset=utf-8');
$base = bgBasePath();

// ── 单机部署：代码目录自带 .env → 原行为，直接去登录页 ──
if (is_file(__DIR__ . '/.env')) {
    header('Location: ' . $base . '/login.php');
    exit;
}

// ── 多租户：扫配置柜（tenants/<客户码>/.env）──
$tenants = [];
foreach ((glob(__DIR__ . '/tenants/*/.env') ?: []) as $__f) {
    $__code = basename(dirname($__f));
    // 与 Provision::validCode 同一规则，防目录名夹带奇怪字符进页面
    if (preg_match('/^[a-z0-9][a-z0-9_\-]{0,31}$/', $__code)) {
        $tenants[] = $__code;
    }
}
sort($tenants);

// 恰好一个客户：直接跳过去，少点一下
if (count($tenants) === 1) {
    header('Location: ' . $base . '/' . $tenants[0] . '/login.php');
    exit;
}

$e = function ($s) { return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); };
?><!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>生产报工系统 · 客户入口</title>
<style>
body { min-height: 100vh; display: flex; align-items: center; justify-content: center;
       background: linear-gradient(135deg, #667eea, #5568d3); padding: 20px;
       font-family: system-ui, 'Microsoft YaHei', sans-serif; margin: 0; }
.box { width: 100%; max-width: 420px; background: #fff; border-radius: 14px;
       padding: 30px 26px; box-shadow: 0 12px 40px rgba(0,0,0,.18); }
h1 { font-size: 20px; font-weight: 500; margin: 0 0 6px; }
p.sub { color: #8a90a8; font-size: 13px; margin: 0 0 20px; }
ul { list-style: none; margin: 0; padding: 0; }
li a { display: block; padding: 11px 14px; margin-bottom: 8px; border: 1px solid #e3e6f2;
       border-radius: 9px; color: #3f4899; text-decoration: none; font-size: 14.5px; }
li a:hover { background: #f2f4fd; border-color: #c3caee; }
.tip { margin-top: 14px; font-size: 13px; color: #8a90a8; line-height: 1.8; }
.warn { background: #fff8e6; border: 1px solid #ffe1a8; color: #a86500;
        border-radius: 8px; padding: 12px 14px; font-size: 13.5px; line-height: 1.9; }
</style>
</head>
<body>
<div class="box">
  <h1>生产报工系统</h1>

  <?php if (empty($tenants)): ?>
    <p class="sub">还没有开通客户</p>
    <div class="warn">
      本系统采用「一套代码、多客户分库」部署：每个客户由运营中心开通后，
      入口是 <code><?= e($base) ?>/客户码/login.php</code>。<br>
      现在还没有任何客户——请先到<b>运营中心</b>（<code><?= e($base) ?>/platform/</code>，
      即 <code>http://服务器IP/ERP/platform/</code>）
      登录后，在左侧「开通新客户」里开通；开通成功后本页会自动出现该客户的入口。
    </div>
  <?php else: ?>
    <p class="sub">请选择要进入的客户</p>
    <ul>
      <?php foreach ($tenants as $__t): ?>
        <li><a href="<?= e($base . '/' . $__t . '/login.php') ?>"><?= e($__t) ?> · 管理后台</a></li>
      <?php endforeach; ?>
    </ul>
    <div class="tip">
      工人现场报工入口：进入对应客户后，点登录页底部的「现场报工入口」，
      或直接访问 <code><?= e($base) ?>/客户码/m/index.php</code>。
    </div>
  <?php endif; ?>
</div>
</body>
</html>
