# Reputation

**Module:** `wow_reputation`

Tracks reputation factions and per-character standings.

## What's stored

- **Faction catalog** — hundreds of WoW reputation factions stored as taxonomy terms in the `wow_reputation_faction` vocabulary, with descriptions and parent-faction hierarchy.
- **Per-character standings** — a `wow_reputation_standing` junction row per character+faction, with current tier (Hated → Exalted), point values, and standing name.

## Setting up

```
drush en wow_reputation -y
drush wow:sync-reputation-factions --force
```

Per-character reputation data is pulled automatically on each character refresh via the reputation `CharacterDataProvider` plugin. No separate commands.

## Dashboard

Shows the faction catalog count and last-sync timestamp. Actions: **Sync now**. Per-character rows are managed through character sync.

## Storage model

`wow_reputation_standing` is an owner-agnostic junction entity — `character` is projected in by `wow_character`. The same TTL rules apply: the row's `last_fetched` is stamped on each character refresh, and rows older than 30 days are swept.

## What's not synced

- **Paragon reputation** past Exalted and Renown tiers are returned by Blizzard on the same endpoint, but the `wow_reputation_standing` junction has no field for them today — only the base standing (tier, raw/max points, standing name). Paragon and Renown data is discarded by the sync.
- **Faction aliases and subfactions** (Warband renown, race-specific standings) follow Blizzard's own taxonomy. We don't normalize them further.
