docs: README completo com Tauri, downloads, stack
This commit is contained in:
@@ -87,11 +87,13 @@ fechamento-caixa/
|
|||||||
|
|
||||||
O mesmo código gera 3 binários diferentes conforme a variável de ambiente `DOBRADO_LOJA`:
|
O mesmo código gera 3 binários diferentes conforme a variável de ambiente `DOBRADO_LOJA`:
|
||||||
|
|
||||||
| Binário | Loja | Como buildar |
|
## Downloads
|
||||||
|---------|------|-------------|
|
|
||||||
| `fc-uniao.exe` | **Travada: UNIÃO** | `DOBRADO_LOJA=Uniao cargo build --release --target x86_64-pc-windows-gnu` |
|
| Binário | Loja | Download |
|
||||||
| `fc-alianca.exe` | **Travada: ALIANÇA** | `DOBRADO_LOJA=Alianca cargo build --release --target x86_64-pc-windows-gnu` |
|
|---------|------|----------|
|
||||||
| `fc-ambos.exe` | **Livre (União / Aliança)** | `cargo build --release --target x86_64-pc-windows-gnu` (sem env) |
|
| `fc-uniao.exe` | **Travada: UNIÃO** | [Baixar](https://git.ofrangao.com.br/filipe/fechamento-caixa/releases/download/v2.0.0-uniao/fc-uniao.exe) |
|
||||||
|
| `fc-alianca.exe` | **Travada: ALIANÇA** | [Baixar](https://git.ofrangao.com.br/filipe/fechamento-caixa/releases/download/v2.0.0-alianca/fc-alianca.exe) |
|
||||||
|
| `fc-ambos.exe` | **Seletor livre** | [Baixar](https://git.ofrangao.com.br/filipe/fechamento-caixa/releases/download/v2.0.0-ambos/fc-ambos.exe) |
|
||||||
|
|
||||||
Quando a loja é fixa, o seletor de loja no formulário é **escondido via JavaScript** e tentativas de mudar via API retornam erro.
|
Quando a loja é fixa, o seletor de loja no formulário é **escondido via JavaScript** e tentativas de mudar via API retornam erro.
|
||||||
|
|
||||||
@@ -129,6 +131,60 @@ Quando a loja é fixa, o seletor de loja no formulário é **escondido via JavaS
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Tauri — o runtime desktop
|
||||||
|
|
||||||
|
O app roda como **Tauri 2**, um runtime que embute um navegador WebView2 (Windows) dentro de um processo Rust.
|
||||||
|
|
||||||
|
### O que o Tauri fornece
|
||||||
|
|
||||||
|
| Recurso | Como é usado |
|
||||||
|
|---------|-------------|
|
||||||
|
| **Janela nativa** | A janela do app com barra de título, controls de redimensionar, ícone |
|
||||||
|
| **Sistema de arquivos** | Lê/escreve `config.json` e `fechamento.db` em `%LOCALAPPDATA%/FechamentoCaixa/` |
|
||||||
|
| **Invocação de comandos Rust** | Frontend JS chama `invoke('nome_comando', args)` → Rust executa e retorna |
|
||||||
|
| **HTTP client** | Plugin `supabase.rs` usa `reqwest` para falar com o Supabase |
|
||||||
|
| **Shell** | Abre diálogo de impressoras, executa `cmd /C copy` para impressão |
|
||||||
|
| **Diálogos nativos** | `tauri_plugin_dialog` para escolher arquivos, pastas, impressora |
|
||||||
|
|
||||||
|
### Comandos Tauri (Rust → JS)
|
||||||
|
|
||||||
|
O frontend **nunca acessa** Supabase, SQLite ou impressora diretamente. Tudo passa por `invoke`:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Salvar fechamento (SQLite + Supabase)
|
||||||
|
await invoke('salvar_fechamento', { estado });
|
||||||
|
|
||||||
|
// Sync com Supabase
|
||||||
|
await invoke('sb_salvar_fechamento', { estado });
|
||||||
|
|
||||||
|
// Detectar impressora
|
||||||
|
await invoke('detectar_impressora');
|
||||||
|
|
||||||
|
// Imprimir
|
||||||
|
await invoke('imprimir_recibo', { html: reciboHTML });
|
||||||
|
```
|
||||||
|
|
||||||
|
### Estrutura dos plugins Rust
|
||||||
|
|
||||||
|
```
|
||||||
|
src-tauri/src/plugins/
|
||||||
|
├── app.rs — Config da app (loja, operador default, sync)
|
||||||
|
├── storage.rs — SQLite local (fonte primária offline)
|
||||||
|
├── supabase.rs — Cliente HTTP para Supabase (service_role JWT)
|
||||||
|
├── printer.rs — Detecção EPSON TM-T20, fallback para window.print()
|
||||||
|
└── escpos.rs — Helpers ESCPOS (alinhamento, negrito, corte)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Onde os dados ficam
|
||||||
|
|
||||||
|
| Dado | Local |
|
||||||
|
|------|-------|
|
||||||
|
| Config (SUPABASE keys, loja default) | `%LOCALAPPDATA%/FechamentoCaixa/config.json` |
|
||||||
|
| Banco SQLite (fechamentos) | `%LOCALAPPDATA%/FechamentoCaixa/fechamento.db` |
|
||||||
|
| Rascunho auto-save | `%LOCALAPPDATA%/FechamentoCaixa/fechamento_rascunho.db` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Autores & Contexto
|
## Autores & Contexto
|
||||||
|
|
||||||
- **Desenvolvedor:** Filipe.Tavares
|
- **Desenvolvedor:** Filipe.Tavares
|
||||||
|
|||||||
Reference in New Issue
Block a user