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

# OmniDom Hub Marketplace

> Plataforma centralizada para gestão de vendas multicanal, catálogo, estoque e integrações com marketplaces.

## O que é o OmniDom?

O **OmniDom** é um hub de gestão para sellers que vendem em múltiplos marketplaces (Mercado Livre, Shopee, entre outros). Ele centraliza produtos, estoque, pedidos e anúncios em uma única plataforma multi-tenant.

<CardGroup cols={2}>
  <Card title="Autenticação" icon="lock" href="/omnidom/auth">
    Login, registro, sessões e recuperação de senha com JWT e refresh tokens.
  </Card>

  <Card title="Catálogo de Produtos" icon="box" href="/omnidom/catalog">
    CRUD de produtos, variações, componentes (kits) e custos.
  </Card>

  <Card title="Estoque" icon="warehouse" href="/omnidom/inventory">
    Gestão de estoque por depósito, ajustes, transferências e dashboard.
  </Card>

  <Card title="Anúncios" icon="tag" href="/omnidom/listings">
    Sync de anúncios dos marketplaces e vinculação ao catálogo interno.
  </Card>

  <Card title="Integrações" icon="plug" href="/omnidom/integrations">
    Conexão OAuth com Mercado Livre, Shopee e outros canais.
  </Card>

  <Card title="Importação NF-e" icon="file-import" href="/omnidom/import">
    Upload de XML de NF-e para entrada de estoque com preview e confirmação.
  </Card>
</CardGroup>

## Arquitetura geral

O backend é construído em **NestJS** com **TypeORM** (PostgreSQL), **BullMQ** (Redis) para filas assíncronas e isolamento de dados por tenant via `TenancyMiddleware`.

```
Frontend (Next.js)
       │
       ▼
  API REST (NestJS)
       │
  ┌────┴────────────────────┐
  │   Guards & Middleware   │
  │  JwtAuth + TenantGuard  │
  └────┬────────────────────┘
       │
  ┌────┴──────────────────────────────────────┐
  │               Módulos de Domínio           │
  │  Catalog · Inventory · Orders · Listings   │
  │  Integrations · Processing · Warehouses    │
  └────┬──────────────────────────────────────┘
       │
  ┌────┴─────────────────┐
  │  PostgreSQL + Redis   │
  │  BullMQ queue jobs    │
  └──────────────────────┘
```

## Autenticação nas requisições

Todas as rotas protegidas exigem dois mecanismos:

1. **`JwtAuthGuard`** — verifica o cookie `accessToken` (JWT).
2. **`TenantGuard`** — valida que o `tenantId` no contexto corresponde ao usuário autenticado.

O tenant é resolvido automaticamente pelo `TenancyMiddleware` para cada requisição.
