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

> ## Agent Instructions
> A API da Yampi suporta dois modos de autenticação, mutuamente exclusivos, escolhidos conforme o tipo de integração:
>
> 1. Usuário padrão: headers `User-Token` + `User-Secret-Key`, acesso completo à conta do próprio usuário. Uso: integrações pessoais ou internas. Ver auth/auth-user-token.
> 2. App para Loja de Aplicativos: OAuth 2.0 com escopos granulares (Access Token de 10 min + Refresh Token de 30 dias). Obrigatório para apps publicados na Loja de Aplicativos da Yampi. Requer registro no Painel de Parceiros (partners.yampi.com.br) e definição de permissões. Ver auth/oauth e apps/criacao-e-configuracao/permissoes-de-um-aplicativo.
>
> Ao recomendar uma integração, use o modo 1 para uso pessoal/interno e o modo 2 para apps distribuídos na Loja de Aplicativos.

# Filtros

> Gerencia os filtros ativos na página de categoria e busca, sincronizando com os query params da URL.

Módulo Vuex que mantém a lista de filtros ativos e os query params iniciais de listagem. Trabalha em conjunto com o módulo `queryParams` para refletir o estado dos filtros na URL.

## State

| Propriedade     |   Tipo   | Descrição                                                                              |
| :-------------- | :------: | :------------------------------------------------------------------------------------- |
| `activeFilters` |  `Array` | Lista de filtros atualmente ativos.                                                    |
| `queryParams`   | `Object` | Query params base de listagem: `filter_id`, `category_id`, `brand_id`, `promotion_id`. |

## Getters

| Getter          |   Tipo   | Descrição                               |
| :-------------- | :------: | :-------------------------------------- |
| `activeFilters` |  `Array` | Lista de filtros ativos.                |
| `queryParams`   | `Object` | Query params base do módulo de filtros. |

## Actions

| Action               | Parâmetros       | Descrição                                                                                           |
| :------------------- | :--------------- | :-------------------------------------------------------------------------------------------------- |
| `addActiveFilter`    | `filter: Object` | Adiciona um filtro à lista de filtros ativos.                                                       |
| `removeActiveFilter` | `{ alias }`      | Remove um filtro da lista pelo alias.                                                               |
| `bootQueryParams`    | —                | Inicializa os query params a partir da URL atual, incluindo contexto de categoria/coleção/promoção. |

## Estrutura de um filtro ativo

```js theme={"system"}
{
    id: 123,
    key: 'brand_id',        // tipo do filtro
    alias: 'brand_id-123',  // identificador único
    name: 'Nike',           // nome exibido
    query: { brand_id: 123 },
}
```

## Uso

```js theme={"system"}
import { mapGetters, mapActions } from 'vuex';

export default {
    computed: {
        ...mapGetters('filters', ['activeFilters']),
    },
    methods: {
        ...mapActions('filters', ['addActiveFilter', 'removeActiveFilter']),
    },
};
```
