# TaxConfig API

Este documento descreve a API de configuração fiscal utilizada para determinar a versão do modelo e opções de processamento.

## Leitura da configuração

- `TaxConfig::get(PDO $pdo): array`
  - Retorna um array com chaves: `model_version` (string), `effective_from` (string|null), `environment` (string) e `options` (array).
  - Defaults quando não há registro: `model_version='2024'`, `environment='production'`, `options=[]`.

## Persistência da configuração

- Assinatura flexível:
  - `TaxConfig::save(PDO $pdo, string $modelVersion, ?string $effectiveFrom, string $environment = 'production', array $options = []): array`
  - Compatibilidade abreviada: o 4º argumento pode ser um `array` de `options`. Neste caso, o `environment` assume `production`.

### Exemplos

```php
// Forma explícita: environment e options
$saved = TaxConfig::save($pdo, '2025', null, 'staging', ['feature_x' => true]);
// Forma abreviada: 4º argumento como options (environment => 'production')
$saved = TaxConfig::save($pdo, '2026', null, ['feature_x' => false, 'jurisdiction' => ['uf' => 'SP']]);
```

### Retorno

- `save` retorna o mesmo formato de `get`, refletindo a última configuração persistida.

## Notas

- `options` é armazenado em `options_json` (JSON); ao ler, sempre retorna `array`.
- `environment` padroniza para `'production'` quando omitido ou vazio.