> ## Documentation Index
> Fetch the complete documentation index at: https://docs.leavo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Visão Geral

> Upload de arquivos para uso em mensagens e conversas

## Upload de Arquivos

O Leavo permite fazer upload de imagens, áudios, vídeos e documentos para uso em mensagens e conversas.

## Formatos Suportados

<CardGroup cols={2}>
  <Card title="Imagens" icon="image">
    `.jpg`, `.jpeg`, `.png`

    Máx: 10 MB (compressão automática acima de 2 MB)
  </Card>

  <Card title="Áudio" icon="headphones">
    `.mp3`, `.wav`, `.ogg`, `.m4a`

    Máx: 10 MB
  </Card>

  <Card title="Vídeo" icon="video">
    `.mp4`, `.webm`, `.avi`

    Máx: 10 MB
  </Card>

  <Card title="Documentos" icon="file">
    `.pdf`, `.doc`, `.docx`, `.xls`, `.xlsx`, `.csv`, `.txt`

    Máx: 10 MB
  </Card>
</CardGroup>

## Fluxo de Upload

<Steps>
  <Step title="Envie o arquivo">
    Faça um `POST /backend/uploads` com o arquivo em multipart/form-data.
  </Step>

  <Step title="Receba a URL">
    A API retorna os metadados do arquivo, incluindo a `file_url` pública.
  </Step>

  <Step title="Use em mensagens">
    Utilize a `file_url` para enviar mídia em mensagens ou referenciá-la em outros contextos.
  </Step>
</Steps>

## Compressão Automática de Imagens

Imagens maiores que **2 MB** são automaticamente comprimidas:

* Dimensão máxima: 1920 x 1920 pixels (mantendo proporção)
* Qualidade: 85% (JPEG)
* Formato de saída: JPEG

## Status do Upload

| Status       | Descrição                                                |
| ------------ | -------------------------------------------------------- |
| `PENDING`    | Upload realizado, ainda não vinculado a nenhuma entidade |
| `ASSOCIATED` | Upload vinculado a uma mensagem ou conversa              |

<Note>
  Uploads com status `PENDING` por mais de 24 horas podem ser automaticamente removidos pelo processo de limpeza.
</Note>

## Endpoints

| Método   | Endpoint                             | Descrição                |
| -------- | ------------------------------------ | ------------------------ |
| `POST`   | `/backend/uploads`                   | Upload de arquivo        |
| `GET`    | `/backend/uploads/{id}`              | Obter upload por ID      |
| `GET`    | `/backend/uploads/tenant/{tenantId}` | Listar uploads do tenant |
| `DELETE` | `/backend/uploads/{id}`              | Excluir upload           |
| `PUT`    | `/backend/uploads/{id}/status`       | Atualizar status         |
| `POST`   | `/backend/uploads/cleanup`           | Limpar uploads órfãos    |
