db/db library
Camada de banco do Flenx: models declarativos com colunas e relações,
geração de migration (MySQL) e config via .env (servidor).
Classes
- DbColumn
-
Coluna de uma tabela. A "notação do banco" do model: tipo, nulo, único,
chave primária e chave estrangeira (references, no formato
'tabela.coluna') para relacionar tabelas. - DbConfig
-
Configuração de conexão ao banco — lida do ambiente (
.env), só no servidor. Nunca embuta credenciais no código nem no cliente. - DbModel
- Definição declarativa de uma tabela: colunas (com notação de banco) e relações. É a fonte para gerar migration, queries e código Dart/PHP.
- DbRegistry
-
Registro do backend de banco. Você escolhe por
DB_PROVIDER(supabase,firebase,rest,jsonl...) e adiciona as credenciais — mesma ideia do pagamento. Provedores novos entram comDbRegistry.register('x', ...). - DbRelation
-
Relação entre dois models — usada para gerar joins/includes padronizados.
Ex.: um pedido
belongsTocliente; um clientehasManypedidos. - FirestoreDbExecutor
-
DbExecutor que persiste no Firebase Firestore (via REST). Mesma
interface dos demais. Como o Firestore é NoSQL, há um pequeno mapeamento:
cada documento vira um
Mapcom a chaveid(o id do documento) somada aos campos.insertdevolve o id como int quando numérico (senão 0 — use oidretornado nas listagens). - RestApiDbExecutor
-
DbExecutor que persiste chamando uma API REST do Flenx (alvo Dart OU
PHP — é só apontar a URL). Usa o envelope padrão
{success, data, meta}e o contrato CRUD por tabela: - SiteSettings
-
Acesso (servidor) às configurações do site guardadas em
site_settings(registro único, colunadataem JSON). As páginas públicas leem daqui o que o admin editou (ex.: textos da home). VersettingsModel. - SqlMigrationGenerator
- Gera o SQL de criação das tabelas (MySQL) a partir dos DbModel, incluindo chaves primárias e estrangeiras (relações). Roda uma vez.
- SupabaseDbExecutor
- DbExecutor que persiste no Supabase (via PostgREST). Mesma interface dos demais — basta escolher e adicionar as credenciais.
Enums
- RelationKind
- Tipo de relacionamento entre tabelas.
- SqlType
- Tipos de coluna suportados, mapeados para SQL (dialeto MySQL — comum em hospedagem PHP e no alvo Dart).
Constants
- categoriesModel → const DbModel
-
Tabela de categorias do blog/portal (lista curada, editável pelo admin).
Inclua em
dbModelse use em endpoints CRUD. Oslugcasa com as páginas de arquivo do blog (/blog/categoria/<slug>); onameé exibido nos menus. - settingsModel → const DbModel
-
Configurações do site em um único registro (id=1) com a coluna
data(JSON). Usado para editar a tela home e opções gerais pelo admin sem código: o admin grava o JSON, e as páginas públicas leem dele. VerFlenxSettingsPageeSiteSettings. - usersModel → const DbModel
-
Tabela de usuários do admin (com papel/permissões). Inclua em
dbModelspara gerar a migration e use em endpoints CRUD. O camporolecasa com os papéis deAppRole/AdminPermissions('Administrador', 'Editor', ...).
Typedefs
-
DbExecutorFactory
= DbExecutor Function(Map<
String, String> env, Client? client) -
Cria um DbExecutor a partir do ambiente (
.env) + client HTTP opcional.