# plugin-tasks

`@fayz-ai/plugin-tasks` · beta · Capability parcial

Work happens between the records. A salon owner needs to "call the supplier," a clinic admin needs to "follow up on lab results" — small things that never fit neatly into a booking or an invoice. plugin-tasks gives every Fayz app a lightweight, always-available task list: a topbar button that opens a drawer for quick-add, statuses, priorities, due dates, labels, and assignees.

## Visão geral

Gestão de tarefas transversal a qualquer app. Diferente da maioria dos plugins, o `plugin-tasks` não adiciona um item no menu: ele monta um botão na barra superior do shell (zona `shell.topbar.end`) que abre uma gaveta de tarefas de qualquer lugar do app, além de uma aba em Configurações.

É a **capability completa** deste grupo — entrega dados, UI e ferramenta de IA prontos. Empacota duas migrations (`000_plg_rename` + `001_tasks_base`) com duas tabelas próprias, `tsk_tasks` (subtarefas via `parent_id`, status `todo`/`in_progress`/`done`/`cancelled`, prioridade `low`/`medium`/`high`/`urgent`, prazo e etiquetas) e `tsk_labels`. O provider Supabase cai automaticamente para um provider mock em memória quando o Supabase não está configurado.

Para IA, expõe a ferramenta `getTasksSummary` (total, atrasadas, vencendo hoje, por status e prioridade).

## Quando usar

- Precisa de um "to-do" leve disponível em todo o app, sem ocupar um item de menu.
- Quer subtarefas, prioridades e etiquetas coloridas sem construir do zero.
- Quer que o assistente de IA responda "o que está atrasado?" a partir dos dados reais.

## Ficha técnica

- **Pacote:** `@fayz-ai/plugin-tasks`
- **Versão:** 0.1.7
- **Status:** beta
- **Capability:** Capability parcial
- **Tipo de produto:** Gestão (Admin/SaaS)
- **Canal stable:** `^0.1.7`
- **Migrations:** 2 migration(s)
- **Factory:** `createTasksPlugin()`

## Modelo de dados

Tabelas instaladas (convenção `plg_` · `tenant_id` + RLS):

- `plg_tasks_labels` — name, color, is_active
- `plg_tasks_tasks` — title, description, status, priority, due_date, assigned_to_id

## Tools de IA

| id | modo | descrição |
| --- | --- | --- |
| `tasks.summary` | read | Returns a summary of pending tasks: total, overdue, due today, by status and priority. |

## Integrações

Sem conector hospedado — provedores externos via spine de conectores (`@fayz-ai/core`).

## Integrar

Adicione o plugin em `surfaces.admin.plugins` do `app.manifest.json` e rode o doctor:

```json
{ "surfaces": { "admin": { "plugins": [ { "id": "tasks", "enabled": true } ] } } }
```

```bash
npx fayz doctor
```
