Blog
Feature
15 de outubro de 20256 min

Favoritos, atribuição e anexos — os detalhes que mudam tudo

Existem os grandes recursos e existem as "pequenas" adições que tornam o produto realmente utilizável.

Os favoritos

Marcar uma tarefa como favorita é um alternador. Um booleano. Deveria levar 30 minutos. Na prática: coluna, RLS, filtro de feed, animação de estrela, sincronização em tempo real. O salto da estrela me levou mais tempo do que a lógica de negócios.

A atribuição de tarefas

O modelo é uma tabela de ligação collaborative.task_assignments. O verdadeiro desafio é o FilterBar com três modos (Todos / Criados por mim / Atribuídos a mim) combinado com o filtro hierárquico de grupos.

Os anexos — a escolha arquitetural

Duas abordagens possíveis: JSONB (simples, rápido) ou tabelas relacionais (mais trabalho, mais escalável). Escolhi as tabelas relacionais (privat.task_attachments, privat.memo_attachments) para o desempenho de consultas, exclusão em cascata limpa e RLS individuais.

A armadilha das URLs assinadas

O Supabase Storage gera URLs assinadas que expiram após uma hora. Minha solução: um StorageService.refreshAttachmentUrlsBatch() que regenera as URLs em lote via storage_path. É o tipo de detalhe invisível — quando funciona, ninguém percebe. Quando quebra, todo mundo vê.