# Setup de Banco e Usuário Admin (Windows)

## Pré-requisitos

- Python instalado
- PostgreSQL instalado (cliente `psql`)

## 1) Instalar PostgreSQL (se necessário)

No PowerShell:

```powershell
winget install -e --id PostgreSQL.PostgreSQL.17
```

Se preferir instalador manual:

- [https://www.postgresql.org/download/windows/](https://www.postgresql.org/download/windows/)

---

## 2) Rodar setup automático do projeto

Arquivo:

- `scripts/setup-db-windows.ps1`

Comando (exemplo):

```powershell
powershell -ExecutionPolicy Bypass -File ".\scripts\setup-db-windows.ps1" `
  -PgUser "postgres" `
  -PgHost "localhost" `
  -PgPort 5432 `
  -DbName "pesa" `
  -AdminName "Administrador" `
  -AdminEmail "admin@pesa.local" `
  -AdminPassword "Admin@12345" `
  -PersistEnv
```

O script:

- valida `psql`
- cria banco `pesa` se não existir
- define `DATABASE_URL`
- inicializa schema de autenticação
- cria (ou atualiza) usuário admin

> Para Supabase, não use o script automático deste passo. Nesse caso, configure
> `SUPABASE_DB_URL` (ou `DATABASE_URL`) com a connection string do projeto no
> painel do Supabase e inicie o backend normalmente.

---

## 3) Subir backend

Entrypoint **oficial**:

```powershell
python -m uvicorn backend.app:app --reload --host 0.0.0.0 --port 8001
```

(ou, se o pacote expuser `__main__`: `python -m backend.app`)

**Não use** `python -m backend.app_main` em ambientes novos: `app_main.py` é legado (sem intervenções/nap-cases/static).

---

## 4) Acessar login

- Abra `login.html`
- Use:
  - **E-mail**: `admin@pesa.local`
  - **Senha**: `Admin@12345`

> Altere a senha em ambiente produtivo.

