feat: implementar sistema de preferências do usuário e refatorar changelog

Adiciona sistema completo de preferências de usuário:
  - Cria tabela userPreferences no schema com campos disableMagnetlines, periodMonthsBefore e periodMonthsAfter
  - Implementa página de Ajustes com abas (Preferências, Alterar nome, Senha, E-mail, Deletar conta)
  - Adiciona componente PreferencesForm para configuração de magnetlines e períodos de exibição
  - Propaga periodPreferences para todos os componentes de lançamentos e calendário

  Refatora sistema de changelog:
  - Remove implementação anterior baseada em JSON estático
  - Adiciona nova página de changelog dinâmica em app/(dashboard)/changelog
  - Adiciona componente changelog-list.tsx
  - Remove arquivos obsoletos (changelog-notification, actions, data, utils, scripts)

  Adiciona controle de saldo inicial em contas:
  - Novo campo excludeInitialBalanceFromIncome em contas
  - Permite excluir saldo inicial do cálculo de receitas
  - Atualiza queries de lançamentos para respeitar esta configuração

  Melhorias adicionais:
  - Adiciona componente ui/accordion.tsx do shadcn/ui
  - Refatora formatPeriodLabel para displayPeriod centralizado
  - Propaga estabelecimentos para componentes de lançamentos
  - Remove variável DB_PROVIDER obsoleta do .env.example e documentação
  - Adiciona 6 migrações de banco de dados (0003-0008)
This commit is contained in:
Felipe Coutinho
2026-01-03 14:18:03 +00:00
parent 3eca48c71a
commit fd817683ca
87 changed files with 13582 additions and 1445 deletions

View File

@@ -241,7 +241,6 @@ Esta é a **melhor opção para desenvolvedores** que vão modificar o código.
```env
# Banco de dados (usando Docker)
DATABASE_URL=postgresql://opensheets:opensheets_dev_password@localhost:5432/opensheets_db
DB_PROVIDER=local
# Better Auth (gere com: openssl rand -base64 32)
BETTER_AUTH_SECRET=seu-secret-aqui
@@ -319,7 +318,6 @@ Ideal para quem quer apenas **usar a aplicação** sem mexer no código.
```env
# Use o host "db" (nome do serviço Docker)
DATABASE_URL=postgresql://opensheets:opensheets_dev_password@db:5432/opensheets_db
DB_PROVIDER=local
# Better Auth
BETTER_AUTH_SECRET=seu-secret-aqui
@@ -365,7 +363,6 @@ Se você já tem PostgreSQL no **Supabase**, **Neon**, **Railway**, etc.
```env
DATABASE_URL=postgresql://user:password@host.region.provider.com:5432/database?sslmode=require
DB_PROVIDER=remote
BETTER_AUTH_SECRET=seu-secret-aqui
BETTER_AUTH_URL=http://localhost:3000
@@ -586,7 +583,6 @@ Copie o `.env.example` para `.env` e configure:
```env
# === Database ===
DATABASE_URL=postgresql://opensheets:opensheets_dev_password@localhost:5432/opensheets_db
DB_PROVIDER=local # ou "remote"
# === Better Auth ===
# Gere com: openssl rand -base64 32
@@ -653,10 +649,10 @@ pnpm env:setup
### Escolhendo entre Local e Remoto
| Modo | Quando usar | Como configurar |
| ---------- | ------------------------------------- | -------------------------------------- |
| **Local** | Desenvolvimento, testes, prototipagem | `DB_PROVIDER=local` + Docker |
| **Remoto** | Produção, deploy, banco gerenciado | `DB_PROVIDER=remote` + URL do provider |
| Modo | Quando usar | Como configurar |
| ---------- | ------------------------------------- | --------------------------------------------- |
| **Local** | Desenvolvimento, testes, prototipagem | `DATABASE_URL` com host "db" ou "localhost" |
| **Remoto** | Produção, deploy, banco gerenciado | `DATABASE_URL` com URL completa do provider |
### Drizzle ORM