Part of #51. Mechanical restructure, no behavior change.
What
Move src/hooks/queries/ → src/api/, flattened to one folder per feature. Per feature: a shared types.ts (entity Row type + key factory) and one self-contained use-prefixed file per endpoint holding its request/response types + fetchX/mutate + a per-file queryOptions factory + the hook consuming it. Repoint every consumer's import path. See docs/adr/0001-api-modules.md.
Per-feature checklist (leaf-first order)
Done when
- All ~73 files moved; build + unit tests green; no behavior change.
grep -rn "queryOptions(" src shows factories adopted.
CLAUDE.md data-fetching guidance repointed to src/api/.
Part of #51. Mechanical restructure, no behavior change.
What
Move
src/hooks/queries/→src/api/, flattened to one folder per feature. Per feature: a sharedtypes.ts(entity Row type + key factory) and one self-containeduse-prefixed file per endpoint holding its request/response types +fetchX/mutate + a per-filequeryOptionsfactory + the hook consuming it. Repoint every consumer's import path. Seedocs/adr/0001-api-modules.md.Per-feature checklist (leaf-first order)
festivalseditions(wasfestivals/editions)setsstagesgenresfestival-infocustom-linksknowledgeartistsartist-notes(wasartists/notes)groupsinvites(wasgroups/invites)votingauthadmin-roles(looseuseAdminRolesQuery.ts)invite-validation(looseuseInviteValidationQuery.ts)Done when
grep -rn "queryOptions(" srcshows factories adopted.CLAUDE.mddata-fetching guidance repointed tosrc/api/.