- fileFilter no Multer rejeita tipos não suportados antes de bufferizar
- Limite por tipo: imagem 5 MB, áudio/vídeo 16 MB, documento 100 MB
- Erro retornado ao frontend em caso de violação
- Upload do arquivo para Meta API (multipart) para obter media_id
- Armazenamento local via MediaStorageService antes do envio
- Suporte a image, audio, video e document via mimeTypeToMediaType
- Salva mensagem no banco com media_path e media_mime_type
- Emite via Socket.IO para atualizar o chat em tempo real