# Camada de Imagem e Visão ## Estado atual O DayMaker guarda imagens dos itens, mas **não faz reconhecimento automático de imagem** no produto atual. A imagem de cada item é tratada como dado visual associado ao inventário. A app espera receber ou guardar URLs em `item_images(image_url)` e usa essas imagens para: - Mostrar cards no inventário. - Mostrar detalhes do item. - Mostrar itens planeados na semana. - Mostrar sugestões da IA com imagem quando há correspondência com itens reais. --- ## Fluxo atual de imagem ```text Item criado/editado ↓ Imagem associada ao item ↓ URL guardado em item_images.image_url ↓ Ecrãs carregam items com item_images(image_url) ↓ Image.network mostra a imagem ou fallback por categoria ``` --- ## Ficheiros relevantes | Ficheiro | Responsabilidade | |----------|------------------| | `lib/Screens/add_item_screen.dart` | Criação de itens e associação de dados | | `lib/Screens/item_screen.dart` | Inventário, detalhe, edição e imagem do item | | `lib/Screens/week_screen.dart` | Mostra imagens dos itens planeados | | `lib/Screens/home_screen.dart` | Mostra itens recentes, hoje e sugestões IA | --- ## Fallback visual Quando um item não tem imagem ou a imagem falha ao carregar: - A UI mostra um fundo com a cor da categoria. - A UI mostra o ícone da categoria. Isto evita cards vazios e mantém consistência visual. --- ## Reconhecimento automático por IA Reconhecimento automático por imagem **não está implementado**. Pode ser uma funcionalidade futura para sugerir: - Nome do item. - Categoria. - Tags. - Cor dominante. - Tipo de peça ou objeto. Possíveis serviços futuros: - Google Vision API. - Modelos multimodais via API externa. - Modelo local/servidor próprio. --- ## Regras para futuras implementações - Não guardar API keys privadas no cliente Flutter. - O utilizador deve poder confirmar/editar qualquer sugestão automática. - Nunca substituir nome, categoria ou tags sem confirmação. - Manter fallback manual caso a análise de imagem falhe. - Atualizar este documento antes de implementar visão computacional.