# Drush commands

Full inventory of drush commands shipped by the suite, grouped by module.

Every `sync-*` command accepts an optional `[region]` argument (defaults to the configured default region in `wow.settings`) and a `--force` flag that bypasses the stored Last-Modified timestamp and re-fetches.

## Core — `wow`

| Command | Alias | Description |
|---|---|---|
| `wow:test-connection` | `wtc` | Verify Battle.net API credentials by making a single authenticated request. |
| `wow:status` | `wst` | Show the module configuration summary (default region, client ID presence, cache flag, etc.). |
| `wow:sweep-ttl` | `wsttl` | Run the 30-day TTL sweeper on demand. Runs daily under cron. |

## Reference data

| Command | Alias | Description |
|---|---|---|
| `wow:sync-realms [region]` | `wsr` | Sync realm taxonomy (+ connected-realm groupings). Pass `all` to iterate every region. |
| `wow:sync-classes [region]` | `wsc` | Sync playable-class taxonomy. |
| `wow:sync-races [region]` | `wsra` | Sync playable-race taxonomy. |
| `wow:sync-specializations [region]` | `wsspec` | Sync playable-specialization taxonomy. |
| `wow:sync-power-types [region]` | `wspt` | Sync power-type taxonomy. |
| `wow:sync-reputation-factions [region]` | `wsrf` | Sync reputation-faction taxonomy. |

## Characters and guilds

| Command | Alias | Description |
|---|---|---|
| `wow:character-lookup [realm] [name]` | `wcl` | Fetch, store, and refresh a single character. Invokes every registered `CharacterDataProvider` afterwards. |
| `wow:guild-lookup [realm] [name]` | `wgl` | Fetch and store a single guild (profile + crest). Invokes registered `GuildDataProvider` plugins afterwards — no in-tree plugins ship today. |

There is no bulk roster-refresh or character-refresh command. If you need one, wrap `CharacterSync::refresh()` in your own drush command or cron task.

## Catalogs and collections

Each of these syncs a large catalog via Advanced Queue — the command enqueues jobs and the queue worker drains them. The dashboard "Sync now" button drains the same queue inline as a Drupal batch with a progress bar.

| Command | Alias | Description |
|---|---|---|
| `wow:sync-achi-categories [region]` | `wsac` | Sync achievement categories (character + guild trees). |
| `wow:sync-achievements [region]` | `wsachi` | Enqueue achievement catalog sync jobs. |
| `wow:fix-achi-icons [region]` | `wfai` | Retry icon fetch for achievements with missing icons. |
| `wow:achievement-status` | `wast` | Show achievement sync progress across regions. |
| `wow:sync-mounts [region]` | `wsmounts` | Enqueue mount catalog sync jobs. |
| `wow:fix-mount-icons [region]` | `wfmi` | Retry icon fetch for mounts with missing icons. |
| `wow:mount-status` | `wmst` | Show mount sync progress. |
| `wow:sync-pets [region]` | `wspets` | Enqueue pet catalog sync jobs. |
| `wow:fix-pet-icons [region]` | `wfpi` | Retry icon fetch for pets with missing icons. |
| `wow:pet-status` | `wpst` | Show pet sync progress. |
| `wow:sync-titles [region]` | `wsti` | Enqueue title catalog sync jobs. |
| `wow:title-status` | `wtst` | Show title sync progress. |
| `wow:sync-toys [region]` | `wsto` | Enqueue toy catalog sync jobs. |
| `wow:fix-toy-icons [region]` | `wfti` | Retry icon fetch for toys with missing icons. |
| `wow:toy-status` | `wtoy` | Show toy sync progress. |

## Creature module

Creatures are looked up on demand. Creature types and families are taxonomy-synced.

| Command | Alias | Description |
|---|---|---|
| `wow:creature-lookup [id]` | `wcrl` | Fetch and store a single creature by Blizzard ID. |
| `wow:sync-creature-types [region]` | `wsct` | Sync the creature-type taxonomy. |
| `wow:sync-creature-families [region]` | `wscf` | Sync the creature-family taxonomy. |

## Quest module

Quests are synced via Advanced Queue (same batch pattern as achievements). Quest types are taxonomy-synced.

| Command | Alias | Description |
|---|---|---|
| `wow:quest-lookup [id]` | `wql` | Fetch and store a single quest by Blizzard ID. |
| `wow:sync-quest-types [region]` | `wsqt` | Sync the quest-type taxonomy. |
| `wow:sync-quest-index [region]` | `wsqi` | Enqueue quest catalog sync jobs. |

## Item module

Items are looked up on demand — there is no bulk-catalog sync.

| Command | Alias | Description |
|---|---|---|
| `wow:sync-item-classes [region]` | `wsic` | Sync the item-class taxonomy. |
| `wow:item-lookup [id]` | `wil` | Fetch and store a single item by Blizzard ID. |

## Common flags

- `--force` — ignore cached Last-Modified timestamp, re-fetch the full dataset.

Example:

```
drush wow:sync-realms eu --force
```
