# Mix Turbo — site estático com painel Supabase

Esta versão não precisa de servidor Python nem de computador ligado. O site é publicado como uma pasta comum; o Supabase mantém login e dados na nuvem.

## 1. Testar a aparência agora

A versão vem com `DEMO_MODE: true`.

1. Abra `index.html` para ver o site público.
2. Clique em **Área da equipe** ou abra `painel.html`.
3. Use `demo@mixturbo.com.br` e qualquer senha.

No modo demonstração, os dados ficam apenas no navegador. Não use informações reais nessa etapa.

## 2. Criar o banco na nuvem

1. Crie uma conta no Supabase e clique em **New project**.
2. Escolha um nome, uma região e uma senha forte para o banco.
3. Aguarde a criação do projeto.
4. No menu lateral, abra **SQL Editor** e clique em **New query**.
5. Abra o arquivo `supabase/setup.sql`, copie tudo, cole no editor e clique em **Run**.

O SQL cria:

- tabela de usuários/perfis;
- cadastro de clientes;
- cadastro de serviços;
- lançamento individual e em lote de serviços;
- relatório diário automático;
- fechamento semanal feito pelo painel;
- regras de acesso RLS;
- permissão de exclusão apenas para administrador.

## 3. Criar o primeiro acesso

1. No Supabase, abra **Authentication > Users**.
2. Clique em **Add user** e depois em **Create new user**.
3. Informe o e-mail e uma senha forte.
4. Marque o usuário como confirmado, quando essa opção aparecer.

O primeiro usuário criado após o SQL recebe perfil de **administrador**. Os seguintes recebem perfil de **operador**.

Para mudar manualmente um usuário para administrador, rode no SQL Editor:

```sql
update public.profiles
set role = 'admin'
where email = 'email@daempresa.com.br';
```

## 4. Conectar o site ao Supabase

1. No Supabase, abra **Project Settings > API**.
2. Copie a **Project URL**.
3. Copie a **Publishable key**. Em projetos antigos, pode aparecer como `anon public`.
4. Abra `config.js` com o Bloco de Notas.
5. Substitua os valores e mude o modo demonstração para `false`:

```js
window.MIX_TURBO_CONFIG = {
  SUPABASE_URL: "https://SEU-PROJETO.supabase.co",
  SUPABASE_PUBLISHABLE_KEY: "SUA_CHAVE_PUBLICA",
  DEMO_MODE: false
};
```

Nunca coloque uma `secret key` ou `service_role` no `config.js`.

## 5. Testar antes de publicar

Para o teste mais confiável, use a extensão **Live Server** do VS Code:

1. Abra a pasta no VS Code.
2. Instale a extensão Live Server.
3. Clique com o botão direito em `index.html`.
4. Escolha **Open with Live Server**.
5. Entre em `http://127.0.0.1:5500/painel.html`.

Você também pode publicar primeiro na Netlify e testar pelo endereço temporário.

## 6. Publicar sem servidor próprio

### Netlify por arrastar e soltar

1. Entre na Netlify.
2. Abra a área de criação de site por **drag and drop**.
3. Arraste a pasta `mixturbo-supabase` inteira, não apenas o `index.html`.
4. Aguarde a publicação.
5. Abra o endereço temporário fornecido pela Netlify.

O painel poderá ser acessado por:

- `https://endereco-do-site.netlify.app/painel`
- `https://endereco-do-site.netlify.app/painel.html`

Para atualizar o site, arraste novamente a pasta atualizada na área de deploys.

## 7. Configurar recuperação de senha

Depois de publicar:

1. No Supabase, abra **Authentication > URL Configuration**.
2. Em **Site URL**, coloque o endereço principal do site.
3. Em **Redirect URLs**, adicione o endereço do painel, por exemplo:

```text
https://seudominio.com.br/painel.html
https://seudominio.com.br/painel
```

Faça isso novamente ao trocar o endereço temporário pelo domínio definitivo.

## 8. Conectar domínio próprio

No painel da Netlify:

1. Abra **Domain management**.
2. Escolha **Add a domain**.
3. Informe o domínio do cliente.
4. Faça os ajustes de DNS indicados pela plataforma.
5. Depois que o domínio funcionar, atualize **Site URL** e **Redirect URLs** no Supabase.

O computador do cliente pode permanecer desligado. A Netlify entrega os arquivos do site e o Supabase mantém o banco e o login.

## Perfis e permissões

**Operador** pode cadastrar e editar clientes e serviços, fazer lançamentos em lote, visualizar relatórios diários, alterar pagamentos e exportar relatórios e fechamentos.

**Administrador** pode fazer tudo isso e também excluir registros.

Usuários são criados em **Supabase > Authentication > Users**. Esta versão não coloca a criação de usuários dentro do site para evitar expor uma chave administrativa no navegador.

## Usar o lançamento em lote

1. Entre no painel.
2. Abra **Serviços**.
3. Clique em **+ Lançar em lote**.
4. Escolha cliente, data, motorista, veículo e situação uma única vez.
5. Adicione uma linha para cada viagem.
6. Clique em **Salvar X serviços**.

Cada linha será salva como um serviço separado, portanto continuará sendo possível editar ou cancelar apenas uma viagem.

## Usar o relatório diário

1. No menu lateral, abra **Relatório diário**.
2. Escolha a data.
3. Use os filtros de cliente ou motorista quando necessário.
4. Consulte os totais, os agrupamentos e a lista de serviços.
5. Use **Exportar CSV** ou **Imprimir relatório**.

O relatório é calculado automaticamente a partir dos serviços registrados. Não é necessário criar um fechamento diário manual.

## Atualizar uma instalação anterior

Se o site já estiver configurado, preserve seu `config.js`, publique os novos arquivos e depois coloque o `config.js` configurado de volta. Esta atualização não exige executar um novo SQL.

## Arquivos principais

- `index.html`: site público;
- `painel.html`: painel administrativo;
- `painel.css`: visual do painel;
- `painel.js`: funcionamento do painel;
- `config.js`: conexão pública com Supabase;
- `supabase/setup.sql`: banco e regras de segurança;
- `_redirects`: cria o endereço `/painel` na Netlify;
- `_headers`: adiciona cabeçalhos básicos de segurança.

## Cuidados importantes

- Não use dados reais enquanto `DEMO_MODE` estiver em `true`.
- Não publique nenhuma chave `secret` ou `service_role`.
- Ative autenticação em dois fatores na conta que administra Supabase e Netlify.
- Revise periodicamente os usuários cadastrados.
- Exporte relatórios importantes e mantenha uma rotina de backup adequada ao plano contratado.


## Ativar a nova área de Orçamentos

Se você já executou o SQL da versão anterior, abra `supabase/atualizacao-orcamentos.sql`, copie todo o conteúdo, cole no SQL Editor do Supabase e clique em **Run**.

Em um projeto novo, basta executar o `supabase/setup.sql` completo.

Depois, publique a pasta atualizada. O fluxo será: formulário do site → Orçamentos → ✓ negócio fechado → Vendas / Serviços → relatórios.
