<?php
/**
 * index.php - a RAIZ do sistema
 *
 * TRES CARAS (decididas pelo ENDERECO, nao so' pelo dominio)
 *
 *   1. /loja/<nome>/...  -> entrega o sistema daquela farmacia (index.html).
 *      Vale tambem para endereco interno da tela: o nginx tira o /loja/<nome>
 *      e cai aqui de novo, e o REQUEST_URI continua trazendo o caminho
 *      completo;
 *   2. a RAIZ da plataforma (/): pagina dizendo onde ficam o painel e o site;
 *   3. qualquer OUTRO endereco: pagina explicando que ali nao existe farmacia
 *      (ex.: /nome-da-farmacia, sem o /loja/).
 *
 * POR QUE O ITEM 3 EXISTE
 *
 *   O sistema e' uma tela unica: antes, qualquer endereco desconhecido abria
 *   o index.html (era o fallback do nginx). Resultado: quem digitava
 *   /nome-da-farmacia via a TELA DE LOGIN da farmacia — mas a tela nao sabia
 *   de qual farmacia era (o endereco nao diz), e todo login respondia 404.
 *   Endereco errado tem de dizer que esta' errado.
 *
 * IMPORTANTE: a decisao aqui NAO consulta o banco.
 *
 *   A primeira versao perguntava ao registro central "esta' requisicao e' de
 *   algum cliente?" — e, numa instalacao nova (banco central ainda sem
 *   tabelas, ou servidor de banco fora do ar), essa consulta falhava e o
 *   visitante via um erro tecnico em vez da pagina. Agora a comparacao e'
 *   com o dominio e o caminho: sem banco, sem surpresa.
 */

declare(strict_types=1);

$raiz = __DIR__;

// Carrega a configuracao (nao abre conexao: isso so' acontece sob demanda).
if (is_file($raiz . '/api/config/app.php')) {
    try {
        require_once $raiz . '/api/config/app.php';
    } catch (\Throwable $e) {
        // sem configuracao: a pagina abaixo ainda serve
    }
}

$host = strtolower((string) ($_SERVER['HTTP_HOST'] ?? ''));
$host = (string) preg_replace('/:\d+$/', '', $host);

$dominioPlataforma = '';

if (function_exists('env')) {
    $dominioPlataforma = strtolower(trim((string) env('PLATAFORMA_DOMINIO', '')));
}

/*
 * O CAMINHO desta requisicao (sem a query).
 *
 * O nginx tira o /loja/<nome> e cai aqui de novo, mas o REQUEST_URI continua
 * trazendo o endereco completo — e' por ele que se sabe se a pessoa esta' num
 * endereco de farmacia.
 */
$caminho = (string) (parse_url((string) ($_SERVER['REQUEST_URI'] ?? '/'), PHP_URL_PATH) ?: '/');
$caminho = '/' . ltrim($caminho, '/');

/*
 * E' um endereco de farmacia? (/loja/<nome> ou qualquer coisa dentro dele)
 *
 * O prefixo pode vir repetido (www, subpasta): procura "/loja/" em qualquer
 * posicao, que e' como os enderecos sao montados no projeto.
 */
$ehEnderecoDeLoja = (bool) preg_match('#/loja/[a-z0-9][a-z0-9-]*(/|$)#i', $caminho);

/*
 * E' a raiz da plataforma? (o endereco do painel/site, sem cliente nenhum)
 * Sem dominio configurado a resposta e' "nao": nesse caso entrega o sistema,
 * como era antes deste arquivo existir — assim o modelo por subdominio (e o
 * teste local) continua igual.
 */
$ehRaizDaPlataforma = $dominioPlataforma !== '' && $host === $dominioPlataforma;
$caminhoEhRaiz = in_array($caminho, ['/', '/index.php'], true);

/*
 * 1) ENDERECO DE FARMACIA -> entrega o sistema dela.
 *
 * Vale tambem no modelo por subdominio (host de um cliente, sem /loja no
 * caminho): nesse caso o cliente e' o proprio dominio.
 */
if ($ehEnderecoDeLoja || !$ehRaizDaPlataforma || !$caminhoEhRaiz) {
    if ($ehEnderecoDeLoja || !$ehRaizDaPlataforma) {
        $sistema = $raiz . '/index.html';

        if (is_file($sistema)) {
            header('Content-Type: text/html; charset=UTF-8');
            readfile($sistema);
            exit;
        }
    }

    /*
     * 3) ENDERECO DESCONHECIDO na raiz da plataforma (ex: /nome-da-farmacia,
     *    sem o /loja/): explica onde e' o lugar certo, em vez de abrir uma
     *    tela de login que nao funciona.
     */
    http_response_code(404);
    header('Content-Type: text/html; charset=UTF-8');

    $enderecoPedido = htmlspecialchars($caminho, ENT_QUOTES, 'UTF-8');
    $exemplo = htmlspecialchars(($host !== '' ? $host : 'seu-endereco') . '/loja/nome-da-farmacia', ENT_QUOTES, 'UTF-8');
    ?>
    <!doctype html>
    <html lang="pt-BR">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="robots" content="noindex, nofollow">
    <title>Endereço não encontrado · <?= htmlspecialchars($titulo ?? 'ZapAtende', ENT_QUOTES, 'UTF-8') ?></title>
    <style>
      :root{--verde:#159f79;--verde-escuro:#11795e;--tinta:#273833;--suave:#7d8f86;--borda:#e5ece7;--fundo:#f4f8f5}
      *{box-sizing:border-box}
      body{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--fundo);color:var(--tinta);
           font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;padding:24px}
      .caixa{width:100%;max-width:560px;background:#fff;border:1px solid var(--borda);border-radius:16px;
             padding:40px;box-shadow:0 10px 40px #1c5d300f}
      .marca{font-size:20px;font-weight:700;letter-spacing:-.5px;color:var(--verde-escuro)}
      .marca span{color:var(--verde)}
      h1{margin:22px 0 10px;font-size:22px;letter-spacing:-.5px}
      p{margin:0 0 14px;font-size:15px;line-height:1.65;color:#5d6f66}
      code{background:#f1f6f2;border:1px solid var(--borda);border-radius:6px;padding:2px 7px;font-size:13.5px;color:var(--verde-escuro)}
      .blocos{display:grid;gap:12px;margin:24px 0 6px}
      a.cartao{display:block;border:1px solid var(--borda);border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit}
      a.cartao:hover{border-color:#bfe0cd;background:#fafdfb}
      a.cartao b{display:block;font-size:14px;color:var(--tinta)}
      a.cartao small{display:block;margin-top:3px;font-size:12.5px;color:var(--suave)}
    </style>
    </head>
    <body>
    <div class="caixa">
      <div class="marca">zapatende<span>.</span></div>

      <h1>Este endereço não é de nenhuma farmácia</h1>

      <p>
        Você pediu <code><?= $enderecoPedido ?></code>, mas o sistema de cada farmácia fica
        <b>dentro de <code>/loja/</code></b> — por exemplo:
      </p>

      <p><code><?= $exemplo ?></code></p>

      <p>
        Se você é funcionário de uma farmácia e não sabe o seu endereço, peça ao responsável
        pela conta. Se é você que administra o sistema, use o painel:
      </p>

      <div class="blocos">
        <a class="cartao" href="/painel/">
          <b>Painel da plataforma</b>
          <small>Clientes, planos, faturas e o endereço de cada farmácia.</small>
        </a>
        <a class="cartao" href="/">
          <b>Página inicial</b>
          <small>O que existe neste endereço e onde cada parte fica.</small>
        </a>
      </div>
    </div>
    </body>
    </html>
    <?php
    exit;
}

// ---------------------------------------------------------------
// 2) Raiz da plataforma: pagina de aviso
// ---------------------------------------------------------------
http_response_code(200);
header('Content-Type: text/html; charset=UTF-8');

$titulo = 'ZapAtende';
?>
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex, nofollow">
<title><?= htmlspecialchars($titulo, ENT_QUOTES, 'UTF-8') ?> · endereço da plataforma</title>
<style>
  :root{--verde:#159f79;--verde-escuro:#11795e;--tinta:#273833;--suave:#7d8f86;--borda:#e5ece7;--fundo:#f4f8f5}
  *{box-sizing:border-box}
  body{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--fundo);color:var(--tinta);
       font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;padding:24px}
  .caixa{width:100%;max-width:560px;background:#fff;border:1px solid var(--borda);border-radius:16px;
         padding:40px;box-shadow:0 10px 40px #1c5d300f}
  .marca{font-size:20px;font-weight:700;letter-spacing:-.5px;color:var(--verde-escuro)}
  .marca span{color:var(--verde)}
  h1{margin:26px 0 10px;font-size:24px;letter-spacing:-.5px}
  p{margin:0 0 14px;font-size:15px;line-height:1.65;color:#5d6f66}
  .blocos{display:grid;gap:12px;margin:26px 0 8px}
  a.cartao{display:block;border:1px solid var(--borda);border-radius:12px;padding:16px 18px;text-decoration:none;color:inherit}
  a.cartao:hover{border-color:#bfe0cd;background:#fafdfb}
  .cartao b{display:block;font-size:15px;color:var(--tinta)}
  .cartao small{display:block;margin-top:4px;font-size:13px;color:var(--suave)}
  code{background:#f1f6f2;border:1px solid var(--borda);border-radius:6px;padding:2px 7px;font-size:13.5px;color:var(--verde-escuro)}
  .rodape{margin-top:22px;font-size:12.5px;color:#9aab9f;line-height:1.7}
</style>
</head>
<body>
<div class="caixa">
  <div class="marca">zapatende<span>.</span></div>

  <h1>Este é o endereço da plataforma</h1>

  <p>
    Aqui ficam o site de vendas e o painel de administração. O sistema de
    atendimento de cada farmácia tem endereço próprio, entregue no cadastro:
  </p>

  <p><code><?= htmlspecialchars($host !== '' ? $host : 'seu-endereco', ENT_QUOTES, 'UTF-8') ?>/loja/<b>nome-da-farmacia</b></code></p>

  <div class="blocos">
    <a class="cartao" href="/painel/">
      <b>Painel da plataforma</b>
      <small>Para quem administra o sistema: clientes, planos, faturas e pagamentos.</small>
    </a>
    <a class="cartao" href="/site/">
      <b>Site de vendas</b>
      <small>Planos, preços e cadastro de novas farmácias.</small>
    </a>
  </div>

  <p class="rodape">
    É funcionário de uma farmácia? O endereço de acesso é
    <code>/loja/nome-da-farmacia</code> — se não souber o seu, peça ao
    responsável pela conta.
  </p>
</div>
</body>
</html>
