# 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`.