Implementa o MVP do Adaptador de Planilhas no Elo Pro.
O módulo usa a identidade Supabase, isola cada workspace e registra storage, TTL, runner e biblioteca XLSX como decisões ainda abertas. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
commit
6e23f1533b
144 files changed
+19060
No files matched your search
@@ -0,0 +1,26 @@
|
||||
# Modelo de dados
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
workspaces ||--o| spreadsheet_adapter_settings : configura
|
||||
workspaces ||--o{ spreadsheet_models : possui
|
||||
workspaces ||--o{ spreadsheet_jobs : isola
|
||||
profiles ||--o{ spreadsheet_jobs : executa
|
||||
spreadsheet_models ||--o{ spreadsheet_jobs : orienta
|
||||
spreadsheet_jobs ||--o{ spreadsheet_job_sources : contem
|
||||
spreadsheet_job_sources ||--o{ spreadsheet_job_mappings : mapeia
|
||||
workspaces ||--o{ audit_log : audita
|
||||
```
|
||||
|
||||
Migrations: `0001_platform_shim.sql`, `0002_spreadsheet_adapter.sql`, `0003_rls.sql`. Rollback do módulo: `migrations/down/0002_spreadsheet_adapter_down.sql`. Não remove tabelas de identidade do Elo Pro.
|
||||
|
||||
## Integridade
|
||||
|
||||
- Nome lógico único entre modelos `active` por workspace
|
||||
- No máximo 10 modelos ativos e 10 fontes por job, também por trigger
|
||||
- Mapeamento único nos dois sentidos (`source_column` e `model_column`)
|
||||
- Job não referencia modelo de outro workspace
|
||||
- Conteúdo da planilha fica no storage, não em JSONB de linhas
|
||||
- `status = deleted` e `deleted_at` deixam a exclusão física reversível até a decisão de produto
|
||||
|
||||
Colunas extras em fontes (`output_csv_key`, `output_xlsx_key`, `columns_schema`, `process_idempotency_key`) guardam metadados da saída temporária. O PDF é gerado na hora do download a partir do CSV privado.
|
||||
Reference in new issue
Block a user