# Importing

Importação inteligente de imóveis via XML VRSync — **Sprint 009**.

Namespace: `ImovelZapAi\Importing\`

**Promessa:** traga sua carteira de imóveis sem retrabalho.

## Estrutura

```text
packages/Importing/src/
├── Domain/           # Enums, exceções, regras puras
├── Application/      # Actions, Queries, DTOs, Ports, Services
├── Infrastructure/   # Eloquent, Jobs, Storage, Providers
├── Presentation/     # Controllers HTTP, rotas web/API
└── Shared/           # Metadados do package (`Package::LAYERS`)
```

| Camada | Responsabilidade |
|--------|------------------|
| **Domain** | Status do job, códigos de erro, exceções |
| **Application** | Parse, validação, mapeamento, orquestração de análise/importação |
| **Infrastructure** | Persistência, fila, download seguro de mídia |
| **Presentation** | Assistente web + API `/api/v1/imports` |
| **Shared** | Constantes do módulo |

## Documentação

- Sprint: [`docs/sprints/SPRINT_009_PROPERTY_IMPORTING.md`](../../docs/sprints/SPRINT_009_PROPERTY_IMPORTING.md)
- ADR: [`docs/adr/ADR-011-IMPORTACAO-XML.md`](../../docs/adr/ADR-011-IMPORTACAO-XML.md)

## Entidades

| Entidade | Model |
|----------|-------|
| ImportJob | `ImportJobModel` |
| ImportFile | `ImportFileModel` |
| ImportError | `ImportErrorModel` |
| ImportLog | `ImportLogModel` |
| PropertyImportSource | `PropertyImportSourceModel` |

## Integração

Não altera a estrutura do módulo Properties. Escrita de imóveis ocorre via port `PropertyImportWriterInterface` (adapter Eloquent em Infrastructure).
