# Bulo Backend

Backend PHP/MySQL reconstruido para os apps `bulo_passageiro` e `bulo_motorista`.

## Como instalar

1. Crie o banco executando `database/schema.sql` no MySQL.
2. Ajuste usuario e senha em `config/database.php`.
3. Coloque esta pasta como `bulo_backend` dentro do servidor HTTP local.

Para cPanel/hospedagem, siga `DEPLOY_CPANEL.md`.

Se o banco ja existe, execute:

- `database/update_configuracoes.sql`
- `database/update_motoristas_documentos.sql`

No emulador Android, os apps usam `http://10.0.2.2/bulo_backend`, que aponta para o servidor HTTP rodando no computador.

## Endpoints principais

- `auth/register.php`
- `auth/login.php`
- `auth/register_motorista.php`
- `auth/motorista_status.php`
- `auth/check_codigoind.php`
- `auth/get_indicador_nome.php`
- `corridas/criar_corrida.php`
- `corridas/listar_disponiveis.php`
- `corridas/aceitar_corrida.php`
- `corridas/status_corrida.php`
- `configuracoes/app.php`
- `config/corridas/cancelar_corrida.php`

## Revisao de documentos de motorista

No cadastro de motorista agora sao obrigatorios:

- Foto/PDF da CNH
- Foto/PDF do documento do veiculo
- Foto de rosto (selfie)

Esses arquivos ficam em `uploads/motoristas` e o motorista inicia com status `pendente`.
Enquanto nao estiver `aprovado`, nao recebe corridas.

## Configuracoes de preco

A tabela `configuracoes` guarda os valores usados no calculo da corrida:

- `preco_base`
- `preco_por_km`
- `preco_por_minuto`
- `taxa_servico`

O app passageiro consulta `configuracoes/app.php` e calcula o valor estimado antes de criar a corrida.

Cada alteracao feita no painel grava o usuario em `configuracoes.atualizado_por` e tambem registra um historico em `configuracoes_historico`.

## Painel de administracao

Acesse:

`http://localhost/bulo_backend/admin/login.php`

Credenciais iniciais para ambiente local:

- Usuario: `admin`
- Senha: `admin123`

Em hospedagem, copie `config/admin.example.php` para `config/admin.local.php`
e preencha uma senha forte. O arquivo `admin.local.php` fica protegido pelo `.htaccess`.

Abas do painel:

- `admin/cadastros_motoristas.php` (todos os cadastros, com busca)
- `admin/pendentes_documentos.php` (somente pendentes para aprovar/reprovar)

## Backup e auditoria financeira

Arquivos principais:

- `database/update_backup_auditoria.sql`: cria a auditoria financeira e triggers dos eventos criticos.
- `tools/backup_mysql_bulo.ps1`: faz backup completo e copia binlogs.
- `tools/install_backup_tasks.ps1`: cria agendamentos do Windows.

Plano local:

- Backup completo diario em `C:\FlutterProjetos\backups\mysql\full`.
- Binlogs copiados a cada 5 minutos em `C:\FlutterProjetos\backups\mysql\binlogs`.
- Logs da rotina em `C:\FlutterProjetos\backups\mysql\logs\backup.log`.

Para copia fora do HD principal, configure a variavel de ambiente `BULO_BACKUP_OFFSITE`
apontando para OneDrive, Google Drive, outro disco ou pasta sincronizada.
