94 lines
2.1 KiB
Markdown
94 lines
2.1 KiB
Markdown
# Regras do Sistema de Sugestão
|
|
|
|
## Estado atual
|
|
|
|
O DayMaker não usa atualmente um motor de regras local como fonte principal de recomendações.
|
|
|
|
A sugestão é gerada pela IA através de `AiRecommendationService`, usando o inventário real do utilizador como contexto.
|
|
|
|
---
|
|
|
|
## Regras ativas
|
|
|
|
### R1 — Usar apenas inventário do utilizador
|
|
|
|
A IA recebe apenas itens do utilizador autenticado.
|
|
|
|
```text
|
|
items.user_id == currentUser.id
|
|
```
|
|
|
|
### R2 — Contexto textual dos itens
|
|
|
|
Cada item é enviado com:
|
|
|
|
- nome
|
|
- categoria
|
|
- tags
|
|
- nota/notes, quando disponível
|
|
|
|
### R3 — Modo silencioso para sugestões
|
|
|
|
Quando a sugestão vem da Home, o serviço usa `silent: true` e instrui a IA a responder apenas com nomes exatos dos itens.
|
|
|
|
### R4 — Correspondência com itens reais
|
|
|
|
A app cruza as linhas devolvidas pela IA com os nomes dos itens carregados do Supabase.
|
|
|
|
Apenas itens correspondidos são mostrados com imagem e podem ser exportados.
|
|
|
|
### R5 — Exportação para semana
|
|
|
|
Ao exportar:
|
|
|
|
1. A app cria ou encontra um registo em `plans` para o dia escolhido.
|
|
2. Insere relações em `plan_items`.
|
|
3. Evita duplicados já existentes no plano.
|
|
|
|
---
|
|
|
|
## Limitações atuais
|
|
|
|
- A IA pode devolver nomes com pequenas diferenças.
|
|
- O matching é textual e pode falhar se o nome não coincidir.
|
|
- Não existe ranking local por categoria, clima ou duração.
|
|
- Não existe checklist de itens preparados.
|
|
|
|
---
|
|
|
|
## Regras futuras recomendadas
|
|
|
|
### RF1 — Resposta estruturada
|
|
|
|
Pedir à IA JSON com identificadores ou nomes normalizados.
|
|
|
|
### RF2 — Score local
|
|
|
|
Calcular pontuação por:
|
|
|
|
- categoria
|
|
- tags
|
|
- ocasião
|
|
- histórico do utilizador
|
|
- clima
|
|
|
|
### RF3 — Checklist
|
|
|
|
Guardar estado de cada item planeado:
|
|
|
|
- planeado
|
|
- preparado
|
|
- levado
|
|
|
|
### RF4 — Clima
|
|
|
|
Ajustar sugestões quando houver dados meteorológicos.
|
|
|
|
---
|
|
|
|
## Notas para manutenção
|
|
|
|
- Não mudar o comportamento do modo `silent` sem atualizar `05_RECOMMENDATION_ENGINE.md`.
|
|
- Se a app passar a usar IDs na resposta da IA, atualizar este ficheiro e o serviço.
|
|
- Manter a exportação compatível com `plans` e `plan_items`.
|